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

Исходное сообщение
"FreeBSD 9.0 & pf & squid & transparent proxy"

Отправлено tim , 19-Фев-12 21:40 
Здравствуйте, господа.
Тема древняя, пересмотрел что смог найти, убил вечер - сдался на милость, прошу помощи.

Стоял себе релиз 8.2+pf+squid_2.7+nat, работал. Но начались траблы с proftpd.
Пришлось проапгрейдиться до 9.0 RELEASE и этот самый прозрачный прокси работать перестал.

В настоящее время юзеры натятся и все, на прокси их завернуть не получается (если
прокси указан локально - идут на ура).

При пересборке мира и ядра все конфиги оставлял прежние.
Ядро собрано с поддержкой pf, squid - c '--enable-pf-transparent'.
Снес 2.7, поставил Squid Cache: Version 3.1.19 - нужного результата нет.

Конфиг pf, скажем, такой:

  ext_if="card_1"
  int_if="card_2"
  #
  int_net="ip_int_lan/24"

  rdr on $int_if inet proto tcp from any to any port www -> 127.0.0.1 port 3129

  nat on $ext_if from $int_net to any -> $ext_if

  pass in on $int_if inet proto tcp from any to 127.0.0.1 port 3129 keep state
  pass out on $ext_if inet proto tcp from any to any port www keep state

Если заремить строку nat - естественно, никто никуда не ходит, поэтому ремить приходится rdr.
Squid свои порты (3128 и 3129) слушает (и отвечает, как говорил выше, если указать его в броузере на хосте работает без замечаний).
Шлюз по умолчанию на хостах правильный (эта самая фря, на которой, собственно все и крутится, и ns, и squid, и pf, и nat...).
Ниже, попытка открыть с хоста пользователя ya.ru:

tcpdump -i int_if -ttt -e host host_ip

00:00:00.095487 host_mac (oui Unknown) > gateway_mac (oui Unknown), ethertype IPv4 (0x0800), length 62: host_ip.2563 > www.yandex.ru.http: Flags [S], seq 3766765490, win 65535, options [mss 1460,nop,nop,sackOK], length 0
00:00:00.000171 host_mac (oui Unknown) > gateway_mac (oui Unknown), ethertype IPv4 (0x0800), length 62: host_ip.2565 > www.yandex.ru.http: Flags [S], seq 2995275745, win 65535, options [mss 1460,nop,nop,sackOK], length 0
00:00:01.009826 host_mac (oui Unknown) > gateway_mac (oui Unknown), ethertype IPv4 (0x0800), length 62: host_ip > www.yandex.ru.http: Flags [S], seq 2300249142, win 65535, options [mss 1460,nop,nop,sackOK], length 0
^C

2 packets captured
65 packets received by filter
0 packets dropped by kernel


Нервы сдают. Два столба, и заблудился.
Если будет у кого время и желание помочь - очень буду признателен.
Спасибо.

С уважением, Тим.


Содержание

Сообщения в этом обсуждении
"FreeBSD 9.0 & pf & squid & transparent proxy"
Отправлено mr_gfd , 19-Фев-12 22:50 
сначала - nat, потом rdr

"FreeBSD 9.0 & pf & squid & transparent proxy"
Отправлено tim , 20-Фев-12 12:21 
> сначала - nat, потом rdr

Да по разному пробовал, менял местами - без результата.

Может еще какие мысли ?


"FreeBSD 9.0 & pf & squid & transparent proxy"
Отправлено mr_gfd , 20-Фев-12 13:08 
>> сначала - nat, потом rdr
> Да по разному пробовал, менял местами - без результата.
> Может еще какие мысли ?

pfctl -sn
pfctl -sr что говорят?


"FreeBSD 9.0 & pf & squid & transparent proxy"
Отправлено mr_gfd , 20-Фев-12 13:09 
rdr on $int_if proto { tcp } from $local_net to any port 80 -> 192.168.1.1 port 3128

table <natting>  persist file "/etc/pf_nat_table"
nat on $ext_if from <natting>  to any -> ($ext_if)

вот в таком конфиге работает на 9.0


"FreeBSD 9.0 & pf & squid & transparent proxy"
Отправлено tim , 20-Фев-12 14:04 
> rdr on $int_if proto { tcp } from $local_net to any port
> 80 -> 192.168.1.1 port 3128
> table <natting>  persist file "/etc/pf_nat_table"
> nat on $ext_if from <natting>  to any -> ($ext_if)
> вот в таком конфиге работает на 9.0

Спасибо что заинтересовались.
Вот до переезда на 9.0 работал вот так:

self_ip = "192.168.11.3"
table <pf_proxy> file "/etc/pf.proxy"

rdr on $int_if proto tcp from <pf_proxy> to {any, !self_ip} port www -> $self_ip port 3129

nat on $ext_if from $int_net to any -> $ext_if


А теперь никак... (


"FreeBSD 9.0 & pf & squid & transparent proxy"
Отправлено tim , 20-Фев-12 14:16 
>[оверквотинг удален]
>> nat on $ext_if from <natting>  to any -> ($ext_if)
>> вот в таком конфиге работает на 9.0
> Спасибо что заинтересовались.
> Вот до переезда на 9.0 работал вот так:
> self_ip = "192.168.11.3"
> table <pf_proxy> file "/etc/pf.proxy"
> rdr on $int_if proto tcp from <pf_proxy> to {any, !self_ip} port www
> -> $self_ip port 3129
> nat on $ext_if from $int_net to any -> $ext_if
> А теперь никак... (

Стоить разремить кого нибудь в указанной таблице (или полностью сеть), доступ у разремленых прекращается.


"FreeBSD 8.4 & pf & squid & transparent proxy"
Отправлено аватар , 15-Май-15 15:00 
У меня та же проблема, кто нить нашел решение?