pf 不阻止暴力尝试

pf 不阻止暴力尝试

我正在为我和我的朋友设置一个 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 地址的尝试。

我缺少什么?

答案1

该问题是文件中的错误/etc/pf.conf导致防火墙根本无法加载其配置(:network适用于特定接口)。

pf中给出了用于阻止暴力连接的示例OpenBSD PF 常见问题解答,它归结为规则(从最初的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>表中,从而阻止它。每个源地址还只允许五个连接。

另一种选择是使用SSH卫士。 OpenBSD 有一个 SSHGuard 端口,但它非常旧(2011 年发布 1.5)。我刚刚(几分钟前)提交了更新,希望在几天内提交。

相关内容