Linux

fail2ban 沒有正確有效地修改 iptables?

  • April 21, 2019

我剛剛在 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 -cor開始iptables -L -n -v。檢查對應規則的計數器。此外,tcpdump 在您的情況下也是非常有用的工具。

引用自:https://serverfault.com/questions/963923