Seguridad en SSH: iptables, denyhosts, sudoers…

7 09 2007

Si se fijan en los logs generados por ssh, verán la cantidad de intentos de ataques que sufre este servicio. Existen gusanos que lanzan ataques remotos con intención de loguearse como root en nuestros sistemas y así instalar otros rootkits o hacerse con el control del mismo.

Lo primero para mantener nuestra maquina protegida, será hacer un script de IPTABLES personalizado para nuestro sistema, con política por defecto DROP.

Una vez tengamos restringidos los accesos con IPTABLES, añadiremos nuestro usuario al grupo sudoers, así evitamos tener que estar logeados como root para tareas de administración. Para ello editamos (como root) el archivo.

$ nano /etc/sudoers

buscamos la linea:

root ALL=(ALL) ALL

a la que añadimos abajo el nombre de usuario que le permitiremos hacer sudo:

usuario ALL=(ALL) ALL

Conviene decir que es diferente hacer su o hacer sudo. Su es para convertirse en root, y sudo es para ejecutar un comando como root.

También restringiremos el login de root desde ssh y el puerto editando el archivo /etc/ssh/sshd.config:

$ sudo nano /etc/ssh/sshd.config

y cambiamos las siguientes lineas:

PermitRootLogin Yes
Port 22

Por

PermitRootLogin No
Port 2222

Como hemos cambiado el puerto usado por ssh, tenemos que añadir una regla en nuestro script iptables (insisto, con política por defecto DROP):

$ sudo nano /etc/init.d/firewall.sh

Añadiendo lo siguiente:

#Permitimos el acceso ssh al puerto especificado en /etc/ssh/sshd.config

iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 2222 -j ACCEPT

Bueno, ahora instalaremos una aplicación que revisa los logs de ssh en busca de ip’s que intente loguearse como root mediante ataques de fuerza bruta. Después de varios intentos fallidos (se puede configurar) denyhosts rechazará y baneará las ip’s atacantes.

$ sudo apt-get install denyhosts

y lo paramos para posteriormente configurarlo:

$ /etc/init.d/denyhosts stop

editamos las siguientes variables a nuestro gusto:

$ sudo nano /etc/denyhosts.conf

* DENY_THRESHOLD_INVALID: Número de intentos fallidos (con un usuario que no exista) necesarios para banear esa IP.
* DENY_THRESHOLD_VALID: Número de intentos fallidos (con un usuario existente) necesarios para banear esa IP.
* DENY_THRESHOLD_ROOT: Número de intentos fallidos (intentando entrar como root) necesarios para banear esa IP.
* BLOCK_SERVICE = sshd/ALL/etc… : Servicios que bloqueados a usuarios baneados.
* DAEMON_LOG = /var/log/denyhosts : Ubicación del log de denyhosts.

y lo volvemos a iniciar:

$ /etc/init.d/denyhosts start

Ahora tendremos nuestro acceso ssh bastante protegido de ataques, recordad que tener una contraseña compuesta por letras, números y algún carácter especial ayuda mucho a la seguridad de nuestro sistema.

Fuente: http://www.thewilfamily.com/search/seguridad/

Mas info aquí y aquí:

Mas info también aquí y aquí.


Acciones

Informacion

2 respuestas a “Seguridad en SSH: iptables, denyhosts, sudoers…”

8 05 2008
Laboratorio: Hacking - Técnicas y contramedidas - Ataques por fuerza bruta (Brute Force) V | La Comunidad DragonJAR (14:20:55) :

[…] controles en las listas de acceso de los routers (ACLs), versión actualizada del servidor ssh, (más recomendaciones) Descripción: Medusa es una herramienta desarrollada para llevar ataques del tipo brute force de […]

13 05 2008
Laboratorios DragonJAR » Laboratorios: Hacking - Técnicas y contramedidas - Ataques por fuerza bruta (Brute Force) V (12:41:13) :

[…] controles en las listas de acceso de los routers (ACLs), versión actualizada del servidor ssh, (más recomendaciones) Descripción: Medusa es una herramienta desarrollada para llevar ataques del tipo brute force de […]

Deje un comentario

usted puede usar estos tags : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>