
我在防火牆日誌檔案中重複收到以下錯誤訊息。
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 中這個不正確的前綴解決了我的錯誤。