Instalar DenyHosts en CentOS
DenyHosts es un script escrito en Python que monitoriza las entradas del log de conexiones del SSH, /var/log/secure en CentOS, para detectar clientes maliciosos que realizan ataques de fuerza bruta.
Cuando DenyHosts detecta que una IP se estan realizando repetidos intentos de conexión fallidos, añade esta IP al fichero /etc/hosts.deny y de esta forma cortamos de inmediato los intentos de conexión desde la IP maliciosa.
Esta guía toma como base el excelente Howto de Falko Timme publicado en HowtoForge sobre DenyHosts.
Obtener e instalar DenyHosts
Antes de descargar DenyHosts debemos comprobar la versión de Python disponible en el sistema:
python -V
Obtendremos algo parecido a esto:
Python 2.3.4
Después de conocer la versión de Python instalada en nuestro sistema, vamos a descargar el RPM de DenyHosts, el archivo preparado para la versión 2.3 de Python está disponible aquí.
Para descargar directamente el paquete desde nuestro sistema utilizaremos wget:
wget http://mesh.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.1-python2.3.noarch.rpm
Con el paquete descargado, ya podemos instalarlo:
rpm -i DenyHosts-2.1-python2.3.noarch.rpm
Configuración
DenyHosts se instala en /usr/share/denyhosts en este directorio se encuentran los archivos de configuración. Disponemos de un archivo de ejemplo que tomaremos como base para crear la configuración:
cd /usr/share/denyhosts
cp denyhosts.cfg-dist denyhosts.cfg
Editamos el archivo denyhost.cfg con nuestro editor favorito y ajustamos los parámetros necesarios:
SECURE_LOG = /var/log/secure
HOSTS_DENY = /etc/hosts.deny
#
# Este parametro indica el periodo de tiempo (4 semanas) que mantendremos las IPs maliciosas
# en el fichero hosts.deny
PURGE_DENY = 4w
#
# Bloquear todos los servicios a la IP maliciosa
BLOCK_SERVICE = ALL
El resto de parámetros del archivo se pueden dejar con los valores por defecto, si además queremos recibir un mail cada vez que se detecten ataques, debemos especificar una dirección de correo válida en:
ADMIN_EMAIL =
Lo habitual es que utilicemos DenyHosts como servicio, para ello podemos aprovechar el archivo daemon-control-dist:
cp daemon-control-dist daemon-control
Editamos el archivo y revisamos los valores:
DENYHOSTS_BIN = "/usr/bin/denyhosts.py"
DENYHOSTS_LOCK = "/var/lock/subsys/denyhosts"
DENYHOSTS_CFG = "/usr/share/denyhosts/denyhosts.cfg"
Despues, nos aseguramos que el archivo sea ejecutable para el usuario root:
chown root daemon-control
chmod 700 daemon-control
Arranque
Ya tenemos lista la configuración, ya podemos arrancar DenyHost:
./daemon-control start
Aunque lo ideal es configurar DenyHosts para que arranque automáticamente, para ello crearemos los enlaces simbólicos necesarios:
cd /etc/init.d
ln -s /usr/share/denyhosts/daemon-control denyhosts
chkconfig --add denyhosts
De este modo tendremos configurado DenyHosts de la siguiente forma:
chkconfig --list denyhosts
denyhosts 0:desactivado 1:desactivado 2:activo 3:activo 4:activo 5:activo 6:desactivado
Con esta sencilla utilidad haremos la vida un poco más difícil a los pesaos de Internet, espero que os sea de utilidad.
Noviembre 22nd, 2006 at 2:00
! exelente ! yo cerre mi puerto por que he recibido ,mas de 300 tatques diarios mejor lo cerre
y lo manejo solo de manera local pero cuando quiero hacer algo desde mi casa no puedo pero voy a probar esta utilidad