Fonctionnant sur le serveur Ubuntu 14.04.
J'ai donc fail2ban correctement configuré pour traiter /var/log/auth.log
les tentatives de connexion SSH.
Après 3 tentatives infructueuses, je vois cela dans le journal fail2ban:
2014-11-19 15:22:56,822 fail2ban.actions: WARNING [ssh] Ban BANNED_IP_ADDY
iptables -L
montre cette chaîne:
Chain fail2ban-ssh (1 references)
target prot opt source destination
REJECT all -- BANNED_IP_ADDY anywhere reject-with icmp-port-unreachable
RETURN all -- anywhere anywhere
Pourtant, à partir de cette adresse IP, je peux toujours me connecter via SSH sans aucun problème.
La même histoire s'applique à toutes mes prisons fail2ban. Apache par exemple, je peux voir fail2ban détecter correctement le journal et prétendre qu'il interdit une IP. L'IP se retrouve dans une chaîne iptables mais l'IP n'est pas réellement REJETÉ.
J'ai un sentiment dans ces cas parce que SSH n'est pas sur le port standard. C'est sur un port différent.
Donc, si je force la règle de prison ssh à utiliser le nouveau port:
[ssh]
enabled = true
port = 32323
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
Ensuite, je vois cette erreur:
2014-11-19 15:30:06,775 fail2ban.actions.action: ERROR iptables -D INPUT -p tcp -m multiport --dports 32323 -j fail2ban-ssh
iptables -F fail2ban-ssh
iptables -X fail2ban-ssh returned 400
2014-11-19 15:30:06,778 fail2ban.actions.action: ERROR iptables -N fail2ban-ssh
iptables -A fail2ban-ssh -j RETURN
iptables -I INPUT -p tcp -m multiport --dports 32323 -j fail2ban-ssh returned 400
2014-11-19 15:30:06,779 fail2ban.actions.action: ERROR iptables -n -L INPUT | grep -q 'fail2ban-ssh[ \t]' returned 100
2014-11-19 15:30:06,780 fail2ban.actions.action: CRITICAL Unable to restore environment
Si je le laisse comme
port = ssh
Ensuite, il entre correctement dans iptables mais la chaîne ne fonctionne pas pour le REJECT
trafic (comme mentionné ci-dessus).
MISE À JOUR:
Si je change:
banaction = iptables-multiport
À:
banaction = iptables-allports
Ensuite, cela semble fonctionner. Quelles sont les répercussions de ce changement?
Il semble qu'en provoquant l' fail2ban
interdiction d'une IP à cause de SSH, cela allports
a banni CHAQUE port pour cette IP. A délibérément été banni en raison d'échecs de connexion répétés ssh. Ont également été interdits sur tous les autres services.
/etc/fail2ban/actions.d
, il a un fichier correspondant à chacune de ces actions d'interdiction. À l'intérieur, vous verrez les commandes utilisées pour interdire, annuler l'interdiction, démarrer et arrêter fail2ban. Vous pouvez essayer d'exécuter les commandes actionban manuellement et voir ce qui se passe. I
iptables -L -n -v
(en supprimant les adresses IP si nécessaire). En particulier, notez le -v
, qui donnera des compteurs d'octets et de paquets pour chaque chaîne et règle, facilitant le débogage.