[gull] [Resolu] ksoftirqd congestionne a ~500Ko/s (Ubuntu 22.04)

Marc SCHAEFER schaefer at alphanet.ch
Sat Sep 28 20:30:28 CEST 2024


Hello,

On Sat, Sep 28, 2024 at 03:52:20PM +0200, Frederic Dumas via gull wrote:
> Il faut maintenant purger les 70K+ drops d'iptable, peut-être exporter
> les IP de fail2ban. Une fois le package ipset ajouté au système, où se
> fait la configuration manuelle pour dire à fail2ban de l'utiliser,
> plutôt que de continuer à écrire des règles iptable ?

En ce qui me concerne, j'utilise la commande ipset directement,
car j'extrais d'une base de données et de diverses sources,
avec une modification (atomique) toutes les 5 minutes.

Peut-être que dans ton cas, utiliser les scripts de persistance de la
distribution est une meilleure idée.

Voici quelques exemples:

# création initiale, 300'000 entrées max, pour stocker des
# entrées CIDR
/usr/sbin/ipset create abuse hash:net maxelem 300000

# ajout manuel
ipset add abuse 192.168.42.128/26

# suppression manuelle
ipset del abuse 192.168.42.128/26

# insertion efficace de multiples entrées
ipset -X toto 2>/dev/null || true

(echo "create toto hash:net family inet hashsize 1024 maxelem 300000"
 egrep < big-v4-list '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+(/[0-9]+)?$' \
    | sed "s|^|add toto |") \
 | $ipset restore \
   && $ipset -W toto abuse \
   && $ipset -X toto

Enfin, voici le jump depuis iptables:

function block_all {
   iptables $1 $2 -m set --match-set $3 src -j DROP
}

function block_incoming {
   $iptables $1 $2 -m state --state NEW -m set --match-set $3 src -j DROP
}

for i in INPUT FORWARD
do
   block_all -I $i abuse
   #block_incoming -I $i abuse
done


PS: je suis entrain de préparer le passage à nftables sur un nouveau
firewall, j'utilise le script nftfw (qui a un package Debian manuel).
Pour le moment, pour les fonctions de base c'est encourageant (mais
mon fw est très complexe, avec notamment du multi-homing contextuel).


More information about the gull mailing list