Bloquear ataques por fuerza bruta en nuestro servidor SSH
Si hemos configurado nuestro sevidor SSH y echamos un ojo a los mensajes de seguridad en SUSE:
tail -n100 /var/log/messages
o bien
grep sshd /var/log/messages
Veremos que hay muchos ataque por fuerza bruta a nuestro servidor. Podemos tomar varias medidas para solucionar el problema:
1) Cambiar nuestra configuración del servidor SSHD a través del fichero /etc/ssh/sshd_config . Algunos parámetros podrían ser:
a) PermitRootLogin no <-- evitamos el acceso usando el usuario root, esto es casi obligatorio en cualquier sistema
b) PasswordAuthentication no <- no se permite el acceso a través de password, tendríamos que utilizar ssh keys, lo cual puede resultar un poco engorroso si tenemos muchos usuarios
c)Port 2221 <- cambiamos el puerto de escucha del SSHD, es una medida bastante sencilla y evitará muchos ataques, el único inconveniente es que todos los usuarios deben saber cual es el nuevo puerto. Esta medida previene de ataques fortuitos a nuestro sistema, es decir, si escanean nuestra red buscando equipos con el puerto 22 abierto no apareceremos. Un análisis a fondo de nuestro equipo revelará al atacante que estamos ejecutando un servidor ssh, y podría realizar a continuación un ataque por fuerza bruta.
d)Otra medida para proteger en parte nuestro sistema es utilizar el script denyhost (http://denyhosts.sourceforge.net/). Dicho script realiza dos tareas sencillas: 1) monitorizar nuestro fichero de mensajes (/var/log/messages) 2) cuando encuentra intento de accesos por fuerza bruta dsde una determinada ip, la añade al fichero /etc/hosts.deny
De esta manera tras uno pocos intentos por fuerza bruta la ip atacante será bloqueada. Vamos a configurarlo para nuestro Suse 10.2:
1) Descargar los paquetes python-dev a través de YAST22) Descargar el script denyhost a través de http://denyhosts.sourceforge.net/ , en la sección download. Yo he descargado la versión DenyHosts-2.6.tar.gz
3) Descomprimir el archivo --> tar zxvf DenyHosts-#.#.#-tar.gz
4) Dentro del directorio y como root --> python setup.py install
5) Los archivos se instalan en /usr/share/denyhosts. Vamos al directorio --> cd /usr/share/denyhosts
6) Creamos el archivo de configuración mediante --> cp denyhosts.cfg-dist denyhosts.cfg .
7) En el archivo denyhosts.cfg hay que buscar la variable SECURE_LOG comentamos la de Redhat y descomentamos la de Suse --> SECURE_LOG = /var/log/messages.
8) Si vamos a usarlo como daemon debemos crear también el archivo del demonio --> cp daemon-control-dist daemon-control
9) Editamos el fichero daemon-control
10) buscamos la variable DENYHOSTS_BIN y cambiamos el valor a --> DENYHOSTS_BIN = "/usr/local/bin/denyhosts.py"
11) Cambiamos los permisos y el propietario del fichero daemon-control->
chown root daemon-control
chmod 700 daemon-control
12) Para arrancar el demonio manualmente --> ./daemon-control start
13) Para arrancarlo al inicio del sistema:
ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts <--crea un enlace en init.d chkconfig --add denyhosts <--crea entradas en rc2.d, rc3.d y rc5.d
14) Si deseamos permitir algún host siempre, debemos añadirlo a hosts.allow, por ejemplo el localhost:
sshd:localhost
Artículo realizado por; dieguz2
Publicar un comentario