Я пытаюсь настроить Packet Filter на сервере 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 }
Адрес заблокирован. Я пытался инвертировать их, тот же результат.
Как я могу реализовать эту систему черного списка / белого списка?