URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 4065
[ Назад ]

Исходное сообщение
"pf+squid"

Отправлено radimon , 25-Ноя-08 05:37 
Имеется pf.conf

ext_if="rl0"
int_if="bfe0"

tcp_services = "{ ssh, pop3, smtp, domain }"
udp_services = "{ domain }"

scrub in all

nat on $ext_if from $int_if:network to any -> ($ext_if)

block all

pass proto tcp to any port $tcp_services keep state
pass proto udp to any port $udp_services keep state
pass on $ext_if inet proto icmp icmp-type {0, 3, 4, 8, 11, 12}
pass out on $ext_if proto {tcp, udp} all flags S/SA keep state

Внутри сети есть squid (не transparent). Как написать правило, которое будет пропускать трафик изнутри сети с порта 3128 и выпускать его наружу? Пробовал

ext_if="rl0"
int_if="bfe0"

tcp_services = "{ ssh, pop3, smtp, domain, www }"
udp_services = "{ domain }"

scrub in all

nat on $ext_if from $int_if:network to any -> ($ext_if)
rdr on $int_if proto tcp from any to any port 3128 -> 127.0.0.1

block all
block drop in quick log on $int_if proto tcp from $int_if:network to ! 192.168.0.1 port 80

pass on lo0
pass proto tcp to any port $tcp_services keep state
pass proto udp to any port $udp_services keep state
pass on $ext_if inet proto icmp icmp-type {0, 3, 4, 8, 11, 12}
pass out on $ext_if proto {tcp, udp} all flags S/SA keep state
Не получается...


Содержание

Сообщения в этом обсуждении
"pf+squid"
Отправлено reader , 25-Ноя-08 10:24 
>[оверквотинг удален]
>
>pass proto tcp to any port $tcp_services keep state
>pass proto udp to any port $udp_services keep state
>pass on $ext_if inet proto icmp icmp-type {0, 3, 4, 8, 11,
>12}
>pass out on $ext_if proto {tcp, udp} all flags S/SA keep state
>
>
>Внутри сети есть squid (не transparent). Как написать правило, которое будет пропускать
>трафик изнутри сети с порта 3128 и выпускать его наружу? Пробовал

с машины со squid инет работает? если squid не transparent, то у клиента должен быть прописан адрес и порт прокси.
>[оверквотинг удален]
>ext_if="rl0"
>int_if="bfe0"
>
>tcp_services = "{ ssh, pop3, smtp, domain, www }"
>udp_services = "{ domain }"
>
>scrub in all
>
>nat on $ext_if from $int_if:network to any -> ($ext_if)
>rdr on $int_if proto tcp from any to any port 3128 -> 127.0.0.1

это правило и в таком виде сработало бы если бы squid был на этой же машине и настроен как transparent
>[оверквотинг удален]
>! 192.168.0.1 port 80
>
>pass on lo0
>pass proto tcp to any port $tcp_services keep state
>pass proto udp to any port $udp_services keep state
>pass on $ext_if inet proto icmp icmp-type {0, 3, 4, 8, 11,
>12}
>pass out on $ext_if proto {tcp, udp} all flags S/SA keep state
>
>Не получается...


"pf+squid"
Отправлено radimon , 25-Ноя-08 11:09 
>[оверквотинг удален]
>>! 192.168.0.1 port 80
>>
>>pass on lo0
>>pass proto tcp to any port $tcp_services keep state
>>pass proto udp to any port $udp_services keep state
>>pass on $ext_if inet proto icmp icmp-type {0, 3, 4, 8, 11,
>>12}
>>pass out on $ext_if proto {tcp, udp} all flags S/SA keep state
>>
>>Не получается...

Squid и так на этой же машине. Может я недостаточно точно описал то, что мне нужно, но на машине с pf мне нужны те правила, которые уже работают, но вот прямой доступ через этот шлюз по 80 порту мне нужно закрыть, а разрешить ходить только через squid.


"pf+squid"
Отправлено reader , 25-Ноя-08 11:27 
>[оверквотинг удален]
>>>12}
>>>pass out on $ext_if proto {tcp, udp} all flags S/SA keep state
>>>
>>>Не получается...
>
>Squid и так на этой же машине. Может я недостаточно точно описал
>то, что мне нужно, но на машине с pf мне нужны
>те правила, которые уже работают, но вот прямой доступ через этот
>шлюз по 80 порту мне нужно закрыть, а разрешить ходить только
>через squid.

на внутреннем интерфейсе запретите то что идет на 80 порт любых адресов и разрешите то что идет на порт и адрес прокси