Я пытаюсь использовать pf
межсетевой экран на Macos Catalina 10.15.3, чтобы разрешить доступ www (80,443) для указанного c локального IP-адреса в моей домашней сети. Этот локальный IP-адрес будет запрашивать веб-страницы у экземпляра nginx. Если я отключу брандмауэр macos в настройках => Безопасность и конфиденциальность, тогда www is успешно и nginx отображаются. Однако я не могу получить запрос, когда включен брандмауэр.
После этого я попытался выяснить, как настроить брандмауэр pf
для пропуска запроса. Мой /etc/pf.conf в настоящее время выглядит следующим образом:
#
# com.apple anchor point
#
scrub-anchor "com.apple/*"
nat-anchor "com.apple/*"
rdr-anchor "com.apple/*"
dummynet-anchor "com.apple/*"
anchor "com.apple/*"
load anchor "com.apple" from "/etc/pf.anchors/com.apple"
#
# only allow www traffic on wifi interface from a specific LAN ip address
#
www_services = "{ http, https }"
pass quick inet proto tcp from <the LAN IP address> to any port $www_services keep state
#int_if = "en0"
#table <allowed> { <the LAN IP address> } persist
#block in quick from urpf-failed
#block return in quick on $int_if proto tcp from !<allowed> to $int_if port 80
Кто-нибудь может помочь?
Я включаю брандмауэр pf с помощью pfctl -E
и отключаю с помощью pfctl -X <token>
Интересно, что если я настрою nginx для прослушивания на другом порту, отличном от порта 80, а затем добавлю nginx в список разрешенных приложений в брандмауэре Security & Privacy, запрос будет разрешен через.
Однако я подозреваю, что это разрешено для всех IP-адресов в локальной сети, и все порты nginx прослушивает ?? Я пытаюсь настроить межсетевой экран фильтра пакетов (pf) так, чтобы IP-адрес и порт были ограничены. Может быть, порт 80 является root зарезервированными портами, следовательно, причина, по которой он был заблокирован ???
Как заставить брандмауэр pf пропустить только указанный c IP-адрес для запроса http для указанного * Порт 1028 *, например 8080?