Table of Contents
Cómo utilizar Fail2ban para proteger su servidor Linux
Mejorar la seguridad de su servidor debería ser una de sus principales prioridades cuando se trata de administrar un servidor Linux. Al revisar los registros de su servidor, a menudo puede encontrar diferentes intentos de inicio de sesión por fuerza bruta, inundaciones web, búsqueda de exploits y muchos otros.
Con un software de prevención de intrusiones como fail2ban,. usted puede examinar los registros de su servidor y agregar reglas de iptables adicionales para bloquear direcciones IP problemáticas.
Lea también. Cómo instalar Fail2Ban para proteger 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 ataques de fuerza bruta.
Requisitos
Fail2ban está escrito en Python y es el único requisito es tener Python instalado:
- Fail2ban branch 0.9.x requiere Python> = 2.6 o Python> = 3.2
- Fail2ban branch 0.8.x requiere Python> = 2.4
- Acceso root a su sistema
- Opcionalmente, iptables o showewall y sendmail
Cómo instalar Fail2Ban en sistemas Linux
freestar.config. enabled_slots.push (nombre de la ubicación: “tecmint_incontent”, slotId: “tecmint_incontent”);
La instalación de fail2ban. es relativamente fácil:
Instale Fail2Ban en CentOS/RHEL
Primero, actualice sus paquetes, habilite el Epel. repositorio e instale fail2ban. como se muestra.
# yum update # yum install epel-release # yum install fail2ban Instale Fail2Ban en Debian/Ubuntu
Primero, actualice sus paquetes e instale fail2ban. como se muestra.
# apt-get update && apt-get upgrade-y # apt-get install fail2ban
Opcionalmente, si desea habilitar el soporte de correo (para notificaciones por correo), puede instalar sendmail.
# yum install sendmail [en CentOS/RHEL. # apt-get install sendmail-bin sendmail [en Debian/Ubuntu.
Para habilitar fail2ban. y sendmail. use los siguientes comandos:
# systemctl start fail2ban # systemctl enable fail2ban # systemctl start sendmail # systemctl enable sendmail
Cómo configurar Fail2ban en sistemas Linux
De forma predeterminada, fail2ban. utiliza los archivos .conf ubicados en /etc/fail2ban/ que son Lea primero. Sin embargo, estos pueden ser reemplazados por archivos .local ubicados en el mismo directorio.
Por lo tanto, el archivo .local no necesita incluir todas las configuraciones del archivo .conf, sino solo las que desea reemplazar. . Los cambios deben realizarse en los archivos .local, no en el .conf. Esto evitará que se sobrescriban los cambios al actualizar el paquete fail2ban.
Para el propósito de este tutorial, copiaremos el archivo fail2ban.conf. existente en fail2ban.local.
# cp/etc/fail2ban/fail2ban.conf/etc/fail2ban/fail2ban.local
Ahora puede realizar los cambios en el archivo .local utilizando su editor de texto favorito. Los valores que puede editar son:
- loglevel. este es el nivel de detalle que debe registrarse. Las opciones posibles son:
- CRÍTICO
- ERROR
- ADVERTENCIA
- AVISO
- INFO
- DEBUG
- logtarget. registra las acciones en un archivo específico. El valor predeterminado es /var/log/fail2ban.log. Sin embargo, puede cambiar esto a:
- STDOUT-generar cualquier dato
- STDERR-generar cualquier error
- SYSLOG-registro basado en mensajes
- Archivo: salida a un archivo
- socket. directorio en el que se colocará el archivo de socket.
- pidfile. ubicación del pidfile.
Configure Fail2ban jail.local
Uno de los archivos más importantes en fail2ban es jail.conf que define sus jails. Aquí es donde se definen los servicios para los que debe habilitarse fail2ban.
Como mencionamos anteriormente, los archivos .conf pueden modificarse durante las actualizaciones, por lo que debe crear un archivo jail.local. donde puede aplicar sus modificaciones.
Otra forma de hacer esto es simplemente copiar el archivo .conf. con:
# cp/etc/fail2ban/jail.conf/etc/fail2ban/jail.local
En caso de que esté utilizando CentOS. o Fedora. deberá cambiar el backend. en jail.local. de “auto”. a “systemd”.
Habilitar backend en Fail2ban
Si utiliza Ubuntu/Debian. no es necesario realizar esta modificación, aunque también usan systemd.
El archivo jail habilitará SSH por defecto para Debian. y Ubuntu. pero no en CentOS. Si desea habilitarlo, simplemente cambie la siguiente línea en /etc/fail2ban/jail.local.
[sshd] enabled = true Ban and Retry Times
Puede configurar el circunstancia tras la cual se bloquea una dirección IP. Para ello, fail2ban. utiliza bantime. findtime. y maxretry.
- bantime. este es el número de segundos que una dirección IP permanecerá prohibida (por defecto, 10. min).
- findtime. la cantidad de tiempo entre los intentos de inicio de sesión, antes de que se prohíba el host. (predeterminado 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 tiempo de búsqueda ( 10. min).
- maxretry. número de intentos que se deben realizar antes de que se aplique una prohibición. (predeterminado 3. .
Dirección IP de la lista blanca
Por supuesto, querrá incluir ciertas direcciones IP en la lista blanca. Para configurar dichas direcciones IP, abra /etc/fail2ban/jail.local. con su editor de texto favorito y descomente la siguiente línea:
ignoreip = 127.0.0.1/8 :: 1
Luego, puede poner las direcciones IP que desea que se ignoren. Las direcciones IP deben estar separadas del espacio o la coma.
Alertas por correo electrónico
Si desea recibir alertas por correo sobre el evento, deberá configurar las siguientes opciones en /etc/fail2ban/jail.local.
- destemail. 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 que fail2ban enviará los correos electrónicos.
El valor predeterminado mta. ( agente de transferencia de correo. está configurado en sendmail.
Para recibir notificaciones de correo, también necesitará para cambiar la configuración de “acción”. de:
Action =% (action_) s
A uno de estos:
action =% (action_mw) s action =% ( action_mwl) s
- % (action_mw) s. bloqueará el host y enviará un correo con un informe de whois.
- % (action_mwl) s. prohibirá el e host, proporcione información whois y toda la información relevante del archivo de registro.
Configuración adicional de la cárcel Fail2ban
Hasta ahora, hemos examinado las opciones de configuración básicas. Si desea configurar una cárcel, deberá habilitarla en el archivo jail.local. La sintaxis es bastante simple:
[jail_to_enable]. . . enabled = true
Donde debes reemplazar jail_to_enable. con la cárcel real, por ejemplo, “sshd”. En el archivo jail.local. los siguientes valores estarán predefinidos para el servicio ssh:
[sshd] port = ssh logpath =% (sshd_log) s
Puede habilitar el filtro que ayudar a identificar si una línea en el registro es una falla. El valor del filtro es en realidad una referencia a un archivo con el nombre del servicio seguido de .conf. Por ejemplo: /etc/fail2ban/filter.d/sshd.conf.
La sintaxis es:
filter = service
Por ejemplo:
filter = sshd
Puede revisar los filtros existentes en el siguiente directorio: /etc/fail2ban/filter.d/.
Use fail2ban-client
Fail2ban viene con un cliente que se puede utilizar para revisar y cambiar la configuración actual. Dado que proporciona muchas opciones, puede leer su manual con:
# man fail2ban-client
Aquí verá algunos de los comandos básicos que puede usar. Para revisar el estado actual de fail2ban. o para una cárcel específica, puede usar:
# fail2ban-client status
El resultado será similar a esto:
Verificar el estado de Fail2ban
Para una cárcel individual, puede ejecutar:
# fail2ban-client status sshd
En la captura de pantalla a continuación, verá que he fallado intencionalmente en varios inicios de sesión, por lo que fail2ban puede bloquear la dirección IP desde la cual estaba tratando de conectarme:
Check Fail2ban SSH Status Conclusión
Fail2ban. es un excelente y bien documentado sistema de prevención de intrusiones, que proporciona seguridad adicional a su sistema Linux. Se necesita algo de tiempo para acostumbrarse a su configuración y sintaxis, pero una vez que se familiarice con él, se sentirá libre de cambiar y ampliar sus reglas.