Я пытаюсь настроить некоторые пользовательские правила pf
брандмауэра в брандмауэре в macOS (в данном случае 10.11). Это традиционные сетевые правила, а не правила для конкретного приложения. У меня есть некоторые проблемы:
Синтаксис кажется достаточно простым. Но мои правила не работают должным образом.
table <VPN> { 192.16.10.1/24 } persist
table <badhosts> persist
block in quick from <badhosts> to any
block in
pass in quick from <VPN> to any flags S/SA keep state
pass in quick proto tcp from any to any port { 25 80 443 587 993 } flags S/SA keep state
pass in quick proto { esp icmp ah } from any to any keep state
pass in quick proto udp from any to any port { 500 1701 4500 } keep state
Идея здесь такова:
<VPN>
охватывает подключения, входящие из моей VPN, весь трафик VPN будет разрешен.<badhosts>
мой собственный список добавленных вручную IP-адресов, которые я хочу заблокировать.- Последние три правила должны позволять общему трафику подключаться к моему веб-серверу, почтовому серверу и устанавливать соединения с VPN
Изначально у меня были большие проблемы, но я немного покопался, пошел немного дальше и отредактировал этот пост.
Я получал синтаксическую ошибку в строке, block in quick from <badhosts> to any
когда она была внизу. Я переместил его выше всех pass
операторов, дал ему quick
ключевое слово, и больше не было синтаксической ошибки. Но почему это вызвало синтаксическую ошибку из-за того, что я внизу? Похоже, это должно было работать нормально там.
Что еще более важно, эта конфигурация, кажется, блокирует весь трафик, и она, по-видимому, разрешает общедоступному трафику доступ к сети и почтовому серверу. Но вдруг одна вещь, которую я не могу с этим сделать, это подключиться к VPN (то есть, на другой машине я не могу подключиться к этой машине, на которой работает VPN-сервер, потому что меня останавливает его брандмауэр).
Я надеюсь, что это единственная проблема, и как только я смогу подключиться к VPN, правило, касающееся трафика VPN, будет работать, как и ожидалось.
VPN имеет тип L2TP через IPSec. Я должен пропустить какой-то нечетный флаг или протокол, используемый для VPN, но я не знаю, что это такое.