#интерфейсы
int_if="vr0"
#modem_if="rl0"
ext_if="rl0"
#ипы сети
admin_comp="192.168.112.6"
sergaeva_comp="192.168.112.21"
marina_comp="192.168.112.9"
lena_comp="192.168.112.1"
server_comp="192.168.112.254"
yurist_comp="192.168.112.4"
serv_port="3389"
icmp_types="echoreq"
#таблица люедй вне прокси
table <nonproxy> const { $admin_comp, $server_comp, $sergaeva_comp }
#политика по-умолчанию
set block-policy drop
#игнорируем петлевой интерфейс
set skip on lo0
#нормализуем вх/исх трафик
#scrub in all fragment reassemble
# Нормализация и т.д.
set block-policy return
set loginterface $ext_if
#scrub in all max-mss 1436
scrub in all no-df
scrub out all random-id max-mss 1360
#натим
nat pass on $ext_if inet proto tcp from <nonproxy> to any -> ($ext_if)
#перекидываем порт со внешки на сервак
rdr on $ext_if inet proto tcp to $ext_if port $serv_port -> $server_comp port $serv_port
#на проксю
#rdr inet proto tcp from <nonproxy> to any port www -> 192.168.112.251 port 3128
#pass out on $ext_if inet proto tcp from any to any port www keep state
#блочим все (политика по-умолчанию)
block all
# Открываем входящие соединения с уже установленным флагом
pass out on { $ext_if $int_if } proto { tcp udp icmp } all modulate state
#разрешим входящие с инета, чтобы перекинуть их
pass in on $ext_if proto tcp from any to ($ext_if) port $serv_port flags S/SA keep state
# SSH c инета и локалки
pass in on $ext_if proto tcp from any to ($ext_if) port ssh flags S/SA keep state
pass in quick on $int_if proto tcp from any to $int_if port ssh flags S/SA keep state
# DNS
pass in on $int_if inet proto udp from $int_if:network to $int_if port 53 keep state
# Пущай пингуют
pass in inet proto icmp all icmp-type $icmp_types keep state
pass in on $int_if inet proto tcp from <nonproxy> to any keep state