Войти

Показать полную графическую версию : Как завернуть траффик...


zelo
16-11-2006, 10:37
Есть локалка выведенная в инет через NAT, на шлюзе стоит кэширующий SQUID. Не охота перенастраивать всех клиентов на использование PROXY ибо их великое множество. Можно ли используя IPTABLES завернуть весь трафик исходящий на порт 80 на SQUID?
...заранее сапиБо.

[mzd]
16-11-2006, 10:51
Учитесь пользоваться поиском Google (http://www.google.com/search?hl=ru&hs=M3v&client=firefox-a&rls=org.mozilla:ru:official&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=iptables+%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%B0%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B 5+%D1%82%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B0+%D0%BD%D0%B0+%D0%BF%D0%BE%D1%80%D1%82&spell=1)
http://www.opennet.ru/docs/RUS/iptables/ - полное руководство по IPTABLES
http://www.opennet.ru/docs/RUS/iptables/#REDIRECTTARGET - перенаправление тарфика

zelo
16-11-2006, 11:01
http://www.opennet.ru/docs/RUS/iptables/#REDIRECTTARGET - перенаправление тарфика
Огроменное спасиБо

zelo
16-11-2006, 11:23
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 --to-destination 192.168.2.233
где 192.168.2.233 - ип прокси
говорит Unknown arg --to-destination
что делать? как бысть?

BuGfiX
16-11-2006, 12:07
zelo, с помощью -j REDIRECT вы можете завернуть траффик только на ту же самую машину, но на другой (другие) порт с помощью параметра --to-ports. Параметр --to-destination здесь неприменим.
Возможно вам поможет DNAT (http://www.opennet.ru/docs/RUS/iptables/#DNATTARGET).

zelo
16-11-2006, 13:10
Сделал сие:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-ports 8080 --to-destination 192.168.2.233
Теперь при заходе на любой сайт браузер выдаёт страничку, которую он выдавал прежде при прямом подключении на порт прокси т.е. (http://192.168.2.233:8080)
???

BuGfiX
16-11-2006, 13:20
Да.. похоже я неправильно понял тему. DNAT работает правильно, но вам, судя по всему нужно не это=)
В общем, чтобы сделать прозрачное проксирование, прокси сервер и шлюз у вас должны располагаться на одной машине. Тогда как раз и получится прием с -j REDIRECT.
Cудя по всему, у вас именно так все и есть, поэтому правило
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
должно работать.

zelo
16-11-2006, 13:34
Попробовал и iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
Результат прежний: всегда выводит страничку которую прокси посылает при прямом подключении браузером на его порт.
Итог:
Из всех вышепроделанных экспериментов я понял то что перенаправление 80-го порта на порт 8080 (прокси) происходит, но не понятно почему на этом дело заканчивается, почему прокси не обрабатывает этот запрос, а выводит лишь:
> ERROR
> The requested URL could not be retrieved
???

BuGfiX
16-11-2006, 13:57
Возможно у вас неправильно настроен squid.
Убедитесь что в нем есть следующие строчки:

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

zelo
16-11-2006, 14:14
всё верно, были эти строки я лишь с портами напутал (указал 80, а перенаправлял на 8080) всё заработало
...всем огроменное спасиБо (особо BuGfix`у)




© OSzone.net 2001-2012