
Recibí los siguientes mensajes de error que se repiten en el archivo de registro de firewalld.
2019-07-19 14:18:20 ERROR: COMMAND_FAILED: Direct: '/usr/sbin/iptables-restore -w -n' failed: iptables-restore v1.4.21: Set fail2ban-ssh doesn't exist.
Error occurred at line: 2
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
Busqué aquí y allá para corregir este error sin suerte. Estoy usando Centos7 con firewalld y fail2ban.
No sé dónde está el problema exactamente. ¿Está esto relacionado con fail2ban o firewalld?
Al ejecutar systemctl status firewalld -l se muestran los siguientes mensajes de error:
firewalld[703]: WARNING: '/usr/sbin/iptables-restore --wait=2 -n' failed: iptables-restore v1.4.21: Set fail2ban-sshd doesn't exist.
Error occurred at line: 2
Try 'iptables-restore -h' or 'iptables-restore --help' for more information.
firewalld[703]: ERROR: COMMAND_FAILED
Tengo el siguiente contenido de jail.local para fail2ban:
[DEFAULT]
ignoreip = 127.0.0.0/8
bantime = 86400
findtime = 86400
maxretry = 5
# Override /etc/fail2ban/jail.d/00-firewalld.conf:
banaction = firewallcmd-ipset
[sshd]
enabled = true
[ssh]
enabled = true
filter = sshd
action = %(action_)s
logpath = /var/log/secure
maxretry = 5
Todas las demás configuraciones se ajustan a los valores predeterminados del sistema.
Instalé firewalld según lo siguiente:
sudo yum install firewalld
sudo systemctl start firewalld
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --remove-service=smtp
sudo systemctl enable firewalld
Finalmente, realizando el siguiente comando:
# firewall-cmd --direct --get-all-rules
Obtengo estos resultados:
ipv4 filter INPUT 0 -p tcp -m multiport --dports ssh -m set --match-set fail2ban-sshd src -j REJECT --reject-with icmp-port-unreachable
ipv4 filter INPUT 0 -p tcp -m multiport --dports 0:65535 -m set --match-set fail2ban-ssh src -j REJECT --reject-with icmp-port-unreachable
Agradezco su ayuda ya que estoy más al desarrollo que a los servidores.
Realmente necesito arreglar esto lo antes posible. Es para mi servidor de producción.
¡Gracias!
Respuesta1
Si hubieras revisado tu /var/log/fail2ban.log o donde lo hayas colocado, probablemente verías algo como esto.
2019-08-01 08:16:14,509 fail2ban.utils [11727]: #39-Lev. 3ef3cd40 -- ejecutivo: ipset crea hash f2b-apache-myadmin: tiempo de espera de ip 2160000 firewall-cmd --direct --add-rule filtro ipv4 INPUT_direct 0 -p tcp -m multiport --dports http,https -m set --match -set f2b-apache-myadmin src -j REJECT --reject-with icmp-port-unreachable 2019-08-01 08:16:14,510 fail2ban.utils [11727]: ERROR 3ef3cd40 -- stderr: "ipset v7.2: Error de sintaxis: '2160000' está fuera del rango 0-2147483" 2019-08-01 08:16:14,510 fail2ban.utils [11727]: ERROR 3ef3cd40 - stderr: "Error: COMMAND_FAILED: '/usr/sbin/iptables- restaurar -w -n' falló: iptables-restore v1.8.2 (heredado): la configuración f2b-apache-myadmin no existe". 2019-08-01 08:16:14,510 fail2ban.utils [11727]: ERROR 3ef3cd40 - stderr: '' 2019-08-01 08:16:14,510 fail2ban.utils [11727]: ERROR 3ef3cd40 - stderr: 'Error ocurrió en la línea: 2' 2019-08-01 08:16:14,510 fail2ban.utils [11727]: ERROR 3ef3cd40 -- stderr: "Pruebe `iptables-restore -h' o 'iptables-restore --help' para obtener más información ". 2019-08-01 08:16:14,510 fail2ban.utils [11727]: ERROR 3ef3cd40 - stderr: '' 2019-08-01 08:16:14,510 fail2ban.utils [11727]: ERROR 3ef3cd40 - devuelto 13 2019- 08-01 08:16:14,510 fail2ban.actions [11727]: ERROR No se pudo ejecutar la acción ban jail 'apache-catchall' 'firewallcmd-ipset' info 'ActionInfo({'ip': '128.14.209.154', 'familia' : 'inet4', 'fid': en 0x3f24b200>, 'raw-ticket': en 0x3f24b7a0>})': Error al iniciar la acción Jail('apache-myadmin')/firewallcmd-ipset 2019-08-01 08:16: 14,510 fail2ban.actions [11727]: AVISO [apache-myadmin]
ipset sólo puede tener un tiempo de espera máximo de 2147483 verhttp://ipset.netfilter.org/ipset.man.html
timeout Todos los tipos de conjuntos admiten el parámetro de tiempo de espera opcional al crear un conjunto y agregar entradas. El valor del parámetro de tiempo de espera para el comando de creación significa el valor de tiempo de espera predeterminado (en segundos) para nuevas entradas. Si se crea un conjunto con soporte de tiempo de espera, entonces se puede usar la misma opción de tiempo de espera para especificar valores de tiempo de espera no predeterminados al agregar entradas. El valor de tiempo de espera cero significa que la entrada se agrega de forma permanente al conjunto. El valor de tiempo de espera de los elementos ya agregados se puede cambiar volviendo a agregar el elemento usando la opción -exist. El valor de tiempo de espera más grande posible es 2147483 (en segundos).
Dado que está utilizando ipset a través de firewalld, necesita reducir el tiempo de prohibición en el archivo jail.local para cada cárcel y el valor predeterminado a un máximo de 2147483 segundos, o lo que sea en días. ¡Y entonces serás bueno!
Respuesta2
Sé que esta pregunta tiene algunos años, pero me encontré con este problema con un servidor antiguo que ejecuta Centos7. Finalmente reduje el problema a un prefijo ipset incorrecto atrapado en /etc/firewalld/direct.xml:
... --match-set fail2ban-sshd
...
... en lugar de ...
...--match-set f2b-sshd
Arreglar este prefijo incorrecto en direct.xml resolvió el error.