Все тестировалось на FreeBSD 6.2.Вначале добавляем необходимые опции в ядро:
IPFIREWALL
IPFIREWALL_FORWARDДалее добавляем правила на разворот трафика на Squid:
ipfw add 49 fwd 127.0.0.1,3128 tcp from any to any 80
Затем правка собственно squid.conf :
http_port 3128
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
URL:
Обсуждается: http://www.opennet.me/tips/info/1517.shtml
Рецепт старый. А если сквид упадет? Хотелось бы динамического отслеживания активности сквида... Как это делает, например, циска.
Т.е. если сквид упадет, то пустить траффик напрямую или использовать другой прокси? Умно.
ага еще бы кто рассказал что делать с 443 портом?
для прозрачного проксирования? просто
ipfw add 49 fwd 127.0.0.1,3128 tcp from any to any 443
не помогает:(
acl SSL_ports port 443
acl CONNECT method CONNECT
http_access deny CONNECT !SSL_ports
http_port 127.0.0.1:3128 transparent
А версия squid?
для версии 2.6: http_port 3128 transparent
а можно подробние чего для этого надо?
>а можно подробние чего для этого надо?а разве можно проксировать порт 443 ? и в чем сей великий смысл, если всеравно данные там шифрованные ?
Прозрачная прокся не кеширует HTTPS запросы, нужно в браузере прописывать IP и порт сквиды, тогда все работает.
это я понимаю но в том то и вопрос нельзя сделать так чтобы не прописывать у каждого клиента?прозрачно так сказать
>это я понимаю но в том то и вопрос нельзя сделать так
>чтобы не прописывать у каждого клиента?прозрачно так сказатьможно отлавливать трафик идущий на 443 мимо сквида, и выдавать инструкцию пользователю как настроить бровзер, для правильной работы. ТОгда самому не надо будет настраивать. Пользователи сами сделают всю работу.
>>это я понимаю но в том то и вопрос нельзя сделать так
>>чтобы не прописывать у каждого клиента?прозрачно так сказать
>
>можно отлавливать трафик идущий на 443 мимо сквида, и выдавать инструкцию пользователю
>как настроить бровзер, для правильной работы. ТОгда самому не надо будет
>настраивать. Пользователи сами сделают всю работу.Мечты админа. На самомо деле тогда пользователи достанут окончательно, если им будет вываливаться вместо ожидаемого "какие-то буковки", кторые они даже не утруждаются прочитать.
А как вы хотите кэшировать ssl, там же всё зашифровано и смысла проксировать не имеет, ставьте обычный nat.
Есть мнение, что в squid 2.6 вместо всей вот этой чепухи
http_port 3128httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header onВ squid.conf надо записать просто
http_port 127.0.0.1:3128 transparent
именно, в новых версиях так и нужно делать
да не хочу я его кэшировать:)
я хочу чтобы у пользователей автоматом работало без прописывания
у каждого настроек прокси сервера
чтобы к каждому юзеру который вдруг решил зайти например на gmail
>да не хочу я его кэшировать:)
>я хочу чтобы у пользователей автоматом работало без прописывания
>у каждого настроек прокси сервера
>чтобы к каждому юзеру который вдруг решил зайти например на gmailименно туда (гуглямыйл) врядли прозрачная прокся корректно отрабатывает все запросы по 443 порту
>да не хочу я его кэшировать:)
>я хочу чтобы у пользователей автоматом работало без прописывания
>у каждого настроек прокси сервера
>чтобы к каждому юзеру который вдруг решил зайти например на gmailНу так раздай всем настройки браузера через DHCP/WINS/Domain Policy/Logon Script/
или как там, через http://wpad/wpad.dat/ через такой вариант тоже можно..
А что такое Прозрачное проксирование?
Это когда клиент не видит, что ходит через прокси.
#!/bin/sh
rm -R /var/squid.txt
ps -U root|grep squid >/var/squid.txt
if (cat /var/squid.txt |grep -q 'squid -F')
then exit
fi
rm /usr/local/squid/var/logs/squid.pid
/usr/local/squid/sbin/squid -F
Примерно так. По вопросу отслеживания сквида.
Можно повесить на крон раз в 3 мин.
>#!/bin/sh
>Примерно так. По вопросу отслеживания сквида.
>Можно повесить на крон раз в 3 мин.костыли.
во-первых, для отслеживания работы демонов и их повторного запуска есть monit.
во-вторых, у хорошего админа squid просто так не падает.
в-третьих, если он все-таки упал, то для этого были веские причины и банальный перезапуск не поможет.
Странно, у меня эксплорер лезет не через 80 порт, судя по всему. Форвард отрабатывает только если указать руками эксплореру прокси сервер, а порт поставить 80. На 3128 тоже соответственно работает. Куда копать?
Странно, с такой системой как я описал, есть некоторые траблы (я не специалист в никсах) как такие:
все клиенты ходящие через прокси не могут попасть на countdown.ru, если отключить прокси все нормально.
подскажите. плз.
>Странно, с такой системой как я описал, есть некоторые траблы (я не
>специалист в никсах) как такие:
>все клиенты ходящие через прокси не могут попасть на countdown.ru, если отключить
>прокси все нормально.
>подскажите. плз.Если глянуть в access.log, то можно увидеть, например, следующее:
11/May/2008:22:46:57 +0400 1 192.168.0.3 TCP_DENIED/400 1188 NONE error:unsupported-request-method - NONE/- text/htmlСмысл в том, что HTTPS-запросы не прокисруются, т.е. 443 порт заворачивать на прокси-сервер не нужно, пусть ходит через NAT. Например, у меня так:
iptables -t nat -A PREROUTING -i eth1 -p tcp -m multiport --dport 80,8080,8008,8081 -j REDIRECT --to-port 3128
iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.0.3 -p tcp -m multiport --dport 443 -j ACCEPT
В настройках броузера галочка "использовать прокси" НЕ установлена, в итоге, как HTTP, так и HTTPS запросы обрабатываются нормально.
В таком виде не работало. Работало как ipfw add 49 fwd 127.0.0.1,3128 tcp from any to not me 80 in
тоесть ловим входящие пакеты, которые пытаются от нас уйти на 80-ый порт