我正在尝试在 FreeBSD 服务器上配置数据包过滤器,其中包含要阻止的地址/网络黑名单和不能被阻止(黑名单)的受信任用户的白名单。
这是我的第一次尝试:
table <white-list> persist file "/etc/pf/white-list"
table <static-black-list> persist file "/etc/pf/static-black-list"
table <dynamic-black-list> persist file "/etc/pf/dynamic-black-list"
block in all
block out all
block in log quick from { <static-black-list> <dynamic-black-list> !<white-list> }
# other rules...
(注意:有两个黑名单,静态黑名单包含亚洲网络(尤其是中国网络)和被 Fail2Ban 或 PF 本身禁止的动态地址。)
问题是,如果白名单中的 IP 地址也被列入黑名单,那么它会被阻止,而这并不是应该的。
这是一个更简单的例子:
block in quick from { 192.168.0.50 !192.168.0.50 }
该地址已被屏蔽。我尝试将其反转,结果相同。
我如何实现这个黑名单/白名单系统?
答案1
pass in quick from { <white-list> }
在阻止规则前添加。
或者
block in from { <black-list> }
pass in quick from { <white-list> } to any port 22