Страница 1 из 1

Помоги, пожалуйста, настроить прозрачный squid

Добавлено: 2009-03-05 18:30:33
karl123
стоит squid 2.6
в конфиге есть
http_port 3128 transparent
стоит
net.ipv4.ip_forward = 1 в sysctl
в файрволе есть
-A PREROUTING -i eth2 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
-A PREROUTING -i eth2 -p udp -m udp --dport 80 -j REDIRECT --to-ports 3128
-A FORWARD -j ACCEPT

прозрачный прокси не работает, если на на машинах прописывать в ie eth2 порт 3128 - работает, если прописывать eth2 порт 80 - то же работает !!!

Re: Помоги, пожалуйста, настроить прозрачный squid

Добавлено: 2009-03-05 18:39:18
zg
karl123 писал(а):прозрачный прокси не работает
редирект не работает

Re: Помоги, пожалуйста, настроить прозрачный squid

Добавлено: 2009-03-05 18:44:44
karl123
я так понимаю, что ридерект как раз работает, если я ставлю в ие настройках 192.168.3.10 порт 80 и интернет появляется.
если ен работает, то почему ?

Re: Помоги, пожалуйста, настроить прозрачный squid

Добавлено: 2009-03-05 18:58:01
zg
karl123 писал(а):если я ставлю в ие настройках 192.168.3.10 порт 80
это непрозрачный прокси, прозрачный на то и прозрачный, что его не надо прописывать
karl123 писал(а):если ен работает, то почему ?
ты как и какой фаервол используешь и настраиваешь?

Re: Помоги, пожалуйста, настроить прозрачный squid

Добавлено: 2009-03-05 20:17:29
manefesto
не видишь чтоли iptables

Re: Помоги, пожалуйста, настроить прозрачный squid

Добавлено: 2009-03-05 20:23:43
zg
manefesto писал(а):не видишь чтоли iptables
-))) пока ещё это никто не доказал, если бы ошибок не было, всё бы работало.

Re: Помоги, пожалуйста, настроить прозрачный squid

Добавлено: 2009-03-05 22:37:40
karl123
eth2 eto 192.168.3.10
внутренняя сеть 192.168.3.0/24

/sbin/iptables-save

Код: Выделить всё

# Generated by iptables-save v1.3.5 on Thu Mar  5 22:27:29 2009*nat
:PREROUTING ACCEPT [12166:1079979]
:POSTROUTING ACCEPT [8610:515380]
:OUTPUT ACCEPT [8235:487019]
-A PREROUTING -i eth2 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
-A PREROUTING -i eth2 -p udp -m udp --dport 80 -j REDIRECT --to-ports 3128
COMMIT
# Completed on Thu Mar  5 22:27:29 2009
# Generated by iptables-save v1.3.5 on Thu Mar  5 22:27:29 2009*filter
:INPUT ACCEPT [6:312]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [14177:3123772]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/255.0.0.0 -j DROP
-A INPUT -s 127.0.0.0/255.0.0.0 -j DROP
-A INPUT -s 10.0.0.0/255.0.0.0 -j DROP
-A INPUT -s 172.16.0.0/255.240.0.0 -j DROP
-A INPUT -s 169.254.0.0/255.255.0.0 -j DROP
-A INPUT -s 224.0.0.0/240.0.0.0 -j DROP
-A INPUT -s 240.0.0.0/240.0.0.0 -j DROP
-A INPUT -p icmp -m icmp --icmp-type 3/4 -j DROP
-A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3128 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -j DROP
-A FORWARD -j ACCEPT
-A OUTPUT -j ACCEPT
COMMIT
# Completed on Thu Mar  5 22:27:29 200

Re: Помоги, пожалуйста, настроить прозрачный squid

Добавлено: 2009-03-05 23:22:02
koffu
iptables -A INPUT -p tcp -m tcp --dport 3128 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

/etc/squid/squid.conf
http_port 3128 transparent

в принципе это все, что нужно для транспарентного прокси, если он-же default gateway, если линух-роутер, а прокси не на нем, то нужно делать через
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination <SQUID IP>:<PORT>

Re: Помоги, пожалуйста, настроить прозрачный squid

Добавлено: 2009-03-06 11:47:02
karl123
да все так и делаю, если ставлю на клиентских машинах в ие ip порт 80, то все работает
и здесь

Код: Выделить всё

# Generated by iptables-save v1.3.5 on Fri Mar  6 11:46:14 2009
*nat
:PREROUTING ACCEPT [19007:1623358]
:POSTROUTING ACCEPT [13028:793734]
:OUTPUT ACCEPT [11902:707324]
[9:432] -A PREROUTING -i eth2 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
COMMIT
счетчик идет, если все убираю, то не работает и счетчик не идет, ерунда какая-то

Re: Помоги, пожалуйста, настроить прозрачный squid

Добавлено: 2009-03-06 14:10:35
manefesto
вопрос такой:
У тебя шлюз где стоит сквид является шлюзом по умолчанию для виндовых машин ?

Re: Помоги, пожалуйста, настроить прозрачный squid

Добавлено: 2009-03-06 15:08:10
Гость
да конечно

Re: Помоги, пожалуйста, настроить прозрачный squid

Добавлено: 2009-03-07 11:10:56
koffu
Если можно, приведи схему адресации 1-2х клиентов и твоего шлюза. В /var/log/squid/cache.log сквид должен писать при старте "Accepting transparently proxied HTTP connections at 0.0.0.0, port 3128". Если работает прописыванием прокси, это говорит лишь о работе правила с редиректом. Редирект порта должен стоять на шлюзе по-умолчанию для твоей подсети. Нужно предусмотреть еще один момент: где стоит прокси. Если у тебя схема с DMZ и все ходит через один роутер - достаточно редиректа на GW, а если схема - простая сеть, где прокси стоит в одной подсети с клиентами, одного редиректа будет недостаточно. Клиент посылает запрос на шлюз, а ему отвечает "левый" хост, обычно такие пакеты система просто сбрасывает. Нужно добавить в IPTABLES на сквиде правило, которое будет "выдавать" его клиенту за шлюз, что-то вроде:
iptables -t nat -A POSTROUTING -o eth0 -p tcp --sport 80 -d 192.168.0.0/24 -j SNAT --to-source 192.168.0.1

итог:
на шлюзе - редирект DNAT,
на сквиде - редирект REDIRECT.
на сквиде - редирект SNAT.
GW:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination <squid ip>
squid:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTROUTING -o eth0 -p tcp --sport 80 -d 192.168.0.0/24 -j SNAT --to-source 192.168.0.1