LINUX.ORG.RU
ФорумAdmin

dns и прозрачный squid


0

0

Здравствуйте!

Настраиваю squid слушать 192.168.2.200:3128. В броузере прописываю настройки LAN использовать прокси сервер 192.168.2.200:3128. Всё работает идеально. Настраваю прозрачный squid как описано http://www.opennet.ru/base/net/transparent_proxy.txt.html добавлением в IPtables строчек

$iptables -t nat -A PREROUTING -s 192.168.2.0/24 -d ! 192.168.2.200 -p tcp -j REDIRECT --to-port 3128

$iptables -t nat -A PREROUTING -s 192.168.2.0/24 -d ! 192.168.2.200 -p udp -j REDIRECT --to-port 3128

Теперь если в браузере обратиться к сайте через прямой ip то всё открывается нормально, но вот если написать http://сайт.ru говорит что не могу найти страницу. Опции dns_nameserver закоммментирована. resolve.conf настроен номана так как с сервера всё работает нормально.

Не подскажите в чём проблема могет быть?


> Теперь если в браузере обратиться к сайте через прямой ip то всё
> открывается нормально, но вот если написать http://сайт.ru говорит что
> не могу найти страницу. Опции dns_nameserver закоммментирована.
> resolve.conf настроен номана так как с сервера всё работает нормально.
>
> Не подскажите в чём проблема могет быть?

У меня вот так сделано:

$IPTABLES -A FORWARD -i $EXTIF -o $INTIFA -m state --state
ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $INTIFA -o $EXTIF -j ACCEPT
$IPTABLES -A FORWARD -j LOG

$IPTABLES -t nat -A PREROUTING -s 192.168.1.0/16 -d ! 192.168.1.2 -p tcp
-m multiport --dport 80,81,82,83,88,8000,8001,8002,8080,8081 \
-j REDIRECT --to-port 3128
$IPTABLES -t nat -A PREROUTING -s 192.168.1.0/16 -d ! 192.168.1.2 -p udp
-m multiport --dport 80,81,82,83,88,8000,8001,8002,8080,8081 \
-j REDIRECT --to-port 3128
$IPTABLES -t nat -A PREROUTING -s 192.168.1.0/16 -d ! 192.168.1.2 -p tcp
-m multiport --dport 8082,8083,8091,8100,8101,8102,8103,8080,8888,777 \
-j REDIRECT --to-port 3128
$IPTABLES -t nat -A PREROUTING -s 192.168.1.0/16 -d ! 192.168.1.2 -p udp
-m multiport --dport 8082,8083,8091,8100,8101,8102,8103,8080,8888,777 \
-j REDIRECT --to-port 3128

192.168.1.2 - сервер.

И все работает. Хотя криво :((

SteelKey
()
Ответ на: комментарий от Deleted

Перенаправлять их надо это точно.

Halyva
() автор топика
Ответ на: комментарий от SteelKey

Блин в примере то я видел что так работает. Посмотри куда у тебя летит пакет если он из 192.168.1.0/16 -p udp направляется на -dport 53

Halyva
() автор топика
Ответ на: комментарий от Halyva

On 22 Mar 2005 22:51:18 +0300, Halyva <Halyva@linux.org.ru> wrote:

> Блин в примере то я видел что так работает. Посмотри куда у тебя летит
> пакет если он из 192.168.1.0/16 -p udp направляется на -dport 53

А зачем вообще пускать пакеты для порта 53 через proxy? Зачем??

SteelKey
()

Автору треда: проблема в том, что когда в browser-е proxy указан явно, browser не заботится об определении IP адресов по имени сайта (т.е. когда обращаешься на www.rambler.ru browser не определяет ip рамблера), в этом он полагается на proxy. Т.к. на сервере "resolve.conf настроен номана", то squid может определить адрес. Когда же squid работает в прозрачном режиме browser не знает о его существовании и думамет, что он общается напрямую с web-сервером, а для этого он должен знать ip-адрес этого web-сервера.
Выход такой: либо прописать на всех клиентах DNS провайдера и открыть к нему доступ на шлюзе, либо на шлюзе (или еще где) поднять свой собственный DNS сервер, разрешить в нем рекурсию для клиентов и прописать его на клиентах. Все будет работать.

> Перенаправлять их надо это точно.
Вызывающе неверная информация ! Сделайте "netstat -nl|grep 3128" (под root-ом) и посмотрите слушает ли кто-нибудь порт 3128 с протоколом udp. squid слушает ТОЛЬКО tcp !

spirit ★★★★★
()

Так значит у тебя прокси не прозрачный прозрачный прокси как раз и ловит хеадер http://fa.fa.fa и клиенту в таком случае знать про днс необязательно

найди статью на опеннет как правильно настроить прозрачный прокси !

sova ★★
()
Ответ на: комментарий от sova

> и клиенту в таком случае знать про днс необязательно
Не верно ! Для того чтоб squid поймал этот header, клиент должен его послать, а для того чтоб клиент послал, он (клиент) должен знать куда слать (он ведь не знает, что работает через proxy (!!!), он думает, что работает с web-сервером напрямую). А знать он будет только тогда, когда сможет определить IP адрес web-сервера, поэтому использование DNS для клиентов в этом случае НЕОБХОДИМО !

spirit ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.