Cómo usar Fail2ban para asegurar su servidor Linux
- 3460
- 821
- Hugo Vera
Mejorar la seguridad de su servidor debe ser una de sus principales prioridades cuando se trata de administrar un servidor de Linux. Al revisar los registros de su servidor, a menudo puede encontrar diferentes intentos de inicio de sesión de fuerza bruta, inundaciones web, búsqueda de exploits y muchos otros.
Con un software de prevención de intrusos como fail2ban, Puede examinar los registros de su servidor y agregar reglas adicionales de iptables para bloquear direcciones IP problemáticas.
Leer también: Cómo instalar Fail2ban para proteger a SSH en CentOS/RHEL 8
Este tutorial le mostrará cómo instalar fail2ban y configurar la configuración básica para proteger su sistema Linux de los ataques de fuerza bruta.
Requisitos
Fail2ban está escrito en Python y el único requisito es tener instalado Python:
- Fail2ban Branch 0.9.x requiere python> = 2.6 o Python> = 3.2
- Fail2ban Branch 0.8.x requiere python> = 2.4
- Acceso raíz a su sistema
- Opcionalmente, iptables o showewall y sendmail
Cómo instalar Fail2Ban en Linux Systems
Instalación de fail2ban es relativamente fácil:
Instale Fail2Ban en CentOS/RHEL
Primero, actualice sus paquetes, habilite el Epel repositorio e instalación fail2ban como se muestra.
# Yum Update # Yum Install Epel-Lelease # Yum Install Fail2Ban
Instalar fail2ban en Debian/Ubuntu
Primero, actualice sus paquetes e instale fail2ban como se muestra.
# Apt-Get Update && apt-get actualización -y # apt-get install fail2ban
Opcionalmente, si desea habilitar el soporte de correo (para notificaciones de correo), puede instalar SendMail.
# yum install sendmail [en CentOS/RHEL] # apt-get install sendmail-bin sendmail [on Debian/Ubuntu]
Para permitir fail2ban y enviar correo Use los siguientes comandos:
# SystemCTL Start Fail2Ban # SystemCTL Habilitar Fail2Ban # SystemCTL Inicio Sendmail # SystemCTL Habilitar Sendmail
Cómo configurar Fail2Ban en los sistemas Linux
Por defecto, fail2ban usa el .confusión
archivos ubicados en /etc/fail2ban/ que se leen primero. Sin embargo, pueden ser anulados por .local
archivos ubicados en el mismo directorio.
Por lo tanto, la .local
El archivo no necesita incluir todas las configuraciones de la .confusión
Archivo, pero solo los que desea anular. Se deben realizar cambios en el .local
archivos, no en el .confusión
. Esto evitará los cambios de sobrescribe al actualizar el paquete Fail2ban.
Para el propósito de este tutorial, copiaremos el existente fail2ban.confusión archivo fail2ban.local.
# cp/etc/fail2ban/fail2ban.conf/etc/fail2ban/fail2ban.local
Ahora puedes hacer los cambios en el .local
Archivo utilizando su editor de texto favorito. Los valores que puede editar son:
- nivel de registro - Este es el nivel de detalle que se registrará. Las posibles opciones son:
- CRÍTICO
- ERROR
- ADVERTENCIA
- AVISO
- Información
- DEPURAR
- logTarget - Registre las acciones en un archivo específico. El valor predeterminado es /var/log/fail2ban.registro. Sin embargo, puede cambiar esto a:
- Stdout: emite cualquier dato
- Stderr - emitir cualquier error
- Syslog - Registro basado en mensajes
- Archivo: salida a un archivo
- enchufe - directorio en el que se colocará el archivo de socket.
- pidfile - Ubicación del archivo pid.
Configurar la cárcel de Fail2Ban.local
Uno de los archivos más importantes en fail2ban es celda.confusión
que define tus cárceles. Aquí es donde define los servicios para los cuales Fail2ban debe estar habilitado.
Como mencionamos anteriormente .confusión
Los archivos se pueden alterar durante las actualizaciones, por lo que debe crear un celda.local Archivo donde puede aplicar sus modificaciones.
Otra forma de hacer esto es simplemente copiar el .confusión Archivo con:
# cp/etc/fail2ban/cárcel.conf/etc/fail2ban/cárcel.local
En caso de que esté usando Cento o Fedora, necesitará cambiar el backend en celda.local de "auto" a "Systemd".
Habilitar el backend en fail2banSi estas usando Ubuntu/Debian, No hay necesidad de hacer esta modificación, a pesar de que ellos también usan system.
El archivo de la cárcel habilitará SSH de forma predeterminada para Debian y Ubuntu, Pero no en Cento. Si desea habilitarlo, simplemente cambie la siguiente línea en /etc/fail2ban/cárcel.local:
[sshd] habilitado = verdadero
Tiempos de prohibición y reintento
Puede configurar la circunstancia después de la cual se bloquea una dirección IP. Para ese propósito, fail2ban usos bantime, FindTime y maxretería.
- bantime - Este es el número de segundos que una dirección IP permanecerá prohibida (predeterminada 10 min).
- FindTime - la cantidad de tiempo entre los intentos de inicio de sesión, antes de que el host esté prohibido. (por defecto 10 min). En otras palabras, si Fail2Ban está configurado para bloquear una dirección IP después de 3 intentos de inicio de sesión fallidos, esos 3 intentos, deben realizarse dentro del período de FindTime (10 mins).
- maxretería - Número de intentos de hacer antes de aplicar una prohibición. (por defecto 3).
Dirección IP de la lista blanca
Por supuesto, querrás que la lista blanca sean ciertas direcciones IP. Para configurar tales direcciones IP abiertas /etc/fail2ban/cárcel.local Con su editor de texto favorito y descomenque la siguiente línea:
ignorar = 127.0.0.1/8 :: 1
Luego, puede poner las direcciones IP que desea ignorar. Las direcciones IP deben separarse del espacio o la coma.
Alertas de correo electrónico
Si desea recibir alertas de correo en el evento, deberá configurar la siguiente configuración en /etc/fail2ban/cárcel.local:
- desestimado - Dirección de correo, donde recibirá la notificación.
- Nombre del remitente - el remitente que verá al recibir el mensaje.
- remitente - Dirección de correo electrónico desde la cual Fail2Ban enviará los correos electrónicos.
El valor por defecto MTA (agente de transferencia de correo) se establece en enviar correo.
Para recibir notificaciones de correo, también deberá cambiar el "acción" configuración de:
Action = %(Action_) S
A uno de estos:
Action = %(Action_MW) S Action = %(Action_MWL) S
- %(Action_MW) S - prohibirá el anfitrión y enviará un correo con un informe de Whois.
- %(action_mwl) s - prohibirá el host, proporcionará información de Whois y toda la información relevante del archivo de registro.
Configuración adicional de fail2ban en la cárcel
Hasta ahora hemos analizado las opciones de configuración básicas. Si desea configurar una cárcel, deberá habilitarlo en el celda.local archivo. La sintaxis es bastante simple:
[jail_to_enable] ... habilitado = true
Donde debes reemplazar cárcel_to_enable con la cárcel real, por ejemplo, "SSHD". En el celda.local Archivo, los siguientes valores serán predefinidos para el servicio SSH:
[sshd] puerto = ssh logPath = %(sshd_log) s
Puede habilitar el filtro que ayudará a identificar si una línea en el registro es fallida. El valor del filtro es en realidad una referencia a un archivo con el nombre del servicio seguido de .confusión. Por ejemplo: /etc/fail2ban/filtro.d/sshd.confusión.
La sintaxis es:
filtro = servicio
Por ejemplo:
Filtro = SSHD
Puede revisar los filtros existentes en el siguiente directorio: /etc/fail2ban/filtro.d/.
Usar fail2ban-client
Fail2ban viene con un cliente que se puede utilizar para revisar y cambiar la configuración actual. Como proporciona muchas opciones, puede pasar por su manual con:
# hombre fail2ban-client
Aquí verá algunos de los comandos básicos que puede usar. Para revisar el estado actual de fail2ban o para la cárcel específica, puede usar:
# estatus fail2ban-client
El resultado se verá similar a esto:
Verifique el estado de Fail2BanPara la cárcel individual, puede ejecutar:
# Fail2Ban-Client Status SSHD
En la captura de pantalla a continuación, verá que he fallado a propósito múltiples inicios de sesión para que Fail2ban pueda bloquear la dirección IP desde la que intentaba conectarme:
Verifique el estado de Fail2Ban SSHConclusión
Fail2ban es un excelente sistema de prevención de intrusiones bien documentado, que proporciona seguridad adicional a su sistema Linux. Requiere algo de tiempo para acostumbrarse a su configuración y sintaxis, pero una vez que se familiarice con ella, se sentirá libre de cambiar y extender sus reglas.
- « Cómo instalar y configurar un nodo de control Ansible - Parte 2
- Cómo instalar Apache Activemq en Debian 10 »