Todos los servidores a los que se puede acceder desde Internet corren el riesgo de sufrir ataques de malware. Por ejemplo, si tiene una aplicación a la que se puede acceder desde la red pública, los atacantes pueden usar intentos de fuerza bruta para obtener acceso a la aplicación.
Fail2ban es una herramienta que ayuda a proteger su máquina Linux de la fuerza bruta y otros ataques automatizados al monitorear los registros de servicios en busca de actividad maliciosa. Utiliza expresiones regulares para escanear archivos de registro. Se cuentan todas las entradas que coinciden con los patrones, y cuando su número alcanza un cierto umbral predefinido, Fail2ban prohíbe la IP infractora utilizando el firewall del sistema durante un período de tiempo específico. Cuando expira el período de prohibición, la dirección IP se elimina de la lista de prohibición.
Este artículo explica cómo instalar y configurar Fail2ban en Debian 10.
Instalación de Fail2ban en Debian #
El paquete Fail2ban se incluye en los repositorios predeterminados de Debian 10. Para instalarlo, ejecute el siguiente comando como root o usuario con privilegios de sudo:
actualización de sudo apt
sudo apt install fail2ban
Una vez completado, el servicio Fail2ban se iniciará automáticamente. Puedes verificarlo comprobando el estado del servicio:
sudo systemctl status fail2ban
La salida se verá así:
● fail2ban.service - Servicio Fail2Ban cargado: cargado (/ lib / systemd / system / fail2ban.Servicio; activado; preajuste del proveedor: habilitado) Activo: activo (en ejecución) desde el miércoles 10 de marzo de 2021 a las 18:57:32 UTC; Hace 47 s…
Eso es. En este punto, tiene Fail2Ban ejecutándose en su servidor Debian.
Configuración de Fail2ban #
La instalación predeterminada de Fail2ban viene con dos archivos de configuración, / etc / fail2ban / jail.conf
y / etc / fail2ban / jail.d / defaults-debian.conf
. No debe modificar estos archivos, ya que pueden sobrescribirse cuando se actualiza el paquete.
Fail2ban lee los archivos de configuración en el siguiente orden. Cada .local
archivo anula la configuración de la .conf
expediente:
/ etc / fail2ban / jail.conf
/ etc / fail2ban / jail.D/*.conf
/ etc / fail2ban / jail.local
/ etc / fail2ban / jail.D/*.local
La forma más sencilla de configurar Fail2ban es copiar el celda.conf
a celda.local
y modificar el .local
expediente. Los usuarios más avanzados pueden crear un .local
archivo de configuración desde cero. La .local
El archivo no tiene que incluir todas las configuraciones del correspondiente .conf
archivo, solo aquellos que desea anular.
Crear un .local
archivo de configuración copiando el archivo predeterminado celda.conf
expediente:
sudo cp / etc / fail2ban / jail.conf, local
Para comenzar a configurar el servidor Fail2ban abierto, el celda.local
archivo con su editor de texto:
sudo nano / etc / fail2ban / jail.local
El archivo incluye comentarios que describen lo que hace cada opción de configuración. En este ejemplo, cambiaremos la configuración básica.
Direcciones IP de la lista blanca #
Las direcciones IP, los rangos de IP o los hosts que desea excluir de la prohibición se pueden agregar al ignorar
directiva. Aquí debe agregar la dirección IP de su PC local y todas las demás máquinas que desea incluir en la lista blanca.
Descomente la línea que comienza con ignorar
y agregue sus direcciones IP separadas por espacio:
ignoreip = 127.0.0.1/8 :: 1 123.123.123.123 192.168.1.0/24
Configuración de prohibición #
bantime
, encontrar tiempo
, y maxretry
opciones establecen el tiempo de prohibición y las condiciones de prohibición.
bantime
es la duración de la prohibición de la propiedad intelectual. Cuando no se especifica ningún sufijo, el valor predeterminado es segundos. Por defecto, el bantime
el valor se establece en 10 minutos. La mayoría de los usuarios prefieren establecer un tiempo de prohibición más largo. Cambie el valor a su gusto:
bantime = 1d
Para prohibir permanentemente la IP, use un número negativo.
encontrar tiempo
es la duración entre el número de fallas antes de que se establezca una prohibición. Por ejemplo, si Fail2ban está configurado para prohibir una IP después de cinco fallas (maxretry
, ver a continuación), esas fallas deben ocurrir dentro del encontrar tiempo
duración.
tiempo de búsqueda = 10 m
maxretry
es la cantidad de fallas antes de que se prohíba una IP. El valor predeterminado se establece en cinco, lo que debería estar bien para la mayoría de los usuarios.
maxretry = 5
Notificaciónes de Correo Electrónico #
Fail2ban puede enviar alertas por correo electrónico cuando una IP ha sido prohibida. Para recibir correos electrónicos, debe tener un SMTP instalado en su servidor y cambiar la acción predeterminada, que solo prohíbe la IP a % (action_mw) s
, Como se muestra abajo:
acción =% (action_mw) s
% (action_mw) s
prohíbe la IP infractora y envía un correo electrónico con un informe de whois. Si desea incluir los registros relevantes en el correo electrónico, establezca la acción en % (action_mwl) s
.
También puede cambiar las direcciones de correo electrónico de envío y recepción:
/ etc / fail2ban / jail.localdestemail = admin @ linuxize.com remitente = root @ linuxize.com
Cárceles Fail2ban #
Fail2ban utiliza el concepto de cárceles. Una cárcel describe un servicio e incluye filtros y acciones. Se cuentan las entradas de registro que coinciden con el patrón de búsqueda y, cuando se cumple una condición predefinida, se ejecutan las acciones correspondientes.
Fail2ban se envía con una serie de cárceles para diferentes servicios. También puede crear sus propias configuraciones de cárcel. De forma predeterminada, solo la cárcel ssh está habilitada.
Para habilitar una cárcel, debe agregar habilitado = verdadero
después del título de la cárcel. El siguiente ejemplo muestra cómo habilitar la cárcel postfix:
[sufijo] habilitado = puerto verdadero = smtp, ssmtp filter = postfix logpath = / var / log / mail.Iniciar sesión
La configuración que discutimos en la sección anterior, se puede establecer por cárcel. Aquí hay un ejemplo:
/ etc / fail2ban / jail.local[sshd] habilitado = true maxretry = 3 findtime = 1d bantime = 4w ignoreip = 127.0.0.1/8 11.22.33.44
Los filtros se encuentran en el / etc / fail2ban / filter.D
directorio, almacenado en un archivo con el mismo nombre que la cárcel. Si tiene una configuración personalizada y experiencia con expresiones regulares, puede ajustar los filtros.
Cada vez que se modifica el archivo de configuración, el servicio Fail2ban debe reiniciarse para que los cambios surtan efecto:
sudo systemctl reiniciar fail2ban
Cliente Fail2ban #
Fail2ban se envía con una herramienta de línea de comandos llamada fail2ban-cliente
que puede utilizar para interactuar con el servicio Fail2ban.
Para ver todas las opciones disponibles, invoque el comando con el -h
opción:
fail2ban-cliente -h
Esta herramienta se puede utilizar para prohibir / desbancar direcciones IP, cambiar configuraciones, reiniciar el servicio y más. Aquí están algunos ejemplos:
Obtenga el estado actual del servidor:
sudo fail2ban-estado del cliente
Verifique el estado de la cárcel:
sudo fail2ban-estado del cliente sshd
Desbancar una IP:
sudo fail2ban-client establece sshd unbanip 11.22.33.44
Prohibir una IP:
sudo fail2ban-client establece sshd banip 11.22.33.44
Conclusión #
Le mostramos cómo instalar y configurar Fail2ban en Debian 10.
Para obtener más información sobre este tema, visite la documentación de Fail2ban .
Si tiene preguntas, no dude en dejar un comentario a continuación.