SSH: acceso seguro con iptables

0 Comments

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
  • Denegar las demas conexiones a SSH
  • 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.

One Reply to “SSH: acceso seguro con iptables”

Deja tus preguntas o comentarios