Сообщения об ошибках в файле журнала firewalld. Параметр fail2ban-ssh не существует.

Сообщения об ошибках в файле журнала firewalld. Параметр fail2ban-ssh не существует.

В файле журнала 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.

Я искал тут и там, чтобы исправить эту ошибку, но безуспешно. Я использую Centos7 с firewalld и fail2ban.

Я не знаю, в чем именно проблема. Это связано с fail2ban или firewalld?

При запуске systemctl status firewalld -l отображаются следующие сообщения об ошибках:

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

У меня есть следующее содержимое jail.local для 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

Все остальные конфигурации соответствуют системным настройкам по умолчанию.

Я установил firewalld следующим образом:

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

Наконец, выполняем следующую команду:

# firewall-cmd --direct --get-all-rules

Я получаю следующие результаты:

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

Я ценю вашу помощь, так как я больше занимаюсь разработкой, чем серверами.

Мне действительно нужно исправить это как можно скорее. Это для моего производственного сервера.

Спасибо!

решение1

если бы вы проверили свой /var/log/fail2ban.log или где бы вы его ни разместили, вы бы, вероятно, увидели что-то вроде этого

2019-08-01 08:16:14,509 fail2ban.utils [11727]: #39-Лев. 3ef3cd40 -- exec: ipset create f2b-apache-myadmin hash:ip timeout 2160000 firewall-cmd --direct --add-rule ipv4 filter 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: Синтаксическая ошибка: '2160000' выходит за пределы диапазона 0-2147483" 2019-08-01 08:16:14,510 fail2ban.utils [11727]: ОШИБКА 3ef3cd40 -- stderr: "Ошибка: COMMAND_FAILED: '/usr/sbin/iptables-restore -w -n' не удалось: iptables-restore v1.8.2 (устаревшая версия): Набор f2b-apache-myadmin не существует." 2019-08-01 08:16:14,510 fail2ban.utils [11727]: ОШИБКА 3ef3cd40 -- stderr: '' 2019-08-01 08:16:14,510 fail2ban.utils [11727]: ОШИБКА 3ef3cd40 -- stderr: 'Ошибка произошла в строке: 2' 2019-08-01 08:16:14,510 fail2ban.utils [11727]: ОШИБКА 3ef3cd40 -- stderr: "Попробуйте `iptables-restore -h' или 'iptables-restore --help' для получения дополнительной информации." 2019-08-01 08:16:14,510 fail2ban.utils [11727]: ОШИБКА 3ef3cd40 -- stderr: '' 2019-08-01 08:16:14,510 fail2ban.utils [11727]: ОШИБКА 3ef3cd40 -- возвращено 13 2019-08-01 08:16:14,510 fail2ban.actions [11727]: ОШИБКА Не удалось выполнить действие блокировки 'apache-catchall' 'firewallcmd-ipset' info 'ActionInfo({'ip': '128.14.209.154', 'family': 'inet4', 'fid': at 0x3f24b200>, 'raw-ticket': at 0x3f24b7a0>})': Ошибка запуска действия Jail('apache-myadmin')/firewallcmd-ipset 2019-08-01 08:16:14,510 fail2ban.actions [11727]: УВЕДОМЛЕНИЕ [apache-myadmin]

ipset может иметь максимальный тайм-аут 2147483 см.http://ipset.netfilter.org/ipset.man.html

timeout Все типы наборов поддерживают необязательный параметр timeout при создании набора и добавлении записей. Значение параметра timeout для команды create означает значение timeout по умолчанию (в секундах) для новых записей. Если набор создан с поддержкой timeout, то тот же параметр timeout можно использовать для указания нестандартных значений timeout при добавлении записей. Нулевое значение timeout означает, что запись добавляется в набор навсегда. Значение timeout уже добавленных элементов можно изменить, повторно добавив элемент с помощью параметра -exist. Наибольшее возможное значение timeout составляет 2147483 (в секундах).

Поскольку вы используете ipset через firewalld, вам нужно уменьшить время бана в файле jail.local для каждой тюрьмы и установить значение по умолчанию максимум на 2147483 секунды или сколько там это в днях. И тогда все будет хорошо!

решение2

Я знаю, что этому вопросу уже несколько лет, но я только что столкнулся с этой проблемой со старым сервером под управлением Centos7. В конце концов я сузил проблему до неправильного префикса ipset, застрявшего в /etc/firewalld/direct.xml:

... --match-set fail2ban-sshd...

... вместо ...

...--match-set f2b-sshd

Исправление этого неверного префикса в direct.xml решило для меня эту ошибку.

Связанный контент