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
añadirsshd: 116.31.116.20
/etc/hosts.deny
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 -L
deberí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