La page de manuel d'UFW mentionne qu'elle peut configurer la limitation de débit iptables pour moi:
ufw prend en charge la limitation du taux de connexion, ce qui est utile pour se protéger contre les attaques par connexion par force brute. ufw refusera les connexions si une adresse IP a tenté d'initier 6 connexions ou plus au cours des 30 dernières secondes. Voir http://www.debian-administration.org/articles/187 pour plus de détails. L'utilisation typique est:
ufw limit ssh/tcp
Malheureusement, c'est toute la documentation que j'ai pu trouver. Je voudrais m'en tenir à UFW, et ne pas utiliser de commandes iptables plus compliquées (pour garder les choses "simples").
Comment utiliser ufw pour limiter tout le trafic entrant (donc pas sortant) sur le port 80 à 20 connexions par 30 secondes? Comment désactiver la limitation de débit pour les ports 30000 à 30005? La limitation du débit est-elle activée par défaut pour tous les ports?
iptable
, si oui, alors iptable est le backend d'ufw.Comme mentionné dans le post précédent, vous pouvez personnaliser les règles utilisateur. J'ai besoin de ma limite de débit de connexion smtp jusqu'à 12 connexions en 6 secondes. J'ai ajouté une règle comme indiqué ci-dessous en premier. Remarque: cela ajoute une règle de limite autorisant 6 en 30 secondes par défaut
et j'ai édité le /lib/ufw/user.rules (je garde une copie personnalisée de ce fichier avec beaucoup d'autres réglages) comme indiqué ci-dessous ...
la source
la limite de débit peut être modifiée dans le fichier de règles ufw qui se trouve /lib/ufw/user.rules. par défaut, aucune limite n'est activée pour tous les ports. vous devez ajouter chaque port manuellement ou en modifiant le fichier user.rules.
la source
Il vaut la peine de signaler les conséquences involontaires possibles de l'utilisation de la fonction LIMIT d'ufw.
Supposons que l'on place une limite de couverture sur le port 22 / TCP comme première règle UFW:
avec l'hypothèse que toutes les connexions fonctionnant sous la limite pourraient toujours être filtrées en suivant les règles ufw et enfin la politique par défaut de "refuser (entrant)".
Au moins pour ufw 0,35, cette hypothèse serait fausse. En fait, la logique LIMIT IN accepte immédiatement toute entrée non rejetée par le critère de limite.
En pseudo-code, la logique LIMIT est
if CONDITION then DENY else ACCEPT
alors que d'autres règles ufw semblent avoir une logique:
if CONDITION then (DENY|ACCEPT) else continue to next rule
.Personnellement, j'ai trouvé que c'était un comportement inattendu pour ufw LIMIT, que j'ai découvert uniquement en trouvant de manière inattendue de nombreuses tentatives de connexion au port 22 dans le fichier journal du système, ce qui n'aurait jamais dû se produire en raison du filtrage par d'autres règles ufw.
Détails de la confirmation du comportement
Les lignes pertinentes du code iptables inséré par ufw sont les suivantes:
La liste ci-dessus peut être créée avec
Les deux premières lignes sont consécutives
ufw-user-input
et peuvent être confirmées parla source