Ssh

pf 不停止暴力嘗試

  • December 19, 2018

我正在為我和我的朋友設置一個 SFTP 伺服器,並且我試圖阻止暴力嘗試。

我已經閱讀了很多關於如何讓 pf 停止暴力攻擊的文章,但我沒有任何運氣。

我正在執行 OpenBSD 6.4 這是我目前的 /etc/pf.conf

#       $OpenBSD: pf.conf,v 1.55 2017/12/03 20:40:04 s then Exp $
#
# See pf.conf(5) and /etc/examples/pf.conf
set skip on lo
block return    # block stateless traffic
pass            # establish keep-state
# By default, do not permit remote connections to X11
block return in on ! lo0 proto tcp to port 6000:6010
# Port build user does not need network
block return out log proto {tcp udp} user _pbuild
ext_if="em0"
antispoof quick for ($ext_if) #No IP or GPS SPOOFING allowed here :)
table <bruteforce> persist
block quick from <bruteforce>
pass inet proto tcp to any:network port 22 \
       keep state (max-src-conn 10, max-src-conn-rate 5/5, \
        overload <bruteforce> flush global)
table <ssh_block> persist
block quick from <ssh_block> to any

當我檢查表 brute-force 和 ssh_block 時,它們不存在。所以在 ssh_block 我執行了命令

pfctl -t ssh_block -T add 218.92.1.138
1 table created.
1/1 addresses added.
pfctl -t ssh_block -T show
218.92.1.138

但是,我的 /var/log/authlog 仍然充滿了來自該 IP 地址的嘗試。

我錯過了什麼?

問題是/etc/pf.conf文件中的錯誤導致防火牆根本無法載入其配置(:network適用於特定介面)。

OpenBSD PF FAQpf中給出了一個用於阻止暴力連接的範例,它歸結為規則(從最初的範例修改為我正在使用的東西):www``ssh

table <bruteforce> persist
block in quick from <bruteforce>

pass in on egress proto tcp to any port ssh flags S/SA keep state \
       (max-src-conn 5, max-src-conn-rate 5/30, \
       overload <bruteforce> flush global)

這會將任何每 30 秒連接超過 5 次的主機放入<bruteforce>表中,這將阻止它。它還只允許每個源地址五個連接。

另一種選擇是使用SSHGuard。OpenBSD 有一個 SSHGuard 埠,但它很舊(2011 年發布 1.5)。我剛剛(幾分鐘前)送出了一個更新,希望在幾天內送出。

引用自:https://unix.stackexchange.com/questions/489952