Cómo prevenir ataques de diccionario o fuerza bruta contra SSH

Imagen de juank6_66

Como Administrador nuestra principal responsabilidad es garantizar la disponibilidad de los servicios que ofrece nuestro(s) servidor(es). Dentro de las medidas que debemos tomar para asegurarlo se encuentra el proteger el servicio de Secure Sell, el cual es necesario para administrar de manera remota nuestro equipo.

No podemos evitar que un atacante intente accesar de manera no autorizada a nuestro servidor, la defensa que tenemos es detectar el momento preciso cuando nos estén intentado hacer un ataque de diccionario o fuerza bruta.

La herramienta denyhost, nos ayudará para evitar estos ataques.

Este pequeño manual describe la instalación de denyhosts sobre Centos 4.4.

1. Descargar el paquete DenyHosts-2.5-python2.3.noarch.rpm

wget http://kent.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.5-python2.3.noarch.rpm

2. Instalar el rpm DenyHosts-2.5-python2.3.noarch.rpm

rpm -Uvh DenyHosts-2.5-python2.3.noarch.rpm

3. Crear el archivo de configuración denyhosts.cfg

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

4. Editarlo y ajustar las variables

vi denyhosts.cfg

Ejemplo:

      SECURE_LOG = /var/log/secure
      HOSTS_DENY = /etc/hosts.deny
      PURGE_DENY = 1h
      PURGE_THRESHOLD = 2
      BLOCK_SERVICE  = sshd
      DENY_THRESHOLD_INVALID = 5
      DENY_THRESHOLD_VALID = 10
      DENY_THRESHOLD_ROOT = 1
      DENY_THRESHOLD_RESTRICTED = 1
      WORK_DIR = /usr/share/denyhosts/data
      SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
      HOSTNAME_LOOKUP=YES
      LOCK_FILE = /var/lock/subsys/denyhosts
      ADMIN_EMAIL = paco.medina@gmail.com
      SMTP_HOST = localhost
      SMTP_PORT = 25
      SMTP_FROM = DenyHosts <nobody@tulum.ath.cx>
      SMTP_SUBJECT = DenyHosts Report
      SMTP_DATE_FORMAT = %a, %d %b %Y %H:%M:%S %z
      AGE_RESET_VALID=5d
      AGE_RESET_ROOT=25d
      AGE_RESET_RESTRICTED=25d
      AGE_RESET_INVALID=10d
      DAEMON_LOG = /var/log/denyhosts
      DAEMON_SLEEP = 30s
      DAEMON_PURGE = 1h

5. Copiar el script de arranque al directorio /etc/init.d/

cp daemon-control-dist /etc/init.d/

6. Configurar el sistema para el daemon se ejecute de manera automática en cada reinicio.

      ln -s /etc/init.d/daemon-control-dist /etc/rc3.d/S99daemon-control-dist
      ln -s /etc/init.d/daemon-control-dist /etc/rc0.d/K01daemon-control-dist
      ln -s /etc/init.d/daemon-control-dist /etc/rc6.d/K01daemon-control-dist

Eso esto todo, lo siguiente que veremos son correos avisandonos de la ip's que se presume intentaron un entrar de manera no autorizada a nuestro server por el puerto de ssh.

0


Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de darhac

Muy buen aporte, realice la

Muy buen aporte, realice la instalación paso a paso y no tuve ningun problema. Gracias y ojala de estos aportes encontremos muchos mas.

Imagen de Epe

otra forma es muy simple: no

otra forma es muy simple: no permitir que root entre por defecto, sino con otro usuario. Así el atacante tendrá que además de descubrir la clave, descubrir el usuario.

La otra variante: sólo permitir SSH desde el firewall a algunas IPs (las de tu casa o empresa).

Otra forma es apagar el ssh.

Pero la que distes está bonita, eso sí.

Saludos
epe
--
EcuaLinux.com
Ecuador: +(593) 9 9246504, +(593) 2 3412402
USA: +1 305 675 1512, España: +34 917617884

Saludos
epe
NuestroServer.com
Síguenos en identi.ca

Imagen de deathUser

Otra variante sería no

Otra variante sería no permitir autenticación con contraseña, e implementar autenticación con certificados digitales...

Otra alternativa al software propuesto es fali2ban, que ya postearon un como por ahi ...

bye
Smiling