Не могу заставить всех юзеров с сети ходить в инет исключительно через squid. Сам прокси нормально работает, авторизация NTLM, через него можно прекрасно работать, но можно в браузере отключить прокси о все равно ходить в инет. ext_if_a----| |------squid 2.5 FreeBSD
|-----OpenBSD--int_if--switch-|
ext_if_b----| |------ LAN
Этот конфиг я упер отсюда http://www.openbsd.ru/files/etc/pf-dual.conf и чуток его поправил, наверное, если бы я написал его с нуля, то проблем бы было меньше.
$RuOBSD: pf-dual.conf,v 1.9 200604/22 17:25:57 andrey Exp $
#
# Пример настройки PF для маршрутизатора с двумя внешними каналами
# с трансляцией адресов и переадресацией некоторых сервисов во внутреннюю сеть.
#
# В данном примере также настраивается симметричная маршрутизация для
# правильного возврата пакетов в канал, с которого было инициировано
# соединение, независимо от настройки default route.
#
# WAN_1 WAN_2 LAN
# | | +------------+--------
# | | | |
# +-xl0----xl1----ep0-+ +--------------+
# | | |192.168.6.0/24|
# +-------------------+ +--------------+
# Внешние и внутренний интерфейсы.
#
ext_if_a = "xl0"
ext_if_b = "xl1"
int_if = "ep0"
# Шлюзы для каналов.
#
ext_gw_a = "137.13.241.59"
ext_gw_b = "10.116.47.2"
#Internal Servers
proxy = "192.168.6.5"
vpn = "192.168.6.6"
vpn_port = "4711"
mail = "192.168.6.8"
web = "192.168.6.9"
jabber = "192.168.6.7"
# TCP/UDP сервисы, обслуживаемые маршрутизатором.
#
tcp_svc = "ftp ssh smtp domain www https imaps"
udp_svc = "domain 4711"
# Таблицы черного и белого списков для spamd.
#
#table <spamd> persist
#table <spamd-white> persist
# Выполнить нормализацию всех пакетов.
#
scrub in
# Транслировать внутренние адреса в (основной) адрес внешнего интерфейса.
#
nat on $ext_if_a from !(self) -> ($ext_if_a:0)
nat on $ext_if_b from !(self) -> ($ext_if_b:0)
nat-anchor "ftp-proxy/*"
rdr-anchor "ftp-proxy/*"
# Пропустить FTP через transparent FTP proxy.
#
rdr on $int_if proto tcp to !(self) port ftp -> 127.0.0.1 port 8021
# Перенаправить адреса из черного списка в spamd.
#
#rdr on $ext_if_a proto tcp from <spamd> to port smtp tag EXT_IF_A \
# -> 127.0.0.1 port spamd
#rdr on $ext_if_b proto tcp from <spamd> to port smtp tag EXT_IF_B \
# -> 127.0.0.1 port spamd
# Перенаправить адреса, не входящие в белый список в spamd (используется
# в режиме greylist).
#
#rdr on $ext_if_a proto tcp from !<spamd-white> to port smtp tag EXT_IF_A \
# -> 127.0.0.1 port spamd
#rdr on $ext_if_b proto tcp from !<spamd-white> to port smtp tag EXT_IF_B \
# -> 127.0.0.1 port spamd
#Redirect to proxy
rdr on $int_if proto tcp from $int_if:network to $ext_if_a port 80 -> \
$proxy port 3128
rdr on $int_if proto tcp from $int_if:network to $ext_if_b port 80 -> \
$proxy port 3128
#Redirect to VPN
rdr pass log on $ext_if_a proto udp from ($ext_if_a:network) to port $vpn_port \
-> $vpn
rdr pass log on $ext_if_b proto udp from ($ext_if_b:network) to port $vpn_port \
-> $vpn
rdr on $ext_if_a proto udp to port $vpn_port tag EXT_IF_A -> $vpn
rdr on $ext_if_b proto udp to port $vpn_port tag EXT_IF_B -> $vpn
# Защита от IP spoofing.
#
pass quick on { lo $int_if }
antispoof quick for { lo $int_if }
# По умолчанию блокировать входящий трафик на внешних интерфейсах.
# Для TCP соединений возвращать RST.
#
block in on { $ext_if_a $ext_if_b }
block return-rst in on { $ext_if_a $ext_if_b } proto tcp
# Направить исходящие пакеты в канал, соответствующий адресу источника.
#
pass out route-to ($ext_if_a $ext_gw_a) from ($ext_if_a) to !(self:network) \
keep state
pass out route-to ($ext_if_b $ext_gw_b) from ($ext_if_b) to !(self:network) \
keep state
# Установить маршрут для ответа на входящие пакеты для переадресованных
# TCP сервисов.
#
pass in reply-to ($ext_if_a $ext_gw_a) proto tcp flags S/SA tagged EXT_IF_A \
keep state
pass in reply-to ($ext_if_b $ext_gw_b) proto tcp flags S/SA tagged EXT_IF_B \
keep state
anchor "ftp-proxy/*"
# Разрешить входящие ICMP ping пакеты, обслуживаемые UDP и TCP сервисы.
#
pass in on $ext_if_a reply-to ($ext_if_a $ext_gw_a) inet proto icmp \
icmp-type echoreq code 0 keep state
pass in on $ext_if_a inet proto icmp from ($ext_if_a:network) \
icmp-type echoreq code 0 keep state
pass in on $ext_if_a reply-to ($ext_if_a $ext_gw_a) proto udp \
to port { $udp_svc } keep state
pass in on $ext_if_a proto udp from ($ext_if_a:network) to port { $udp_svc } \
keep state
pass in on $ext_if_a reply-to ($ext_if_a $ext_gw_a) proto tcp \
to port { $tcp_svc } flags S/SA keep state
pass in on $ext_if_a proto tcp from ($ext_if_a:network) to port { $tcp_svc } \
flags S/SA keep state
pass in on $ext_if_b reply-to ($ext_if_b $ext_gw_b) inet proto icmp \
icmp-type echoreq code 0 keep state
pass in on $ext_if_b inet proto icmp from ($ext_if_b:network) \
icmp-type echoreq code 0 keep state
pass in on $ext_if_b reply-to ($ext_if_b $ext_gw_b) proto udp \
to port { $udp_svc } keep state
pass in on $ext_if_b proto udp from ($ext_if_b:network) to port { $udp_svc } \
keep state
pass in on $ext_if_b reply-to ($ext_if_b $ext_gw_b) proto tcp \
to port { $tcp_svc } flags S/SA keep state
pass in on $ext_if_b proto tcp from ($ext_if_b:network) to port { $tcp_svc } \
flags S/SA keep state
# Разрешить входящие TCP соединения для FTP proxy.
#
pass in on $ext_if_a reply-to ($ext_if_a $ext_gw_a) proto tcp \
to port > 49151 flags S/SA user proxy keep state
pass in on $ext_if_a proto tcp from ($ext_if_a:network) to port > 49151 \
flags S/SA user proxy keep state
pass in on $ext_if_b reply-to ($ext_if_b $ext_gw_b) proto tcp \
to port > 49151 flags S/SA user proxy keep state
pass in on $ext_if_b proto tcp from ($ext_if_b:network) to port > 49151 \
flags S/SA user proxy keep state
Internet:
Destination Gateway Flags Refs Use Mtu Interface
default 137.13.241.57 UGS 0 1225 - xl0
10.116.47.0/30 link#2 UC 1 0 - xl1
10.116.47.2 UHLc 0 0 - lo0
127/8 127.0.0.1 UGRS 0 0 33224 lo0
127.0.0.1 127.0.0.1 UH 2 83 33224 lo0
192.168.6/24 link#3 UC 13 0 - ep0
192.168.6.1 UHLc 1 824 - ep0
192.168.6.5 UHLc 0 1291 - ep0
192.168.6.7 UHLc 0 5 - ep0
192.168.6.10 UHLc 3 40 - ep0
192.168.6.80 UHLc 0 91 - ep0
192.168.6.123 UHLc 0 2 - ep0
192.168.6.129 UHLc 0 10 - ep0
192.168.6.139 UHLc 0 4 - ep0
192.168.6.142 UHLc 0 4 - ep0
192.168.6.153 UHLc 0 7 - ep0
192.168.6.161 UHLc 0 4 - ep0
192.168.6.166 UHLc 0 4 - ep0
192.168.6.168 UHLc 0 4 - ep0
137.13.241.59/30 link#1 UC 1 0 - xl0
137.13.241.57 UHLc 1 0 - xl0
224/4 127.0.0.1 URS 0 0 33224 lo0