Desde que tengo el servidor me he estado fijando que misteriosamente empiezan a aparecer una serie intentos de conexion contra el ssh, intentando supongo hacerse con el control de la maquina. Suerte que tengo desactivado el acceso para la cuenta de root asi que de momento no han conseguido nada, de todos modos me fastidia ver que en un par de dias aparecen del orden de 22000 intentos de conexion, que quieras que no estan jodiendo al server.
Asi que para intentar remediarlo cambie el ssh de puerto, pero este cambio no me convencia, ademas de que me daba un error de conexion a traves de ciertos proxies. Asi que despues de un tiempo lo volvi a poner en el 22 y pense que quiza despues de el tiempo que habia pasado me dejarian en paz, pero pobre iluso los intentos de conexion seguian e iban en aumento. Estuve buscando por la red y me encontre con un pequeño programita que cumplia con mis expectativas, denyhosts.
Se trata de un script en python, pero podemos ejecutarlo como demonio para que quede trabajando, que monitoriza el archivo /var/log/auth.log y busca intentos de conexion fallidos al ssh, dependiendo de como lo ajustes, a los 5 intentos fallidos envia la ip de la maquina a /etc/hosts.deny impidiendo que esa maquina se vuelva a conectar al sevidor para siempre, fantastico.
Instalacion
Bueno pues despues de esta introduccion vamos a pasar a ver como instalarlo en nuestro sistema. Para empezar tenemos que instalar python en caso de no tenerlo ya, para ello:
Es posible que la version de python sea superior, podeis hacer primero un apt-cache search y mirar la que corresponde. Ahora procedemos a instalar denyhosts asi:
wget http://mesh.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.6.tar.gz
tar xvfz DenyHosts-2.0.tar.gz
cd DenyHosts-2.0
python setup.py install
Esto lo instala en /usr/share/denyhosts.
Configuracion
Ahora tenemos que crear el fichero de configuracion para denyhosts, para eso vamos a copiar el archivo de ejemplo que trae el propio programa:
cp denyhosts.cfg-dist denyhosts.cfg
Ahora procederemos a editar el fichero cambiando los siguientes valores:
SECURE_LOG = /var/log/auth.log
LOCK_FILE = /var/run/denyhosts.pid
Como lo interesante de este programita es ejecutarlo como demonio y “olvidarnos”· de el pues necesitamos un fichero a mayores, una vez mas podemos copiar el fichero de configuracion de ejemplo que trae el programa(recordar que estamos en el directorio /usr/share/denyhosts):
Ahora lo editamos y nos aseguramos de que los siguientes valores esten correctos:
DENYHOSTS_BIN = “/usr/bin/denyhosts.py”
DENYHOSTS_LOCK = “/var/run/denyhosts.pid”
DENYHOSTS_CFG = “/usr/share/denyhosts/denyhosts.cfg”
En este momento debemos dar permisos de ejecucion al demonio:
chmod 700 daemon-control
Uso
Y ya para terminar y dejeralo feten lo vamos a copiar a /etc/init.d/ para que se ejecute el solo al inicio del servidor como un servicio mas del sistema:
ln -s /usr/share/denyhosts/daemon-control denyhosts
update-rc.d denyhosts defaults
De esta forma podemo arrancar/parar/reiniciar nosotros el proceso facilmente:
/etc/init.d/denyhosts start #–>arrancar
/etc/init.d/denyhosts stop #–>parar
/etc/init.d/denyhosts restart #–>reiniciar
Los ficheros de log importantes, y que deberemos prestar atencion son el /var/log/auth.log donde van los sucesos del ssh y el /var/log/denyhosts donde el denyhosts deja constancia de toda su actividad. Ademas en el fichero /etc/hosts.deny se iran incluyendo automaticamente las ip banneadas. Recordar que todas las ips que figuran en ese fichero tiene el acceso totalmente prohibido a la maquina;Si por algun casual acaba apareciendo alguna ip que no deberia, de un amigo, o la vuestra propia podeis eliminarla manualmente editando el fichero.
Pues hasta aqui nuesto articulo firki-linuxero de la semana, sed felices.
Sacado de: http://www.howtoforge.com/preventing_ssh_dictionary_attacks_with_denyhosts
Pertenece a la seccion Manuales
Download day »»
Si en la 6.06 lo instalaste usando apt a lo mejor estas usando una version antigua(o muy antigua) te recomiendo que sigas el manual y te bajes la ultima version disponible, eso deberia funcionar sin problemas.
una pregunta
instale denyhosts en ubuntu 8.04
apt-get install denyhost
y ningun problema, a los minutos empezo a bloquear ip’s en /etc/hosts.deny
trate de instalarlo en ubuntu 6.06 LTS siguiendo tus pasos, al parecer todo bien ningun mensaje de error, pero no agrega ip’s al /etc/hosts.deny, apesar q en el auth.log hay varios registros de conexiones fallidas por ssh
alguna idea?
gracias
Genial companero, mas que util =D