Sie sind auf Seite 1von 6

Proyecto de Colaboracion NexuN

Proteger un Servidor Linux de los ataques al puerto SSH


Autor Javier Sanchez

Un servidor Linux funcionando continuamente es una presa golosa para los hackers, el objetivo es tomar el control del ordenador para lanzar ataques a otras mquinas y no dejar rastro. El servidor Linux del proyecto ha estado soportando cientos intentos de conexiones. Para comprobar estos intentos hay que mirar los logs /var/log/messages generados por ssh

Para mirar estos logs utilizo el siguiente comando

> grep sshd /var/log/messages

Para evitar estos ataques se ha realizado lo siguiente en el servidor:

1) Aumentar la seguridad de la conexin ssh

Para aumentar la seguridad de las conexiones ssh vamos a modificar el archivo de configuracin del ssh para:

Desactivar el login de root (requiere loguearse como un usuario normal y luego pasarse a root mediante el comando su, de esta manera los ingresos de root directo quedan deshabilitados) - Cambiar los tiempos de login

http://www.nexun.org

Potenciado por Joomla!

Generado: 26 January, 2012, 23:08

Proyecto de Colaboracion NexuN

Para ello se edita el archivo /etc/ssh/sshd.config y cambiamos las siguientes entradas: #LoginGraceTime 2m

La descomentamos y la cambiamos por

LoginGraceTime 30

Esto har que el tiempo que sshd espera por el password sea reducido de 2 minutos a 30 segundos

#PermitRootLogin yes

La descomentamos y la cambiamos por:

PermitRootLogin no

Esto evitar que root pueda loguarse directamente al servidor, previamente deber tener otro usuario creado con el cual se loguear y si requiere acceso de root use su

#MaxAuthTries 6

La descomentamos y la cambiamos por:


http://www.nexun.org Potenciado por Joomla! Generado: 26 January, 2012, 23:08

Proyecto de Colaboracion NexuN

MaxAuthTries 3

Esto solo le dar 3 intentos si equivoca el password antes de cerrar la conexin

Cambiar el mensaje de bienvenida al servicio SSH es algo tan simple como aadir el texto que deseemos en el fichero:

/etc/motd

De este modo, cuando accedamos va SSH al servidor, aparecer como mensaje de bienvenida el texto que incluya dicho fichero.

2) Instalar DenyHost

DenyHost es un script escrito en Python que monitoriza las entradas del log de conexiones del SSH para detectar clientes que realizan ataques de fuerza bruta, los fichedo que analiza dependen de la distribucin de linux /var/log/messages en SUSE o /var/log/secure en CentOS. Cuando DenyHosts detecta que desde una determinada IP se estan realizando repetidos intentos de conexin fallidos, aade esta IP al fichero /etc/hosts.deny y de esta forma cortamos inmediatamente los intentos de conexin desde esta IP.

Antes de instalar denyhosts debemos comprobar que version de python tenemos instalada con el siguiente comando:

>python -V

Esto es necesario para descargarnos la versin adecuada del programa. En nuestro caso el resultado obtenido fue

http://www.nexun.org

Potenciado por Joomla!

Generado: 26 January, 2012, 23:08

Proyecto de Colaboracion NexuN

>python 2.4.3

Para instalar DenyHost nos descargamos el paquete desde la pagina del autor. En modo comando podemos utilizar el comando wget: >wget http://mesh.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.6-python2.4.noarch.rpm

Una vez descargado el fichero, intalamos el paquete

> rpm -i DenyHosts-2.6-python2.4.noarch.rpm

El siguiente paso es crear el archivo de configuracin del DeniHosts para ello nos desplazamos al directorio de instalacin /usr/share/denyhosts.

> cd /usr/share/denyhosts > cp denyhosts.cfg-dist denyhosts.cfg

Editamos el fichero denyhosts.cfg

> vi denyhosts.cfg

Tenemos que comprobar que las siguientes variables SECURE_LOG, LOCK_FILE de configuracin son correctas en funcin de nuestra distribucin de Linux. Por defecto tienen el siguiente valor:

*SECURE_LOG = /var/log/auth.log *LOCK_FILE = /var/run/denyhosts.pid

En valor para otras distribuciones viene con comentarios, solamente deberemos buscar nuestra distribucin, descomentarla y poner un comentario en la anterior. En nuestro caso que es SuSE

*SECURE_LOG = /var/log/messages

Tambien podremos configurar otras interesantes variables


http://www.nexun.org Potenciado por Joomla! Generado: 26 January, 2012, 23:08

Proyecto de Colaboracion NexuN

* DENY_THRESHOLD_INVALID: Nmero de intentos fallidos (con un usuario que no exista) necesarios para bannear esa IP. * DENY_THRESHOLD_VALID: Nmero de intentos fallidos (con un usuario existente) necesarios para bannear esa IP. * DENY_THRESHOLD_ROOT: Nmero de intentos fallidos (intentando entrar como root) necesarios para bannear esa IP. * BLOCK_SERVICE = sshd/ALL/etc… : Servicios que bloqueamos a usuarios banneados. * DAEMON_LOG = /var/log/denyhosts : Ubicacin del log de denyhosts.

Tenemos que hacer que DenyHosts funcione como un demonio, para ello utilizamos el script que viene en el paquete de instalacion daemon-control-dist y creamos el siguiente archivo

>cp daemon-control-dist daemon-control

Editamos /usr/share/denyhosts/daemon-control y modificaremos en caso de necesidad los valores de las siguientes variables DENYHOSTS_BIN, DENYHOSTS_LOCK, and DENYHOSTS_CFG para adaptarla a nuestra distribucion. Para Debian:

*DENYHOSTS_BIN = "/usr/bin/denyhosts.py" *DENYHOSTS_LOCK = "/var/run/denyhosts.pid" *DENYHOSTS_CFG = "/usr/share/denyhosts/denyhosts.cfg"

Para Suse

*DENYHOSTS_BIN = "/usr/local/bin/denyhosts.py"

En este mismo fichero deberemos tener cuidado con la siguiente variable

*PYTHON_BIN

= "/usr/bin/env python"

Si nuestra versin de python es 2.4 o superior para que funcione el demonio deberemos cambiar su valor

*PYTHON_BIN
http://www.nexun.org

= "/usr/bin/env python2.4"
Potenciado por Joomla! Generado: 26 January, 2012, 23:08

Proyecto de Colaboracion NexuN

Hacemos que este fichero sea ejecutable, cambiando el propietario y los permisos

> chown root daemon-control > chmod 700 daemon-control

Despues para arrancarlo automaticamente cuando se encienda el ordenador creamos el siguiente enlace

>cd /etc/init.d >ln -s /usr/share/denyhosts/daemon-control denyhosts >chkconfig --add denyhosts

De esta manera lo tenemos configurado de la siguiente manera

> chkconfig --list denyhosts denyhosts 0:off 1:off 2:off 3:on 4:off 5:on 6:off

Para arrancarlo manualmente

> /etc/init.d/denyhosts start

Esta obra est bajo una licencia de Creative Commons.

http://www.nexun.org

Potenciado por Joomla!

Generado: 26 January, 2012, 23:08

Das könnte Ihnen auch gefallen