Prevenir ataques de diccionario sobre ssh
Existen varios gusanos que atacan las vulnerabilidades de servidores SSH utilizando diccionarios. Esto no deberia de ser un problema si contamos con una buena politica de contrasenas, de lo contrario, existen otras formas de asegurar nuestro servicio de SSH.
La forma mas obvia de prevenir el acceso al host, es permitiendo las conexiones de un reducido grupo de direcciones IP, utilizando un firewall.
Si actualmente estan corriendo un firewall le pueden agregar lo siguiente:
- Aceptar conexiones SSH entrantes desde direcciones confiables.
- Botar las demas conexiones.
Usando los comandos del firewall iptables de la siguiente manera:
- Todas las conexiones desde la direccion 192.168.1.200 al puerto 22 (SSH)
deathbian:~# iptables -A INPUT -p tcp -m state --state NEW --source 192.168.1.200 --dport 22 -j ACCEPT
deathbian:~# iptables -A INPUT -p tcp --dport 22 -j DROP
Si no desean utilizar un firewall es posible restringir el acceso de otra manera. Los paquetes de openSSH para Debian estan compilados con soporte para tcpwrappers, con lo cual podemos especificar cuales clientes se pueden conectar sin tocar el firewall.
Supongamos que deseamos permitir acceso a las IP’s 192.168.1.200 y 172.16.100.1, entonces editamos el archivo a continuacion:
archivo: /etc/hosts.allow |
sshd: 192.168.1.200/255.255.255.0 sshd: 172.16.100.1/255.255.0.0 |
Luego, para denegar acceso :
archivo: /etc/hosts.deny |
sshd: ALL |
Asi mismo tambien podemos ver el archivo de configuracion del SSH, este tiene varias opciones de seguridad a nuestra disposicion.
El servicio de SSH esta configurado en el archivo /etc/ssh/sshd_config. Se es necesario se puede restringir el acceso remoto a usuarios especificos.
Por ejemplo, solo le vamos a permitir el acceso a los usuarios joe y fher98 de la siguiente manera:
AllowUsers joe fher98
Luego de reiniciar el servicio con /etc/init.d/ssh restart los demas usuarios no podran conectarse al servidor via SSH.
Asi mismo podemos denegar explicitamente el acceso a ciertos usuarios:
DenyUsers invitado usuario01
Si es necesario, y probablemente lo es, podemos denegar el acceso del usuario root remotamente, de la siguiente manera:
PermitRootLogin no
En http://fail2ban.sourceforge.net/ encontraremos una pequena herramienta escrita en Python, la cual automaticamente busca en los logs (bitacoras) del sistema y censura el acceso desde IP’s con muchos fallos de contraseña.
porfa diganme mandriva linux, como levantar servicios