Instalaremos y configuraremos estas dos aplicaciones para no tener posteriores dolores de cabeza, primero que todo explicaremos que son estas dos aplicaciones y cual es su función:
Fail2Ban
Es un analizador de logs que busca intentos fallidos de registro y bloquea las IP’s de donde provienen estos intentos. Se distribuye bajo la licencia GNU y típicamente funciona en todos los sistemas que tengan interfaz con un sistema de control de ataques o un firewall local.
Fail2Ban tiene una gran configuración pudiendo, además, crear reglas para programas
propios o de terceros.
DenyHOSTS
Es una herramienta de seguridad escrito en python que monitorea los registros del servidor de acceso para prevenir ataques de fuerza bruta en un servidor virtual. El programa funciona mediante la prohibición de direcciones IP que superan un determinado número de intentos de conexión fallidos.
Estas aplicaciones para Linux DenyHosts y Fail2ban, Ambas pueden usarse por separado o de forma conjunta. En mi caso las tengo a las dos trabajando.
La instalación y configuración de cada una ellas depende de la distribución que usen ustedes, este post esta orientado hacia CentOS 6.3, aunque las diferencias entre las demás distros no son muy marcadas.
Bueno entonces manos a la Obra,
Instalación y Configuración de Fail2Ban
Esta aplicación genera reglas dinámicas en el propio cortafuegos - firewall de Linux, se encarga de crear reglas vivas en IpTables, y esta no genera un archivo de hosts (Equipos bloqueados por esta aplicación).
Instalación
Para la instalación basta con un yum install fail2ban
Si no les aparece el paquete, debemos agregar el repositorio necesario:
rpm -Uvh http://mirror.metrocast.net/fedora/epel/6/i386/epel-release-6-7.noarch.rpm
ya con esto debe empezar a instalar la aplicación junto con sus dependencias.
Ahora hay que configurar Fail2Ban para que analice los logs que deseamos y bloquee
IP’s, enviando notificaciones vía e-mail. Para ello se modificara el archivo jail.conf que encontramos en /etc/fail2ban
cd /etc/fail2ban
nano jail.conf
En este archivo se debe realizar lo siguiente:
* Modificar es el valor bantime, este valor determina el tiempo en segundos que quedará bloqueada la IP del atacante, por defecto el valor viene en 600 segundos.
* Buscar el valor maxretry que serán el número de veces que una IP puede tener una autenticación fallida antes de ser bloqueada.
* Agregar nuestras ip's en el parametro ignoreip aqui la aplicación pasara por alto nuestras IP autenticadas en dicho parámetro.
[DEFAULT]
# "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not
# ban a host which matches an address in this list. Several addresses can be
# defined using space separator.
ignoreip = 127.0.0.1
# "bantime" is the number of seconds that a host is banned.
bantime = 600
# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime = 600
# "maxretry" is the number of failures before a host get banned.
maxretry = 3
Un ejemplo de como puede quedar es de la siguiente manera:
ignoreip = 127.0.0.1 190.25.242.75 192.168.1.0/24Configurar Fail2Ban y SSH
bantime = 800
maxretry = 2
Para que busque intentos fallidos de logueo por SSH modificar el archivo hasta que sea similar a las siguientes líneas:
[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=22, protocol=tcp]
sendmail-whois[name=SSH, dest=FredySnake@outlook.com, sender=fail2ban@localhost]
logpath = /var/log/secure # Este es el log que analizará fail2ban
maxretry = 3 # cualquier IP que tenga tres o más intentos erroneos se bloqueara.
bantime = 86400 # Tiempo de baneo de 24 horas expresado en segundos
Si modifico el puerto donde escucha el SSH, deberá modificar el parámetro port.
Para que Envie mails editamos la linea.
action = %(action_)sa
action = %(action_mw)sPero se debe de tener instalado el paquete sendmail en nuestro sistema.
apt-get install sendmail
Reiniciamos el servicio y listo.
service fail2ban restartEsta Aplicación no solo nos funciona para accesos no autorizados en SSH, también para apache, para que lea los registros de Asterisk, entre otros.
Instalación y Configuración de DenyHOSTS
Su funcionamiento se basa en el uso del archivo /etc/hosts.deny, es decir, en bloquear las direcciones de los hosts “atacantes” a nivel de sistema, creando una lista de hosts denegados.
La instalacion desde los repositorios la podemos obtener con el siguiente comando:
yum install denyhosts
El archivo de configuración se encuentra en /etc/denyhosts.conf
Antes de seguir, ya que como humanos que somos podemos equivocarnos y hacer el tipico "Capa 8" al acceder alguno de los servicios y bloquearnos a nosotros mismos. Para evitar eso editamos el archivo /etc/hosts.allow y añadimos las IP de las máquinas desde las cuales no queremos que se nos pongan restricciones ante un fallo de acceso.
Modificación Archivo denyhosts.conf
Para no ir tan al fondo en configuraciones en este archivo solo vamos a editar y descomentarear algunos parametros, estos son:
SYNC_SERVER = http://xmlrpc.denyhosts.net:9911
SYNC_INTERVAL = 1h
SYNC_UPLOAD = yes
SYNC_DOWNLOAD = yes
SYNC_DOWNLOAD_THRESHOLD = 3
SYNC_DOWNLOAD_RESILIENCY = 5h
Asi dejaremos una configuración prácticamente por defecto, pero con una gran seguridad frente ataques por SSH
nano /etc/hosts.allow
Ejemplo:
sshd: 127.0.0.1
sshd: 192.168.1.10
sshd: 192.168.0.*
Después de esto, reiniciamos el servicio: /etc/init.d/denyhosts restart
Con esto lo que estamos realizando es dar permiso a una ip, un rango de IP y por supuesto a nuestra interfaz de loopback. Algo que no he probado por lo tanto no se si funcione es agregar DNS a este archivo, es decir, con servicios como DynDNS. si lo realizo les comento como me fue.
Con ciertas opciones y ajustes también haremos que tras el período de tiempo que indiquemos en la configuración de DenyHOSTS se vayan limpiando las direcciones almacenadas, y se vayan actualizando con otras listas hechas por otros si así lo indicamos dando permiso para acceder al servidor de DenyHOSTS.
Para que se purguen las direcciones almacenadas cada cierto tiempo, según se haya configurado, se debe ejecutar el demonio con el parámetro –purge:
/etc/init.d/denyhosts start –purge
Ademas de esto debemos incluirlo al inicio del sistema, en el arranque esto con la siguiente orden:
chkconfig denyhosts on
Estadisticas de DenyHOSTS: http://stats.denyhosts.net/stats.html


2 comentarios:
Muy buen tutorial sobre como instalar Fail2Ban. Comparto aquí la liga de un artículo que redacté pero desde un punto de vista más especializado hasta Asterisk, esperando les sirva:
http://asteriskmx.com/2011/07/protege-tu-asterisk-de-ataques-usando-fail2ban/
Gracias por compartir tu articulo
Publicar un comentario