Introducción
Fail2ban es un software que protege su servidor de ataques de fuerza bruta. Para ello, supervisa los registros del servidor y detecta cualquier actividad sospechosa.
El programa detecta cuando hay un número irrazonable de intentos fallidos y automáticamente agrega nuevos a iptables que bloquean la IP dada. Esta IP (o host) luego se bloquea por un tiempo específico o indefinidamente.
Por lo tanto, instalar este software de monitoreo de registros es una excelente manera de proporcionar otra capa a la seguridad de su servidor. Aún así, solo puede ser una parte de su plan general de seguridad del servidor. Explore más medidas con estos 21 consejos de seguridad para servidores.
En este tutorial, aprenderá a instalar y configurar Fail2ban en su servidor.
Requisitos previos
- Acceso a una línea de comandos / ventana de terminal
- Acceso a una cuenta de usuario con sudo o privilegios de root
Instalar Fail2ban
Cómo instalar Fail2ban depende del sistema operativo que se ejecute en su servidor. A continuación encontrará comandos para instalar y habilitar Fail2ban en Ubuntu , Cent OS , Fedora y Debian .
Importante: Fail2ban no reemplaza a los firewalls de software, como iptables. Está diseñado como otra capa de seguridad y no debe reemplazar a un firewall.
Instalar Fail2ban en Ubuntu
1. Antes de agregar nuevos paquetes, es importante actualizar el repositorio del sistema y actualizar software. Para hacerlo, ejecute el comando:
apt-get update && apt-get upgrade
Presiona y
para confirmar y presione Enter .
2. Ahora puedes instalar Fail2ban con:
apt-get install fail2ban
3. Opcionalmente, puede instalar Sendmail para asistencia por correo electrónico:
apt-get install sendmail
4. A continuación, debe permitir el acceso SSH a través del cortafuegos:
ufw allow ssh
5. Finalmente, habilite el firewall :
ufw enable
Instalar Fail2ban en CentOS
1. Para instalar Fail2ban en CentOS, necesita el repositorio EPEL . Actualice el sistema y agregue el repositorio ejecutando:
yum update && yum install epel-release
2. Con el repositorio EPEL configurado, instale Fail2ban con el comando:
yum install fail2ban
3. A continuación, debe iniciar el servicio Fail2ban y habilitarlo al arrancar:
systemctl start fail2ban
systemctl enable fail2ban
4. Para soporte por correo electrónico, puede instalar Sendmail con:
yum install sendmail
5. Para iniciar y habilitar Sendmail ejecución del servicio:
systemctl start sendmail
systemctl enable sendmail
Instalar Fail2ban en Fedora
1. Comience por actualizar el sistema :
dnf update
2. Luego, instala Fail2ban y Enviar correo (opcional, si necesita asistencia por correo electrónico):
dnf install fail2ban
dnf install sendmail
3. Como estos servicios no se inician automáticamente en Fedora, debe iniciar y habilitar ellos con:
systemctl start fail2ban
systemctl enable fail2ban
systemctl start sendmail
systemctl enable sendmail
Instalar Fail2ban en Debian
1. Actualizar y mejorar el sistema:
apt-get update && apt-get upgrade -y
Presiona y y Introducir para confirmar.
2. Luego, instala Fail2ban con el comando:
apt-get install fail2ban
3. Para soporte por correo electrónico, también puede instalar Sendmail usando el comando:
apt-get install sendmail-bin sendmail
Configurar Fail2ban
Configure Fail2ban editando los siguientes archivos de configuración:
- archivo fail2ban.local
- archivo jail.local
Configurar archivo fail2ban.local
Fail2ban define su configuración global en el fail2ban.conf expediente. El archivo consta de la configuración predeterminada y, por lo general, no se recomienda modificarlo.
Todos los cambios en la configuración deben realizarse en un fail2ban.local separado. archivo.
1. Por tanto, lo primero que hay que hacer es copiar el contenido del .conf archivo en un .local expediente. El comando para hacerlo es:
cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local
2. No habrá salida después de este comando. El siguiente paso es abrir el archivo fail2ban.local usando un editor de texto de su elección:
nano fail2ban.local
3. Debería ver un archivo similar a la imagen a continuación:
En este ejemplo, los comentarios en azul explican cada opción y sus posibles valores. Las líneas blancas son las opciones que puede modificar e incluyen:
loglevel
– Establezca la salida del nivel de registro enCRITICAL,
ERROR
,WARNING
,NOTICE
,INFO
oDEBUG
.logtarget
– Establezca el destino del registro, que puede ser unFILE
,SYSLOG
,STDERR
oSTDOUT
.syslogsocket
– Establezca el archivo de socket de syslog enauto
oFILE
(esto solo se usa silogtarget
está establecido enSYSLOG
)socket
– Configure el archivo de socket que se utiliza para comunicarse con el daemon. Asegúrese de no eliminar este archivo. Su ruta predeterminada es:/var/run/fail2ban/fail2ban.sock
pidfile
– Establezca el archivo PID que se utiliza para almacenar el ID de proceso del servidor fail2ban. La ubicación predeterminada es:/var/run/fail2ban/fail2ban.pid
Configurar archivo jail.local
Otro archivo de configuración de Fail2ban que puede necesitar modificar es jail.conf archivo que incluye jaulas que definen filtros con acciones.
Al igual que con la configuración global, el jail.config El archivo no debe modificarse directamente. En su lugar, toda la personalización debe realizarse en jail.local archivo.
1. Si necesita hacer algunos cambios, copie el contenido de .conf archivo en un .local archivo:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
2. Abra el archivo jail.local con un editor de texto de su elección:
nano jail.local
3. Debería ver el siguiente contenido:
Allí puede establecer las siguientes opciones:
ignoreself
– Especifique si la dirección IP local debe ignorarse configurando el valortrue
false
.ignoreip
– Le permite especificar direcciones IP, máscaras CIDR o hosts DNS que deben prohibirse. Separe varias direcciones con espacios.ignorecommand
– Definir lapath/to/command
si uno debe ser ignorado.
bantime
– Especifique la cantidad de segundos que un host está prohibido (el valor predeterminado es600
)maxretry
– La cantidad de fallas permitidas antes de que se prohíba un host (establecido de forma predeterminada en5
) ).findtime
– El tiempo en el que el host no debe usar elmaxretry
número para no ser baneado (generalmente establecido en10
minutos). Por ejemplo, si un host falla 5 veces en 10 minutos, se bloquea durante 600 segundos.
backend
– Especifique el backend utilizado para obtener la modificación de archivos. Si está utilizando CentOS o Fedora, debe configurar el backend ensystemd
. El valor predeterminadoauto
es suficiente para otros sistemas operativos.[ssh]
– por defecto, Fail2ban no tiene cárceles habilitadas. Por lo tanto, debe hacer esto manualmente agregando las cárceles al archivo de configuración. Por ejemplo, puede habilitar la cárcel del demonio SSH quitando los comentarios (eliminando#
) las líneas[ssh]
yenabled = true
.
destemail
– Especifica la dirección de correo electrónico donde desea recibir notificacionessender
– Define la dirección de correo electrónico desde donde recibes las notificaciones
Configuraciones adicionales de jail.local
También puede establecer configuraciones adicionales en el archivo jail.local, como SSH e iptables. Estas opciones incluyen:
banaction
– Especifica la acción predeterminada que se usa cuandomaxretry
se alcanza.banaction_allports
– Le permite etiquetar una IP que debe bloquearse en cada puerto.port
– El valor debe corresponder al servicio establecido. Esto podría serssh
o un número de puerto (si está utilizando un puerto alternativo).filter
– El nombre del archivo que contiene la información de failregex, ubicado en/etc/fail2ban/filter.d
.
Reiniciar el Servicio
Si ha realizado algún cambio en fail2ban.local y jail.local archivos, asegúrese de reiniciar el servicio fail2ban.
Para reiniciar el servicio fail2ban con la nueva configuración, ejecute el comando:
service fail2ban restart