Pour ma part, j'utilise un "tarpit" en plus de n'autoriser que l'authentification par clé publique et d'interdire les connexions root.
Il netfilter
existe un recent
module que vous pouvez utiliser avec ( INPUT
chaîne):
iptables -A INPUT -i if0 -p tcp --dport 22 -m state --state NEW -m recent --set --name tarpit --rsource
iptables -A INPUT -i if0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 6 --name tarpit --rsource -j DROP
iptables -A INPUT -i if0 -p tcp --dport 22 -j ACCEPT
Cela signifie que chaque tentative de connexion au port 22 est répertoriée par le recent
module avec l'adresse IP et d'autres éléments sous le nom "tarpit" (si vous êtes curieux, regardez /proc/net/xt_recent/tarpit
). De toute évidence, vous pouvez utiliser d'autres noms.
Pour lister ou supprimer des IP, utilisez:
echo "+123.123.123.123" > /proc/net/xt_recent/tarpit
echo "-123.123.123.123" > /proc/net/xt_recent/tarpit
Ce taux limite les tentatives à 5 en 300 secondes. Veuillez noter que les utilisateurs disposant d'une connexion existante ne sont pas gênés par cette limite, car ils disposent déjà d'une connexion établie et sont autorisés à en créer davantage (même au-delà de la limite de débit).
Ajustez les règles à votre convenance, mais assurez-vous de les ajouter dans cet ordre (c.-à-d. Pour les ajouter, utilisez-les dans cet ordre, en les insérant ensuite dans l'ordre inverse).
Cela réduit énormément le bruit. Il fournit également une sécurité réelle (contre la force brutale) contrairement à la sécurité perçue de la modification du port. Cependant, je recommanderais toujours de changer le port si cela est faisable dans votre environnement. Cela réduira également beaucoup le niveau de bruit ...
Vous pouvez toujours combiner cela avec fail2ban, bien que je me sente parfaitement bien sans lui et uniquement les règles ci-dessus.
MODIFIER:
Il est possible de le verrouiller pour pouvoir ajouter quelque chose comme ce qui suit, qui vous permet de supprimer votre interdiction en frappant sur un port particulier:
iptables -A INPUT -i if0 -p tcp --dport <knockport> -m state --state NEW -m recent --name tarpit --remove