Cargando

Ir a contenido

X

 


Cómo instalar y usar Fail2ban para seguridad servidor Linux

Tutorial que explica cómo instalar, configurar y usar Fail2ban para la seguridad del servidor Linux paso a paso.


Escrito por oct 15 2018 10:55



En todo tipo de organización sin importar el tipo de información usada ni la cantidad de usuarios que pertenecen a ella, siempre como personal del área de sistemas o IT debemos velar porque la seguridad sea un factor primordial dentro de ella, mas cuando se gestionan uno o más servidores.

 

Cuando hablamos de servidores con distribuciones Linux, muchas veces pensamos que están exentos de ataques, pero en un mundo en línea que cambia frecuentemente ya no existe un sistema seguro y cualquier distribución está expuesta a ataques de malware, virus, ataques DDOS y muchos más. Como administradores o usuarios con acceso a los eventos y registros del servidor, es normal detectar intentos de inicio de sesión de fuerza bruta, inundaciones web, búsqueda de explotadores y demás amenazas que de una u otra forma pueden poner en riesgo la integridad y disponibilidad de la información.

 

Por ello, es necesario hacer uso de herramientas que nos provean las mejores opciones y alternativas de seguridad; y pensando en ello Solvetic explicará como usar Fail2ban para detectar y asegurar nuestros sistemas operativos Linux.

 

 

¿Qué es Fail2ban?
Fail2ban ha sido desarrollado como un software de prevención de intrusiones, el cual analiza los archivos de registro del servidor como /var/log/apache/error_log y de este modo prohibir las direcciones IP que contengan signos maliciosos tomando en cuenta aspectos como demasiadas fallas en las contraseñas, búsquedas de vulnerabilidades, etc.

 

Por regla general, Fail2Ban es usado para actualizar las reglas del firewall con el fin de que este rechace las direcciones IP en un período de tiempo específico, pero también se puede configurar otra regla que pueda poner en riesgo la seguridad del sistema. Aunque Fail2Ban puede reducir la tasa de intentos de autenticación incorrectos dentro del sistema, es ideal que los métodos de autenticación no sean débiles. Para ello podemos configurar los servicios para que usen solo dos factores o mecanismos de autenticación público / privado para proteger así los servicios en Linux.

 

Requisitos para usar Fail2ban

La única dependencia que necesitaremos para usar Fail2ban será Python, según la versión deseada será lo siguiente:
  • Fail2ban branch 0.9.x: Python >=2.6 o Python >=3.2
  • Fail2ban branch 0.8.x: Python >=2.4
De forma opcional, Fail2ban puede requerir los siguientes elementos:
  • Netfilter/Iptables
  • Shorewall
  • TCP Wrapper
  • Script de correo
  • Ipset

 

Características de Fail2ban

La versión actual de Fail2ban es la 0.9.x la cual nos ofrece características como:
  • Acciones basadas en Python.
  • Soporte de base de datos.
  • Análisis multilínea en filtros.
  • Soporte de fecha y hora personalizado para filtros.
  • Reconocimiento de zona horaria por defecto.
  • Tiempo de espera en los comandos de prohibición.
  • Conjunto de caracteres de reconocimiento en los archivos de registro.
  • Soporte Python3 +
  • Arquitectura cliente / servidor.
  • Multi-hilo.
  • Altamente configurable a través del uso de archivos de configuración divididos.
  • Usa Netfilter / Iptables de forma predeterminada, pero también sera posible usar TCP Wrapper y muchos otros cortafuegos disponibles.
  • Permite manejar múltiples servicios a la vez como sshd, apache, vsftp y más.
  • Ejecuta comandos cuando se detecta un patrón para la misma dirección IP durante más de X veces para prohibir esa dirección.

 

 


1. Cómo instalar Fail2ban en Linux

 

Nota
Para este caso usaremos CentOS 7

 

Paso 1

Para instalar Fail2ban vamos a ejecutar los siguientes comandos en su orden:

 

