Citar
shell# uname -a
Linux server.midominio.com 2.6.32-573.12.1.el6.x86_64 #1 SMP Tue Dec 15 21:19:08 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
shell# cat /etc/centos-release
CentOS release 6.7 (Final)
Linux server.midominio.com 2.6.32-573.12.1.el6.x86_64 #1 SMP Tue Dec 15 21:19:08 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
shell# cat /etc/centos-release
CentOS release 6.7 (Final)
Resulta que tengo fail2ban para bloquear las IPs que intentan hacerme bruteforcing a mi puerto SSH, todo funcionaba muy bien desde hace mucho tiempo, pero justamente el 23-Diciembre-2015, aprovechando un aviso de suspensión de actividades en mis servidores, pues realice update a todo el sistema.
Despues de revisar todos mis servicios, note que el unico que no trabajaba como deberia, era fail2ban, el problema que tiene es que no esta banneando las IPs que sobrepasan el numero de intentos permitidos para logeo en puerto SSH.
Mi configuracion:
fail2ban-client version
Citar
0.9.3
shell# cat /etc/fail2ban/jail.conf
Citar
[DEFAULT]
ignoreip = 127.0.0.1/8 miIP/24
ignorecommand =
bantime = 86400
findtime = 600
maxretry = 3
backend = auto
usedns = warn
[pam-generic]
enabled = false
filter = pam-generic
action = iptables-allports[name=pam,protocol=all]
logpath = /var/log/secure
[ssh-iptables]
enabled = true
filter = sshd
action = iptables-multiport[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/secure
maxretry = 3
ignoreip = 127.0.0.1/8 miIP/24
ignorecommand =
bantime = 86400
findtime = 600
maxretry = 3
backend = auto
usedns = warn
[pam-generic]
enabled = false
filter = pam-generic
action = iptables-allports[name=pam,protocol=all]
logpath = /var/log/secure
[ssh-iptables]
enabled = true
filter = sshd
action = iptables-multiport[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/secure
maxretry = 3
shell# cat /etc/fail2ban/action.d/iptables-multiport.conf
Citar
actionstart = iptables -N fail2ban-<name>
iptables -A fail2ban-<name> -j RETURN
iptables -I <chain> -p <protocol> -m multiport --dports <port> -j fail2ban-<name>
cat /etc/fail2ban/ip.blacklist | while read IP; do iptables -I fail2ban-<name> 1 -s $IP -j DROP; done
actionstop = iptables -D <chain> -p <protocol> -m multiport --dports <port> -j fail2ban-<name>
iptables -F fail2ban-<name>
iptables -X fail2ban-<name>
actionban = iptables -I fail2ban-<name> 1 -s <ip> -j DROP
echo <ip> >> /etc/fail2ban/ip.blacklist
iptables -A fail2ban-<name> -j RETURN
iptables -I <chain> -p <protocol> -m multiport --dports <port> -j fail2ban-<name>
cat /etc/fail2ban/ip.blacklist | while read IP; do iptables -I fail2ban-<name> 1 -s $IP -j DROP; done
actionstop = iptables -D <chain> -p <protocol> -m multiport --dports <port> -j fail2ban-<name>
iptables -F fail2ban-<name>
iptables -X fail2ban-<name>
actionban = iptables -I fail2ban-<name> 1 -s <ip> -j DROP
echo <ip> >> /etc/fail2ban/ip.blacklist
En conclusion cada vez que una IP sobrepasa el numero de intentos, es colocada su IP en una lista negra /etc/fail2ban/ip.blacklist, despues se le coloca una regla IPTables con tipo de bloqueo DROP.
Como es obvio, ya no se mete la IP a "ip.blacklist" y tampoco se coloca la regla iptable
Saludos !