使用白名单和黑名单配置数据包过滤器

使用白名单和黑名单配置数据包过滤器

我正在尝试在 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

相关内容