===== Bloquear fuerza bruta / DOS al servicio SSH ===== Es fácilmente adaptable a cualquier otro protocolo TCP y puede mitigar ataques DOS no muy agresivos. Ejemplo: Si en menos de 5 minutos (300 segundos) una IP origen ha realizado más de 20 intentos o accesos por ssh, se bloquea durante 5 Minutos. Esta regla no se aplicará a la dirección IP 192.168.1.50. Se registra la actividad en logs (ej: /var/log/messages). iptables -N SSHSCAN iptables -A INPUT -p tcp --dport 22 -s 192.168.1.50 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j SSHSCAN iptables -A SSHSCAN -m recent --set --name SSH iptables -A SSHSCAN -m recent --update --seconds 300 --hitcount 20 --name SSH -j LOG --log-level info --log-prefix "SSH SCAN blocked: " iptables -A SSHSCAN -m recent --update --seconds 300 --hitcount 20 --name SSH -j DROP NOTA: Para el ejemplo dado, el espacio de tiempo especificado que permite un máximo de peticiones ssh, no puede ser diferente a la cantidad de tiempo que la IP estará bloqueada (5 minutos). Ejemplo de log. Jan 18 01:26:55 localhost kernel: [ 6303.990034] SSH SCAN blocked: IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=61544 DF PROTO=TCP SPT=40048 DPT=22 WINDOW=43690 RES=0x00 SYN URGP=0 Jan 18 01:26:58 localhost kernel: [ 6306.362580] SSH SCAN blocked: IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=18355 DF PROTO=TCP SPT=40049 DPT=22 WINDOW=43690 RES=0x00 SYN URGP=0 Jan 18 01:26:59 localhost kernel: [ 6307.362942] SSH SCAN blocked: IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=18356 DF PROTO=TCP SPT=40049 DPT=22 WINDOW=43690 RES=0x00 SYN URGP=0