firewalld 日誌檔案中的錯誤訊息 Setfail2ban-ssh 不存在

firewalld 日誌檔案中的錯誤訊息 Setfail2ban-ssh 不存在

我在防火牆日誌檔案中重複收到以下錯誤訊息。

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.

我到處搜尋來修復這個錯誤,但沒有成功。我使用帶有firewalld和fail2ban的Centos7。

我不知道具體問題出在哪裡。這與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

我有fail2ban的jail.local的以下內容:

[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 failed2ban.utils [11727]:#39-Lev。 3ef3cd40 -- 執行:ipset 建立f2b-apache-myadmin 雜湊:ip 逾時2160000 防火牆-cmd --direct --add-rule ipv4 過濾器INPUT_direct 0 -p tcp -m 多埠--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 failure2ban.utils [11727]: 錯誤3ef33cd40 stder7: .2:語法錯誤:'2160000'超出範圍0-2147483" 2019-08-01 08:16:14,510 failure2ban.utils [11727]: ERROR 3efLED3cd 40 -- stderr: "錯誤:COM/_FAIs/FAs/FAs -復原 -w -n' 失敗:iptables-restore v1.8.2(舊版):設定 f2b-apache-myadmin 不存在。 2019-08-01 08:16:14,510fail2ban.utils [11727]:錯誤3ef3cd40 - stderr:''2019-08-01 08:16:14,510fail2ban.utils [11727]:錯誤發生率行:2'2019-08-01 08:16:14,510 failure2ban.utils [11727]:錯誤3ef3cd40 -- stderr:「嘗試'iptables-restore -h'或'iptables-restore --help'以獲取更多資訊」。 2019-08-01 08:16:14,510fail2ban.utils [11727]:錯誤3ef3cd40-stderr:''2019-08-01 08:16:14,510fail2ban.utils[11727]:錯誤回傳01 08:16:14,510fail2ban.actions [11727]:錯誤無法執行禁止監獄'apache-catchall'操作'firewallcmd-ipset'信息'ActionInfo({'ip':'128.14.209.154','family' : 'inet4 ', 'fid': 在0x3f24b200>, 'raw-ticket': 在0x3f24b7a0>})': 啟動操作Jail('apache-myadmin')/firewallcmd-ipset 時出錯2019-08-01 08:16: 14,510 fail .actions [11727]:注意[apache-myadmin]

ipset 的最大超時時間為 2147483,請參閱http://ipset.netfilter.org/ipset.man.html

逾時 在建立集合和新增項目時,所有集合類型都支援可選的逾時參數。 create 指令的逾時參數值表示新條目的預設逾時值(以秒為單位)。如果建立的集支援逾時,則在新增條目時可以使用相同的逾時選項來指定非預設逾時值。零超時值意味著條目被永久添加到集合中。可以透過使用 -exist 選項重新新增元素來變更已新增元素的逾時值。最大可能的超時值為 2147483(以秒為單位)。

由於您透過firewalld使用ipset,因此您需要縮短每個監獄的jail.local檔案中的禁止時間,並將預設值設為最大2147483秒,或以天為單位的任何時間。然後你就會很好!

答案2

我知道這個問題已經有幾年了,但我剛剛在運行 Centos7 的舊伺服器上遇到了這個問題。最後我將問題範圍縮小到 /etc/firewalld/direct.xml 中卡住的不正確的 ipset 前綴:

--match-set fail2ban-sshd……

... 代替 ...

--match-set f2b-sshd

修復 direct.xml 中這個不正確的前綴解決了我的錯誤。

相關內容