Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
ndice de contenido
INTRODUCCIN................................................................................................................................2 INSTALACION Y CONFIGURACION FAIL2BAN..........................................................................2 1.- INSTALACIN..........................................................................................................................2 2.- CONFIGURACIN DE LAS OPCIONES GENERALES.......................................................3 3.- CONFIGURACIN DE LOS SERVICIOS CONCRETOS......................................................4 3.1 Servicio FTP......................................................................................................................4 4.- ARRANQUE Y ROTACIN DEL SERVICIO.........................................................................6 4.1 Configuracin de determinadas acciones en el arranque ..................................................6 4.2 Arranque del servicio fail2ban...........................................................................................7 4.3 Rotacin del servicio fail2ban............................................................................................7 BIBLIOGRAFA..................................................................................................................................7
INTRODUCCIN
Un intento frecuente de conseguir acceso a un servidor suele ser mediante ataques por fuerza fruta (brute-force attack) a los servicios que tiene el servidor. A priori, con una buena poltica de seguridad en las contraseas, este tipo de ataques no es efectivo, pero es cierto que tiene un elevado consumo de ancho de banda y tambin de carga para la CPU del servidor que administras. Para evitar estos ataques en tu servidor Linux, y de paso el consumo de ancho de banda y CPU, existen diversas opciones, que aportan un mayor nivel de seguridad a los servidores, entre ellas fail2ban. Fail2Ban es una aplicacin Python que trabaja sobre los archivos de registro (logs) que generan los servicios del servidor, los analiza regularmente y busca intentos de acceso fallidos. Cuando los encuentra, atendiendo al nmero de intentos de acceso en un determinado periodo de tiempo, toma ciertas medidas que van desde una simple notificacin por correo electrnico al administrador, hasta un baneo (temporal o indefinido) que puede ser parcial (a un servicio del servidor que administramos) o total (a todos los servicios que ofrece nuestro servidor). El funcionamiento es muy sencillo: para cada servicio de nuestro servidor que deseemos proteger con fail2ban debemos indicar:
el archivo de registro (logfile) del servicio el patrn (filter) que se buscar en el logfile del servicio (directorio /etc/fail2ban/filter.d) las acciones que se llevarn a cabo (actions) (directorio /etc/fail2ban/action.d) y el nmero de intentos fallidos que se permiten en cada periodo de tiempo
De esta forma, el demonio que ejecuta fail2ban en nuestro servidor tiene los parmetros suficientes para poder actuar ante un posible ataque por fuerza bruta a alguno de los servicios que corren nuestros servidores. Observaciones: Nuestra instalacin y configuracin va a ser en una Fedora17.
El archivo fail2ban.conf es el archivo de configuracin del demonio que ejecuta fail2ban analizando los logs del sistema y en el vamos a poder definir diferentes opciones como son el archivo de registro del propio fail2ban, el detalle de este archivo, etc Jail.conf es el archivo donde se definen que servicios van a analizarse y con qu criterios. Para cada servicio se define un jail que consta como mnimo de una expresin regular (filter), una accin (action), y el fichero de registro del servicio en cuestin (logpath). El directorio action.d contiene los scripts de las distintas acciones que pueden asociarse a un determinado jail. Y el directorio filter.d contiene distintos archivos con las exprexiones regulares para cada servicio. La instalacin incluye los archivos para las acciones ms comunes (envio de correo, whois, baneo con iptables, host.deny,) y las expresiones regulares (filters) de multiples servicios (ftp, ssh, correo, apache, ). Todos los archivos finalizados en .conf son editables, aunque es recomendable no modificarlos, y utilizar un archivo con el mismo nombre pero acabado en .local en lugar de .conf para escribir nuestra configuracion. La configuracin escrita en los archivos .local siempre tendrn preferencia ante las .conf. De esta forma se asegura que no se pierda nuestra configuracin al actualizar a otra versin (no es necesario duplicar todas las directivas, realmente solo con poner aquellas que deseemos modificar ser suficiente).
- ignoreip: sirve para indicar IPs (separadas por espacios) o redes que no queremos que sean baneadas. Por ejemplo, la IP de loopback del propio servidor. ignoreip = 127.0.0.1 - bantime: periodo de tiempo (en segundos) durante el cual se mantendr el bloqueo del atacante. El valor -1 indicara que se bloquea para siempre. bantime = 600 - findtime: el nmero de fallos se ha de producir en un determinado intervalo de tiempo. Esta variable es la que indica el intervalo de tiempo en segundos. findtime = 600 - maxretry: nmero mximo de intentos fallidos que se permitirn en el intervalo de tiempo establecido (findtime). maxretry = 5 - backend: mtodo que se utilizar para comprobar la modificacin en los logs de los servicios. backend = gamin Las opciones son: inotify: Mediante pyinotify lee los cambios en los ficheros. gamin: Mediante Gamin controla los cambios en los ficheros polling: Comprueba peridicamente los cambios en los ficheros, en este caso no es necesario tener libreras complementarias. auto: Escoge por defecto inotify, sino puede elige gamin y si no puede usarlo pasa a polling. * BUG: Hay un problema con el pyInotify y la rotacin del log del fail2ban. Si se pone backend=inotify o backend=auto al rotar el log deja de banear. Ponemos backend=gamin.
enabled: sirve para activar o desactivar el jail. logpath: archivo log que genera el servidor proftpd y en donde se buscan los patrones. filter: nombre del archivo de la carpeta filter.d que contiene el filtro para proftpd. action: la accin(o acciones) que se efectuar si se detecta un ataque. 4
Modificamos la configuracin del proftpd en el jail.local: vi jail.local [proftpd-iptables] enabled = true filter = proftpd action = iptables[name=ProFTPD, port=ftp, protocol=tcp] sendmail-whois[name=ProFTPD, dest=direccion@correo] logpath = /var/log/proftpd/proftpd.auth_log #bantime = -1 # -1 es indefinido bantime = 3600 findtime = 30 maxretry = 4 Hemos modificado la ubicacin del archivo de registro del servidor proftpd, y hemos aadido la direccin de email dnde enviar un correo con un whois del atacante. Comprobacin del formato fecha en los logs del protfpd: El formato del log del proftpd est en fecha espaola (ejemplo: 08/ago/2012), el fail2ban no es capaz de analizarlo y no banea. Tenemos que cambiar el formato del log del proftpd: vi /etc/proftpd.conf Modificamos esta lna: LogFormat auth "%v [%P] %h %t \"%r\" %s" Por esta otra: LogFormat auth "%v [%P] %h %{[%m/%d/%Y:%H:%M:%S]}t \"%r\" %s" Comprobacin del funcionamiento del filtro sobre el contenido del fichero log del proftpd: Ahora tenemos que comprobar que el contenido del fichero de log, cumple alguno de los filtros que vienen definidos por defecto, si no es as, hay que hacer uno especfico para nuestro caso. Los filtros definidos son (fichero /etc/fail2ban/filter.d/proftpd.conf):
\(\S+\[<HOST>\]\)[: \(\S+\[<HOST>\]\)[: \(\S+\[<HOST>\]\)[: \(\S+\[<HOST>\]\)[: -]+ -]+ -]+ -]+ USER \S+: no such user found from \S+ \[\S+\] to \S+:\S+$ USER \S+ \(Login failed\): Incorrect password\.$ SECURITY VIOLATION: \S+ login attempted\.$ Maximum login attempts \(\d+\) exceeded$
Para hacer esta comprobacin, tenemos la herramienta: fail2ban-regex: fail2ban-regex /var/log/proftpd/proftpd.auth_log /etc/fail2ban/filter.d/proftpd.conf Nos da como resultado:
Summary ======= Sorry, no match Look at the above section 'Running tests' which could contain important information.
Es decir, nuestro fichero log no se ajusta a los patrones del filtro, as que tenemos que hacer un patrn concreto para nuestro caso:
(.*) (.*) <HOST> (.*) (.*) 530
Ahora, si comprobamos con fail2ban-regex: fail2ban-regex /var/log/proftpd/proftpd.auth_log /etc/fail2ban/filter.d/proftpd.conf Nos da como resultado:
Success, the total number of match is <num> However, look at the above section 'Running tests' which could contain important information.
4.- ARRANQUE Y ROTACIN DEL SERVICIO 4.1 Configuracin de determinadas acciones en el arranque
Al reiniciar el servicio iptables y el propio servicio fail2ban, se pierden las reglas fail2ban de bloqueo a las ips atacantes. Para resolver este problema, tenemos que modificar las acciones de baneo: En el fichero /etc/fail2ban/action.d/iptables.conf, aadimos las siguientes lneas: cd /etc/fail2ban/action.d/ vi iptables.conf
actionban = iptables -I fail2ban-<name> 1 -s <ip> -j DROP echo "iptables -I fail2ban-<name> 1 -s <ip> -j DROP" >> /etc/fail2ban/action.d/ListadoIPsbloquedas.txt /usr/libexec/iptables.init save
BIBLIOGRAFA
http://www.fail2ban.org http://www.fail2ban.org/wiki/index.php/HOWTOs http://www.fail2ban.org/wiki/index.php/Manual http://www.aradaen.com/seguridad/fail2ban-protege-tu-servidor-de-ataques-por-fuerzabruta/ http://www.aradaen.com/sysadmin/instalar-fail2ban-en-servidores-centos-y-debian/