Брандмауэр PF: Как отключить всю фильтрацию на интерфейсе обратной связи, КРОМЕ конкретных правил переадресации портов?

1389
Drew

PF вопрос по OS X Yosemite 10.10.4:

Я знаю, что set skip on lo0отключает всю фильтрацию (nat и redirects) на lo0, но что если мне нужно сохранить правила переадресации порта httpd на этом интерфейсе при отключении всех других фильтров:

rdr pass on lo0 inet proto tcp from any to 127.0.0.1 port 80 -> 127.0.0.1 port 8080 rdr pass on lo0 inet proto tcp from any to 127.0.0.1 port 443 -> 127.0.0.1 port 8443 

Как бы я это сделал?

pf.conf:

### MACROS lan_int="en0" wifi_int="en2"  ###----- OPTIONS ------###  set block-policy drop set fingerprints "/etc/pf.os" set ruleset-optimization basic  ### disable all filtering on loopback interface set skip on lo0  ###--- NORMLIZATION ---###  ### Scrub incoming packets scrub in all no-df  ###----- QUEUEING -----###  ###--- TRANSLATION: ---### ### HTTPd Port Forwarding rdr pass on lo0 inet proto tcp from any to 127.0.0.1 port 80 -> 127.0.0.1 port 8080 rdr pass on lo0 inet proto tcp from any to 127.0.0.1 port 443 -> 127.0.0.1 port 8443  ###---- FILTERING -----###  ### Antispoof antispoof log quick for { lo0 $lan_int $wifi_int }  ### Block by default but open ports only for internal interface lo0 block in log block out log 

Пожалуйста помоги!!!

1

2 ответа на вопрос

2
Drew

finally I've found the answer:

use pass on lo0 all instead of set skip on lo0

0
poige

Тот, который помещен ближе к вершине (как может быть 1-е правило фильтрации), будет делать:

pass quick on lo0 no state