Actualiza el sistema
yum update

Instala los repositorios EPEL
yum install epel-release

 

Ingresamos la letra y para confirmar la descarga e instalación del repositorio EPEL.

 

1-instalar-fail2ban-linux.png

 

Paso 2

Luego instalamos Fail2ban ejecutando:
yum install fail2ban

2-instalar-fail2ban-linux.png

 

Paso 3

Luego de este análisis veremos que se instalaran todas las dependencias de Fail2ban. Aceptamos la descarga e instalación de Fail2ban.

 

3-instalar-fail2ban-linux.png

 

Paso 4

En el caso de usar Debian o Ubuntu debemos ejecutar lo siguiente:
apt-get update && apt-get upgrade -y
apt-get install fail2ban
De forma opcional podemos habilitar el soporte de correo, para las notificaciones de correo, instalando sendmail de la siguiente manera:

 

CentOS/RHEL
yum install sendmail

 

Debian/Ubuntu
apt-get install sendmail-bin sendmail

 

4-instalar-fail2ban-linux.png

 

Paso 5

Después de esto, vamos a habilitar Fail2ban y Sendmail usando los siguientes comandos:
systemctl start fail2ban
systemctl enable fail2ban
systemctl start sendmail
systemctl enable sendmail

5-instalar-fail2ban-linux.png

 

 


2. Cómo configurar de Fail2ban en Linux


Por defecto, Fail2ban usa los archivos .conf ubicados en el directorio /etc/fail2ban/ ; a los cuales accede en primer lugar, pero estos pueden ser reemplazados por archivos .local ubicados en el mismo directorio.

 

Así, el archivo .local no necesita incluir todas las configuraciones del archivo .conf, sino solo las que deseamos implementar para la seguridad del sistema. Cada cambio debe hacerse en los archivos .local que no estén en .conf con el fin de evitar que se sobrescriban los cambios, al actualizar el paquete fail2ban.

 

Paso 1

Para esto vamos a copiar el archivo fail2ban.conf existente en fail2ban.local así:
cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local

6-instalar-fail2ban-linux.png

 

Paso 2

Ahora será posible realizar los cambios en el archivo .local creado usando algún editor de texto, los valores que podemos editar son:

 

loglevel
Este es el nivel donde se almacenan los registros. Allí contamos con opciones como:
  • CRITICAL
  • ERROR
  • WARNING
  • NOTICE
  • INFO
  • DEBUG

 

logtarget
Alli se registran las acciones en un archivo específico, el valor predeterminado es /var/log/fail2ban.log y las opciones a usar son:
  • STDOUT: Salida de cualquier dato.
  • STDERR: Genera cualquier error.
  • SYSLOG: Registro basado en mensajes.
  • File: Salida a un archivo

 

socket
Es el directorio en el cual se ubicará el archivo socket.

 

Pidfile
Es la ubicación del archivo pid.

 

 


3. Cómo configurar Fail2ban jail.local en Linux


En Fail2ban, uno de los archivos más importantes es jail.conf, el cual define las cárceles o medidas de protección. Allí se deben definir los servicios para los cuales Fail2ban debe estar habilitado.

 

Paso 1

Vamos a crear un archivo jail.local para poder aplicar las modificaciones, para esto ejecutamos:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Accedemos a este archivo local usando la siguiente sintaxis:
nano /etc/fail2ban/jail.local
Allí ubicamos la línea backend y editamos el valor por defecto Auto a systemd:

 

7-instalar-fail2ban-linux.png

 

Nota
En el caso de Ubuntu o Debian, no será necesario realizar esta modificación.

 

Paso 2

El archivo jail.local habilitará SSH de forma predeterminada para Debian y Ubuntu, pero no en CentOS, de modo que si deseamos habilitar SSH vamos a agregar la línea enabled = true bajo [sshd]:

 

8-instalar-fail2ban-linux.png

 


4. Cómo configurar los tiempos de prohibición y reintento en Fail2ban Linux


