Показать полную графическую версию : Как завернуть траффик...
Есть локалка выведенная в инет через NAT, на шлюзе стоит кэширующий SQUID. Не охота перенастраивать всех клиентов на использование PROXY ибо их великое множество. Можно ли используя IPTABLES завернуть весь трафик исходящий на порт 80 на SQUID?
...заранее сапиБо.
Учитесь пользоваться поиском 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 - перенаправление тарфика
http://www.opennet.ru/docs/RUS/iptables/#REDIRECTTARGET - перенаправление тарфика
Огроменное спасиБо
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
что делать? как бысть?
zelo, с помощью -j REDIRECT вы можете завернуть траффик только на ту же самую машину, но на другой (другие) порт с помощью параметра --to-ports. Параметр --to-destination здесь неприменим.
Возможно вам поможет DNAT (http://www.opennet.ru/docs/RUS/iptables/#DNATTARGET).
Сделал сие:
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)
???
Да.. похоже я неправильно понял тему. DNAT работает правильно, но вам, судя по всему нужно не это=)
В общем, чтобы сделать прозрачное проксирование, прокси сервер и шлюз у вас должны располагаться на одной машине. Тогда как раз и получится прием с -j REDIRECT.
Cудя по всему, у вас именно так все и есть, поэтому правило
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
должно работать.
Попробовал и iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
Результат прежний: всегда выводит страничку которую прокси посылает при прямом подключении браузером на его порт.
Итог:
Из всех вышепроделанных экспериментов я понял то что перенаправление 80-го порта на порт 8080 (прокси) происходит, но не понятно почему на этом дело заканчивается, почему прокси не обрабатывает этот запрос, а выводит лишь:
> ERROR
> The requested URL could not be retrieved
???
Возможно у вас неправильно настроен squid.
Убедитесь что в нем есть следующие строчки:
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
всё верно, были эти строки я лишь с портами напутал (указал 80, а перенаправлял на 8080) всё заработало
...всем огроменное спасиБо (особо BuGfix`у)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.