Fail2ban (Español)

Esta traducción de
Fail2ban
fue revisada el
2020-08-07
. Si existen
cambios
puede
actualizarla
o avisar al
equipo de traducción
.
Artículos relacionados
sshguard (Español)
Security (Español)
Fail2ban
escanea los archivos de registro (por ejemplo,
/var/log/httpd/error_log
) y prohíbe las IP que muestran signos maliciosos así como la que muestren muchos errores de contraseña, búsqueda de vulnerabilidades, etc. Normalmente, Fail2ban se utiliza para actualizar las reglas del
cortafuegos
a fin de rechazar las direcciones IP durante un período de tiempo específico, aunque también permite configurar cualquier otra acción (por ejemplo, enviar un correo electrónico).
Advertencia
El uso de un software de prohibición de IP detendrá los ataques triviales, pero debe apoyarse en un demonio adicional y un registro exitoso. Además, si el atacante conoce su dirección IP, puede enviar paquetes de red con un encabezado de origen falso y obtener su dirección IP prohibida. Asegúrese de especificar su IP en
ignoreip
.
Instalación
Instale
fail2ban
.
Utilización
Configure
Fail2ban y
active
/
inicie
fail2ban.service
.
fail2ban-client
fail2ban-client permite monitorear un «conjunto de reglas encapsuladas» (en adelante, cápsulas) (recarga, reinicio, estado, etc.). Para ver todas las órdenes disponibles:
$ fail2ban-client
Para ver todas las cápsulas activadas:
# fail2ban-client status
Para verificar el estado de una cápsula, por ejemplo para
sshd
:
# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed: 1
|  |- Total failed:     9
|  `- Journal matches:  _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned: 1
   |- Total banned:     1
   `- Banned IP list:   0.0.0.0
Configuración
Debido a la posibilidad de que el archivo
/etc/fail2ban/jail.conf
se sobrescriba o actualice durante una puesta al día de la distribución, se recomienda
crear
un archivo local
/etc/fail2ban/jail.local
. Por ejemplo, para cambiar el tiempo de prohibición predeterminado a 1 día:
/etc/fail2ban/jail.local
[DEFAULT]
bantime = 1d
O cree archivos separados
name.local
en el directorio
/etc/fail2ban/jail.d
, por ejemplo
/etc/fail2ban/jail.d/sshd.local
.
Reinicie
fail2ban.service
para aplicar los cambios de configuración.
Activar cápsulas
Por defecto, todas las cápsulas están desactivadas.
Añada
enabled = true
a la cápsula que desea usar, por ejemplo, para activar la cápsula
OpenSSH
:
/etc/fail2ban/jail.local
[sshd]
enabled = true
Vea
#Cápsula SSH personalizada
.
Recibir un correo electrónico de alerta
Si desea recibir un correo electrónico cuando alguien ha sido baneado, debe configurar un cliente SMTP (por ejemplo,
msmtp
) y cambiar la acción predeterminada, como se indica a continuación.
/etc/fail2ban/jail.local
[DEFAULT]
destemail = yourname@example.com
sender = yourname@example.com

# para prohibir y enviar un correo electrónico con un informe sobre «whois» al correo electrónico.
action = %(action_mw)s

# hace lo mismo que «action_mw» pero también envía líneas de registro relevantes.
#action = %(action_mwl)s
Firewall y servicios
Por defecto, Fail2ban utiliza
Iptables
. Sin embargo, la configuración de la mayoría de
cortafuegos
y servicios es sencilla. Por ejemplo, para usar
Nftables
:
/etc/fail2ban/jail.local
[DEFAULT]
banaction = nftables
Consulte
/etc/fail2ban/action.d/
para ver otros ejemplos, por ejemplo
ufw.conf
.
Consejos y trucos
Cápsula SSH personalizada
Advertencia
Si el atacante conoce su dirección IP, puede enviar paquetes de red con un encabezado de origen falso y obtener su dirección IP bloqueada del servidor.
SSH keys
proporciona una solución elegante al problema de la fuerza bruta sin estos inconvenientes.
Edite
/etc/fail2ban/jail.d/sshd.local
, agregue esta sección y actualice la lista de direcciones IP confiables en
ignoreip
:
/etc/fail2ban/jail.d/sshd.local
[sshd]
enabled   = true
filter    = sshd
banaction = iptables
backend   = systemd
maxretry  = 5
findtime  = 1d
bantime   = 2w
ignoreip  = 127.0.0.1/8
Nota
Podría ser necesario configurar
LogLevel VERBOSE
en
/etc/ssh/sshd_config
para permitir la monitorización completa por fail2ban, de lo contrario, los fallos de contraseña podrían no registrarse correctamente.
Fail2ban tiene soporte para IPv6 desde la versión 0.10. Adapte su
cortafuegos
en consecuencia, por ejemplo
inicie
/
active
ip6tables.service
.
Sugerencia
Si utiliza un front-end para
iptables
como
ufw
, se puede usar
banaction = ufw
en lugar de iptables.
Si opta por
Shorewall
, se puede usar
banaction = shorewall
y también establecer
BLACKLIST
en
ALL
en
/etc/shorewall/shorewall.conf
, de lo contrario, la regla agregada para prohibir una dirección IP afectará solo a las conexiones nuevas.
Fortalecer el servicio
Actualmente, Fail2ban debe ejecutarse como
root
. Por lo tanto, es posible que desee considerar fortalecer el proceso con
systemd (Español)
.
Cree
un archivo de configuración
drop-in
para
fail2ban.service
:
/etc/systemd/system/fail2ban.service.d/override.conf
[Service]
PrivateDevices=yes
PrivateTmp=yes
ProtectHome=read-only
ProtectSystem=strict
NoNewPrivileges=yes
ReadWritePaths=-/var/run/fail2ban
ReadWritePaths=-/var/lib/fail2ban
ReadWritePaths=-/var/log/fail2ban
ReadWritePaths=-/var/spool/postfix/maildrop
ReadWritePaths=-/run/xtables.lock
CapabilityBoundingSet=CAP_AUDIT_READ CAP_DAC_READ_SEARCH CAP_NET_ADMIN CAP_NET_RAW
El parámetro
CAP_DAC_READ_SEARCH
de
CapabilityBoundingSet
permitirá a Fail2ban el acceso de lectura completa a cada directorio y archivo. Los parámetros
CAP_NET_ADMIN
y
CAP_NET_RAW
permitirán que Fail2ban funcione en cualquier cortafuegos que tenga una interfaz en
línea de órdenes
. Consulte
capabilities(7)
para obtener más información.
Al usar
ProtectSystem=strict
la jerarquía del
sistema de archivos
será de «solo lectura»,
ReadWritePaths
permitirá que Fail2ban tenga acceso de escritura en las rutas que considere necesarias.
Cree
/etc/fail2ban/fail2ban.local
con la ruta correcta
logtarget
:
/etc/fail2ban/fail2ban.local
[Definition]
logtarget = /var/log/fail2ban/fail2ban.log
Cree el directorio
/var/log/fail2ban/
como root.
Finalmente,
recargue el demonio de systemd
para aplicar los cambios de la unidad y
reinicie
fail2ban.service
.
Véase también
Using a Fail2Ban Jail to Whitelist a User
Optimising your Fail2Ban filters
Fail2Ban and sendmail
Fail2Ban and iptables
Fail2Ban 0.8.3 Howto
Monitoring the fail2ban log
Supervisión del registro de fail2ban