OpenBSD pf Egress Filtering

0

Я пытаюсь создать простой файл pf.conf, который включает NAT, позволяющий трафику выходить из сети со всех систем на выбранной серии портов. В моей базовой конфигурации у меня есть внутренний сервер, на котором размещены HTTP / HTTPS, которые будут доступны извне через IP-адрес с NAT. Изнутри я хотел бы, чтобы клиенты выходили из сети только по DNS / HTTP / HTTPS.

int_if="eth0"
ext_if="eth1"
localnet=$int_if:network

nat on $ext_if from $localnet to any -> ($ext_if)
comp1="172.16.0.1"
rdr on $ext_if proto tcp from any -> $comp1 port http
rdr on $ext_if proto tcp from any -> $comp1 port https

client_out_tcp = "{ http, https}"
client_out_udp = "{ 53 }"
pass inet proto tcp from $localnet to port $client_out_tcp
pass inet proto tcp from $localnet to port $client_out_udp

В этой конфигурации мой сервер подключен к соответствующим портам, как я спроектировал, однако мои клиенты всегда могут покинуть сеть, несмотря ни на что.

Blackninja543
источник

Ответы:

0

Действие по умолчанию - передать пакет, если не найдено ни одного правила.

Если вы этого не хотите, первое правило фильтрации пакетов должно быть

block all

Если вы хотите регулировать исходящий трафик, вы должны указать его следующим образом:

# Block by default. (pass rules should follow later).
block out log on $ext_if all label "outblock"
# What to pass
client_out_tcp = "{ http, https}"
client_out_udp = "{ 53 }"
pass out inet proto tcp from $localnet to port $client_out_tcp
pass out inet proto tcp from $localnet to port $client_out_udp
Ролан Смит
источник