Linux
fail2ban 沒有正確有效地修改 iptables?
我剛剛在 NetinVM(VM 內的一組虛擬機)中安裝了 fail2ban
到目前為止一切順利,我安裝在 ssh 位於 2222 上的特定機器(10.5.1.13)上(全部在 root 上)
從另一台機器(10.5.1.11)我重複 ssh 到第一個密碼錯誤的機器。
fail2ban 辨識“攻擊”並表示要禁止該ip
fail2ban> status sshd Status for the jail: sshd |- Filter | |- Currently failed: 1 | |- Total failed: 20 | `- File list: /var/log/auth.log `- Actions |- Currently banned: 2 |- Total banned: 2 `- Banned IP list: 10.5.1.11
當我查看 iptables 時:
# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination f2b-sshd tcp -- anywhere anywhere multiport dports ssh Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain f2b-sshd (1 references) target prot opt source destination REJECT all -- dmzb.example.net anywhere reject-with icmp-port-unreachable RETURN all -- anywhere anywhere
添加了此 REJECT 規則,並且 dmzb.emaple.net 的解析似乎是正確的:
$ ping dmzb.example.net PING dmzb.example.net (10.5.1.11) 56(84) bytes of data. 64 bytes from dmzb.example.net (10.5.1.11): icmp_seq=1 ttl=64 time=0.940 ms
並將添加到 iptables 中的域正確解析為“攻擊者”IP
儘管如此,我仍然可以從“攻擊者”機器上進行 ssh 試驗,獲取密碼請求,甚至輸入正確的密碼。
更新: 按照建議,嘗試過
$ iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination f2b-sshd tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 22 Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain f2b-sshd (1 references) target prot opt source destination REJECT all -- 10.5.1.11 0.0.0.0/0 reject-with icmp-port-unreachable RETURN all -- 0.0.0.0/0 0.0.0.0/0
ip 似乎是正確的,但仍然沒有應用禁令。
在您的規則集中,您將 fail2ban 檢查與埠 22 綁定,但在您編寫的描述中,您的 ssh 實際上偵聽埠 2222。要檢查它從
iptables-save -c
or開始iptables -L -n -v
。檢查對應規則的計數器。此外,tcpdump 在您的情況下也是非常有用的工具。