Instalando OSSEC y Fail2ban en Debian

Como lo prometido es deuda, aquí vengo a mostrarles una instalación algo básica de OSSEC y Fail2ban. Con estos dos programas pretendo asegurar un poco, un servidor Apache y SSH.

Wikipedia:
OSSEC is a free, open source host-based intrusion detection system (IDS). It performs log analysis, integrity checking, Windows registry monitoring, rootkit detection, time-based alerting and active response. It provides intrusion detection for most operating systems, including Linux, OpenBSD, FreeBSD, Mac OS X, Solaris and Windows. It has a centralized, cross-platform architecture allowing multiple systems to be easily monitored and managed. It was written by Daniel B. Cid and made public in 2004.

En resumen. OSSEC es un detector de intrusos que revisa la integridad de nuestro servidor por medio de logs y alarmas. Osea que envia una señal cada ves que un archivo del sistema es modificado etc.

Fail2ban es una aplicación escrita en Python para la prevención de intrusos en un sistema, que se basa en la penalización de conexión (bloquear conexión) a los orígenes que intentan accesos por fuerza bruta. Se distribuye bajo la licencia GNU y típicamente funciona en todos los sistemas POSIX que tengan interfaz con un sistema de control de paquetes o un firewall local.

En resumen, Fail2ban «bannea» o bloquea las conexiones que intentan de forma fallida cierto numero de veces entrar a un servicio de nuestro servidor.

OSSEC.

Nos dirigimos a la página Oficial de OSSEC Y descargamos la version LINUX.

Y luego descargamos la GUI que como el entorno gráfico.

Ahora vamos a instalar todo.

# tar -xvf ossec-hids-2.7.tar.gz
# aptitude install build-essential

Ahora instalamos

# cd ossec-hids-2.7 && sudo ./install

A continuación, te van a salir una serie de preguntas. Lee muy bien y sigue todos los pasos.
Cuando termine de compilar comprobamos.

# /var/ossec/bin/ossec-control start

Si todo salio bien, te saldrá algo como.

Si te sale un mensaje de error como: » OSSEC analysisd: Testing rules failed. Configuration error. Exiting.» Ejecutamos lo siguiente para solucionarlo.

# ln -s /var/ossec/bin/ossec-logtest /var/ossec/ossec-logtest

Interfaz Gráfica.

La interfaz gráfica de OSSEC va por medio de web. Si no tienes instalado Apache. lo instalamos. y el soporte para PHP también.

# apt-get install apache2 apache2-doc apache2-utils
# apt-get install libapache2-mod-php5 php5 php-pear php5-xcache
# apt-get install php5-suhosin

Ahora

# tar -xvf ossec-wui-0.3.tar.gz

Ahora como ROOT movemos la carpeta.

# mv ossec-wui-0.3 /var/www/ossec

Ahora instalamos.

# cd /var/www/ossec/ && ./setup.sh

Nos va pedir un usuario y una constraseña (el usuario no tiene que estar en tu pc. Es solo para el login) Ahora vamos hacer lo siguiente.
Editamos el archivo "/etc/group»

y donde dice "ossec:x:1001:"
Lo dejamos asi: "ossec:x:1001:www-data"

Ahora hacemos lo siguiente (dentro de la carpeta » /var/www/ossec»

# chmod 770 tmp/
# chgrp www-data tmp/
# /etc/init.d/apache2 restart

Ahora ingresamos a nuestro OSSEC. En nuestro navegador escribimos. «localhost/ossec»

Ahora podemos ver lo que pasa en nuestro servidor por medio de logs.

INSTALAMOS FAIL2BAN

Fail2ban está en repositorios. Por lo tanto es fácil de instalar.
#apt-get install fail2ban
editamos
#nano /etc/fail2ban/jail.conf
Oprimimos CTRL-W y escribimos ssh.
Nos aparecerá algo como:

Así quedaría habilitado el failt2ban para SSH. (Si han cambiado el puerto ssh. lo reemplazan) De igual manera podemos habilitarlo para ftp. apache y multitud de servicios. Ahora vamos a hacer que nos envie un correo cuando vea que alguien está intentando acceder. En /etc/fail2ban/jail.conf añadimos.

[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=you@mail.com,sender=fail2ban@mail.com]
logpath = /var/log/sshd.log
maxretry = 5

Ahora reiniciamos el servidor.

# service fail2ban restart

Como podemos ver en los dos LOGS anteriores me muestra que efectivamente han intentado acceder por sshd con passwords fallidos.

Me dice la ip de origen y la bloquea. 🙂

Saludos


5 comentarios, deja el tuyo

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   lusadi dijo

    Buen tuto, como aportación podemos editar el archivo /etc/fail2ban/jail.conf
    para personalizar muchas opciones, entre ellas el tiempo maximo de baneo, el numero de reintentos.

    Gracias or el aporte.

  2.   josehp dijo

    Primero que nada muy buen post (y blog también)! jejeje. Quería ver si pueden hacer un post o algo dedicado a la nueva actualización que Oracle acaba de sacar de Java, soy muy novato en Linux (tengo linux mint 14) y no sé como actualizarlo, y con esto de los fallos de seguridad me urge actualizarlo. De antemano gracias! 😀

    1.    @Jlcmux dijo

      Según leí por ahí. Mandaron una actualización para ese 0-day pero muchos dicen que el bug persiste. Mejor déjalo desinstalado.

  3.   tuespazio dijo

    en lo particular prefiero instalar algo como CSF trae todo esto integrado.

  4.   pebelino dijo

    Gracias. Me voy a poner con OSSEC.
    Yo también uso junto con fail2ban el servidor denyhosts. Hace un trabajo parecido (en la parte de sshd) y además actualiza la lista de ‘niños malos’ desde un servidor central donde podemos volcar también nuestra lista negra y así colaborar en la creación de listas más potentes.