Con Fail2ban podemos configurar la forma en la cual se bloquea una dirección IP. Para ese propósito; para esto, Fail2ban hace uso de bantime, findtime y maxretry.

 

bantime
Indica el número de segundos en el cual una dirección IP permanecerá prohibida (10 min por defecto).

 

Findtime
Es la cantidad de tiempo entre intentos de inicio de sesión, antes de que se elimine el host. (predeterminado 10 min)

 

maxretry
Hace referencia al número de intentos que deben realizarse antes de que se aplique una prohibición. (por defecto 3 intentos).

 

9-instalar-fail2ban-linux.png

 


5. Cómo configurar direcciones IP de lista blanca en Fail2ban Linux


Es posible añadir direcciones IP en la lista blanca (permitidas) de Fail2ban. Para ello en el archivo jail.local debemos descomentar la siguiente línea:
ignoreip = 127.0.0.1/8  ::1
Alli podemos ingresar las direcciones IP que deben ser ignoradas. Las direcciones IP deben estar separadas por espacios o comas.

 

10-instalar-fail2ban-linux.png

 

 


6. Cómo crear alertas de correo en Fail2ban Linux


Esta opción es ideal si deseamos recibir alertas sobre cualquier cambio o novedad en los registros. Para ello debemos editar el archivo /etc/fail2ban/jail.local, las opciones son:

 

destemail
Es la dirección de correo donde se recibirá la notificación.

 

Sendername
Es el remitente que veremos cuando se reciba el mensaje.

 

Sender
Indica la dirección de correo electrónico desde donde Fail2ban enviará los correos electrónicos.

 

El mta predeterminado (agente de transferencia de correo) está configurado con sendmail.

 

11-instalar-fail2ban-linux.png

 

Para recibir una notificación por correo, también será necesario cambiar la configuración de " Action " en la siguiente línea:

Action = %(action_)s
Por la siguiente configuración:
action = %(action_mw)s
action = %(action_mwl)s
Prohibirá el host y enviará correo con un informe whois
% (action_mw) s

 

Prohibirá el host, generará información de whois y toda la información relevante del archivo de registro
% (action_mwl) s

 


7. Configuraciones adicionales de Fail2ban Linux


Si se desea configurar una cárcel (jail), esta debe ser habilitada en el archivo jail.local. La sintaxis es la siguiente:
[jail]
. . .
enabled = true
Podemos ver la estructura de la cárcel para SSHD. Automáticamente Fail2ban añade los parámetros adicionales.

 

12-instalar-fail2ban-linux.png

 

También será posible habilitar el filtro mediante el cual se puede identificar si una línea en el registro es una falla. El valor del filtro es una referencia a un archivo con el nombre del servicio seguido de .conf. Por ejemplo podemos usar

/etc/fail2ban/filter.d/sshd.conf.
La sintaxis a usar es:
filter = servicio
A medida que añadamos cárceles, podemos usar el cliente de Fail2ban para ver cuales están activas en el servidor, para ello ejecutamos lo siguiente:
fail2ban-client status
Alli serán desplegadas a medida que creemos estas restricciones.

 

13-instalar-fail2ban-linux.png

 

Podemos ver como Fail2ban es una utilidad práctica para aumentar la seguridad en las distribuciones de Linux evitando accesos no autorizados y todo lo relacionado con malas practicas que se ejecuten en la organización.

 

Tutorial oara saber cómo configurar seguridad SSH Linux y configurar la seguridad SSH Linux



AYUDA A MEJORAR ESTE TUTORIAL!

¿Crees que puedes corregir o mejorar este tutorial? Puedes enviar tu Edición con los cambios que consideres útiles.

0 usuarios han editado este tutorial. ¡Edita y conviértete en un reconocido experto!


Tutoriales Relacionados



Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!
10
VOTA
5
100%
4
0%
3
0%
2
0%
1
0%

  Información

  •   Publicado oct 15 2018 10:55
  •   Visitas 1.7K
  •   Nivel
    Intermedio