Cómo bloquear IP en ssh

Cómo bloquear IP en ssh

Un individuo muy insistente está intentando continuamente obtener acceso (no autorizado) a mi sistema durante los últimos días... Hay millones de entradas, como en /var/log/auth.log:

Jun 21 03:55:15 cloudy sshd[32487]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.20  user=root
Jun 21 03:55:16 cloudy sshd[32487]: Failed password for root from 116.31.116.20 port 30629 ssh2
Jun 21 03:55:19 cloudy sshd[32487]: Failed password for root from 116.31.116.20 port 30629 ssh2
Jun 21 03:55:21 cloudy sshd[32487]: Failed password for root from 116.31.116.20 port 30629 ssh2
Jun 21 03:55:21 cloudy sshd[32487]: Received disconnect from 116.31.116.20: 11:  [preauth]
Jun 21 03:55:21 cloudy sshd[32487]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.20  user=root

Me gustaría pedir algún consejo sobre cómo impedir que esta persona consuma recursos de la computadora. ¿Existe la posibilidad de "bloquear por completo" la IP incluso para que no abra una conexión ssh? Tenga en cuenta que uso Debian 8 como sistema operativo.

Respuesta1

Respuesta2

También puedes usariptables

Cree un archivo con las direcciones IP que desea bloquearblocked.ips.txt

Ahora cree y ejecute un script que contenga lo siguiente:

blocked=$(egrep -v -E "^#|^$" ./blocked.ips.txt)
for ip in $blocked
do
    iptables -I INPUT -s $ip -p tcp --dport ssh -j DROP
done

La ejecución iptables -Ldebería dar como resultado los paquetes descartados.

Respuesta3

El enfoque de iptables es la forma más directa. Erik Handriks lo propuso como guión.

Dos peros: - el script debería iniciarse después de cada reinicio (si las tablas no están respaldadas internamente con iptables). - llamar al script tal como está, dos o más veces duplicará las entradas.

Intenta simplemente atrapar al malo con:

iptables -I ENTRADA -s BAD_IP -p tcp --dport ssh -j DROP

En la mayoría de las distribuciones, iptables tiene su propio mecanismo de reglas para guardar y restaurar. Vea si '/var/lib/iptables/rules-save' está presente. Para su distribución, podría ubicarse en otro lugar (gentoo aquí).

Después de agregar cada IP MALA, intente:

iptables-save > /var/lib/iptables/rules-save

Después de reiniciar, verifique con 'iptables -L' lo que hay disponible...

Respuesta4

En mi servidor (Ubuntu 16.04) uso UFW (UncomplicatedFireWall), una capa de simplificación sobre iptables) que parece ser un problema bastante estándar en los servidores Ubuntu (pero debería estar disponible para otras distribuciones). Para estos casos utilizo:

ufw insert 1 deny from nnn.nnn.nnn.nnn

UFW también te permite limitar el número de conexiones

ufw limit ssh/tcp

Tenga en cuenta que esto también se aplica a las conexiones exitosas, por lo que si usa scripts que usan múltiples comandos ssh, debe deshabilitar este límite para su IP emitiendo:

ufw insert 1 allow in from nnn.nnn.nnn.nnn

información relacionada