поубирал из конфига кучу сетей чтоб не мешались.
еще момент: squid ругался на строку hierarchy_stoplist cgi-bin ?
я её закоментировал и добавил
always_direct allow all
sslproxy_cert_error allow all
sslproxy_flags DONT_VERIFY_PEER
не уверен что правильно.
ниже конфиг pf
\#-------------------------Интерфейсы-------------------------#
prov="re2"#Cisco
int_5="re0"
#Интерфейсы ПК
int_16="re1"
#-------------------------Адреса-------------------------#
srvprov="188.128.х.х"
srv_5="10.5.1.44"
#Адреса интерфейсов ПК
srv_16="192.168.2.6"
#-------------------------Подсети-------------------------#
#Обобщенные подсети для ПК и WiFi
lan_pk="10.0.0.0/8"
#OpenVPN
lan_vpn="10.2.0.0/24"
lan_vpnEv="12.0.1.0/24"
lan_vpnOHO="10.3.0.0/16"
#Cisco
lan_5="10.5.1.0/24"
#Подсети ПК
table <lan_r> {10.1.22.0/24, !10.1.22.10, !10.1.22.11, !10.1.22.20, !10.1.22.56, 10.1.23.0/24, 10.1.24.0/24, 10.1.39.0/24, 10.1.40.0/24}
table <lan_all> {10.1.22.0/24, 10.1.23.0/24, 10.1.24.0/24, 10.1.25.0/24, 10.1.26.0/24, 10.1.27.0/24, 10.1.28.0/24, 10.1.29.0/24, 10.1.30.0/24, 10.1.31.0/24, 10.1.32.0/24, 10.1.33.0/24, 10.1.34.0/24, 10.1.35.0/24, 10.1.36.0/24, 10.1.37.0/24, 10.1.38.0/24, 10.1.40.0/24, 10.1.41.0/24, 10.1.42.0/24, 10.1.43.0/24, 10.1.44.0/24, 10.1.45.0/24, 10.1.46.0/24, 10.1.47.0/24, 10.1.48.0/24, 10.1.49.0/24, 10.1.52.0/24, 10.1.53.0/24, 10.54.0.0/16, 10.20.30.0/24}
lan_16="192.168.2.0/24"
lan_21="10.0.0.0/16"
lan_22="10.1.22.0/24"
lan_23="10.1.23.0/24"
lan_24="10.1.24.0/24"
lan_39="10.1.39.0/24"
lan_40="10.1.40.0/24"
#-------------------------Порты-------------------------#
port_tcp="{21, 22, 25, 53, 80, 81, 88, 110, 123, 143, 443, 445, 465, 587, 993, 1051, 1540, 1541, 1560:1591, 3110, 3128, 3129, 3000, 3333, 3389, 3690, 5051, 5222, 5938, 7779, 8080, 8090, 9000, 13000, 13005}
port_udp="{22, 25, 53, 67, 68, 110, 123, 1184, 3000:3003, 3110, 7000, 7779, 8000:8150, 9000:9150}"
port_proxy="{80}"
port_ext="{1024, 1184, 3690}"
port_video="{4444, 4445}"
#-------------------------Адреса халявщиков)-------------------------#
#Открываем все порты
ip_allp="{192.168.2.22, 192.168.2.28, 10.1.22.10, 10.1.22.11, 10.1.22.49, 10.1.22.51, 10.1.22.55, 10.1.22.56, 10.1.22.61, 10.1.22.66, 10.1.22.70, 10.1.22.71, 10.1.22.75, 10.1.22.90, 10.1.22.101, 10.1.22.102}
#для тех кто не на прокси
ip_np="{10.1.32.2, 10.1.32.3, 10.1.45.10, 10.1.22.10, 10.1.22.11, 10.1.22.49, 10.1.22.51, 10.1.22.55, 10.1.22.56}
#-------------------------Дополнительные макросы-------------------------#
#Разрешенные типы icmp сообщений
allowed_icmp_types="{echoreq, unreach}"
#Cписок немаршрутизируемых адресов
non_route_nets_inet="{127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24, 0.0.0.0/8, 240.0.0.0/4}"
#-------------------------Сам файерволл-------------------------#
#DDOS secure)
set block-policy drop
#Не проверяем на локальной петле
set skip on lo0
#Изменяем время для состояния установленного tcp соединения, которое по-умолчанию чересчур большое (24часа).
set timeout {frag 10, tcp.established 3600}
#Собирать пакеты перед отправкой
scrub in all
#Разрешаем ходить в инет через нат
nat on $prov inet from $lan_16 to any -> $prov #2 диапазон с серверами
nat on $prov inet from $lan_21 to any -> $prov #ОИТ
nat on $prov inet from $lan_22 to any -> $prov #У
nat on $prov inet from $lan_23 to any -> $prov #Гя
nat on $prov inet from $lan_24 to any -> $prov #Г
nat on $prov inet from $lan_39 to any -> $prov #В
nat on $prov inet from $lan_40 to any -> $prov #Ф
#Перенаправляем на прокси
#rdr on $int_16 proto tcp from <lan_r> to any port $port_proxy -> $srv_16 port 3128
rdr on $int_16 proto tcp from $lan_39 to any port $port_proxy -> $srv_16 port 3128
rdr on $prov proto tcp from any to $srvprov port 3690 -> 10.0.0.255 port 3690
#-------------------------Правила фильтрации-------------------------#
# Блокируем всяких нехороших людей стандартный антиспуфинг средствами pf.
antispoof log quick for lo0
antispoof log quick for $int_16
antispoof log quick for $prov
#-------------------------Внешние настройки-------------------------#
#Блокируем все входящие на внешнем интерфейсе
block in on $prov
#Рубаем Мультикастовые рассылки (Данные, предназначенные для приемом группой машин. В отличие от unicast и broadcast)
block in on $prov from any to 240.0.0.0/4
#Блокируем приватные сети на внешний интерфейс
block drop in quick on $prov from $non_route_nets_inet to any
block drop out quick on $prov from any to $non_route_nets_inet
#Разрешаем пинги на внешний интерфейс
#pass in on $prov inet proto icmp all icmp-type $allowed_icmp_types
block in on $prov inet proto icmp all icmp-type $allowed_icmp_types
pass in on $prov inet proto icmp from {188.128.88.21, 87.226.226.242, 94.25.127.70} to $srvprov icmp-type $allowed_icmp_types
#Разрешаем открытые порты на внешнем интерфейсе
pass in on $prov inet proto {tcp, udp} from any to any port $port_ext flags S/SA keep state
pass in on $prov inet proto {tcp, udp} from any to any port $port_video flags S/SA keep state
#Разрешить все исходящие на внешнем интерфейсе
pass out on $prov keep state
#-------------------------VPN-------------------------#
#block on tun0 from {10.2.0.5, 10.2.0.6, 10.2.0.9, 10.2.0.10, 10.2.0.13, 10.2.0.14} to any
pass in log quick on tun0 from any to any keep state
pass out log quick on tun0 from any to any keep state
#-------------------------Внутренние настройки-------------------------#
# Блокируем все входящие на внутр. интерфейсе
block in on $int_16 all
#ICMP - Разрешаем пинговать
pass on $int_16 inet proto icmp all icmp-type $allowed_icmp_types
pass on $int_5 inet proto icmp all icmp-type $allowed_icmp_types
#Для ната
pass in on $int_5 inet proto {tcp, udp} from $lan_5 to any flags S/SA keep state
pass in on $int_16 inet proto {tcp, udp} from $lan_16 to any flags S/SA keep state
#!!
pass in on $int_16 inet proto {tcp, udp} from $lan_21 to any flags S/SA keep state
pass in on $int_16 inet proto {tcp, udp, gre} from $ip_allp to any keep state
#Temp squid
pass on $int_16 inet proto udp from any to any port 53 keep state
pass in on $int_16 inet proto tcp from $ip_np to any port 80 flags S/SA keep state
#pass in on $int_16 inet proto {tcp, udp} from <lan_all> to any port { 25, 53, 110, 443, 465, 995} flags S/SA keep state
pass in on $int_16 inet proto {tcp, udp} from <lan_all> to any port { 25, 53, 80, 110, 443, 465, 995} flags S/SA keep state
pass in on $int_16 inet proto {tcp, udp} from $lan_39 to any port { 25, 53, 110, 443, 465, 995} flags S/SA keep state
#Разрешаем открытые порты на внутр. интерфейсе
pass in on $int_16 inet proto tcp from $lan_pk to $srv_16 port $port_tcp flags S/SA keep state
pass in on $int_16 inet proto udp from $lan_pk to $srv_16 port $port_udp keep state
#NTop
pass in on $int_16 inet proto tcp from $lan_21 to $srv_16 port 3000 keep state
#-------------------------Маршрутизация между подсетями-------------------------#
#vpn
pass quick on {$int_16, tun0} proto {icmp, gre, tcp, udp} from $lan_vpn to $lan_16 keep state
pass quick on {$int_16, tun0} proto {icmp, gre, tcp, udp} from $lan_vpnEv to $lan_16 keep state
pass quick on {$int_16, tun0} proto {icmp, gre, tcp, udp} from $lan_vpnOHO to $lan_16 keep state
pass quick on {$int_16, tun0} proto {icmp, gre, tcp, udp} from $lan_16 to $lan_vpn keep state
pass quick on {$int_16, tun0} proto {icmp, gre, tcp, udp} from $lan_16 to $lan_vpnEv keep state
pass quick on {$int_16, tun0} proto {icmp, gre, tcp, udp} from $lan_16 to $lan_vpnOHO keep state
pass quick on {$int_16, tun0} proto {icmp, gre, tcp, udp} from $lan_vpn to $lan_21 keep state
pass quick on {$int_16, tun0} proto {icmp, gre, tcp, udp} from $lan_21 to $lan_vpn keep state
#lan 5
pass quick on $int_5 proto {icmp, gre, tcp, udp} from $lan_5 to $lan_5 keep state
pass out on $int_16 keep state
pass out on $int_5 keep state