Доброго времени суток, господа.
Имеется:
FreeBSD 6.2-RELEASE
Squid 2.6
rl0 - локальная сеть
tun0 - подключение по pptpСледует сделать прозрачную проксю, чтобы:
клиенты, подключенные к rl0 могли не прописывая проксю(это работает) в браузере выходить в интет, прописав только в качестве шлюза IP машины на FreeBSD.Манов на эту тему много и большинство сводится к:
1) Добавление в rc.local
#gateway_enable="YES"
+
2)Перенаправление всех запросов 80 порта на squid:
ipfw add 1110 fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any 80 # Сетка 192.168.0.1-255
+нет проблем
3)Добавление в squid.conf
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header onОднако в ветке 2.6 http://www.opennet.me/opennews/art.shtml?num=7824 пишут:
Директивы httpd_accel_* объявлены устаревшими, на смену им пришли ключи "accelerated" и "transparent" для директив задающих номер прослушиваемого сетевого порта (http_port);Подскажите,пожалуйста, что надо сделать.
И второстепенный вопрос:
Соответственно будет идти только траффик по 80 порту. А можно ли сделать, чтобы пользователь мог пинговать и прочее. По моему смутному представлению этим может заниматься только natd.
>Однако в ветке 2.6 http://www.opennet.me/opennews/art.shtml?num=7824 пишут:
>Директивы httpd_accel_* объявлены устаревшими, на смену им пришли ключи "accelerated" и ""
>для директив задающих номер прослушиваемого сетевого порта (http_port);Я не спец по сквиду, но возможно:
http_port 3128 transparent>Соответственно будет идти только траффик по 80 порту. А можно ли сделать,
>чтобы пользователь мог пинговать и прочее. По моему смутному представлению этим
>может заниматься только natd.Squid сможет обработать только http и ftp запросы. Можно разрешить метод CONNECT, тогда станет возможным https и вообще любые TCP-соединения. Пинг идёт не через TCP, а через ICMP.
>Я не спец по сквиду, но возможно:
>http_port 3128 transparentБольшое спасибо, заработало!
Итак, прозрачная прокся:
1) Добавление в rc.local
#gateway_enable="YES"
2) Перенаправление всех запросов 80 порта на squid:
ipfw add 1110 fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any 80 # Сетка 192.168.0.1-255
3) добавление в squid.conf
http_port 3128 transparent
>Squid сможет обработать только http и ftp запросы. Можно разрешить метод
>CONNECT, тогда станет возможным https и вообще любые TCP-соединения. Пинг
>идёт не через TCP, а через ICMP.Ок, теперь по поводу https.
1) squid.conf:
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
2) файр00200 fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any dst-port 80
00300 fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any dst-port 443
----
Причем, видимо https гасит squid, ибо с локальной машины:su-2.05b# telnet 192.168.0.209 443
Trying 192.168.0.209...
Connected to 192.168.0.209.
Escape character is '^]'....
Generated Mon, 13 Aug 2007 14:20:37 GMT by InternetServer (squid/2.6.STABLE3)
acl src lnet 192.168.0.0/24
http_access allow lnet all
На 443-й порт соединение устанавливается сразу завёрнутое в SSL и полностью зашифрованное, там нет никаких текстовых заголовков -- соответственно, Squid не может распознать, к какому хосту обращается браузер.В случае соединения через настроенный прокси браузер делает приблизительно такой запрос и прокси может определить к какому хосту соединяться:
CONNECT mail.google.com:443 HTTP/1.1
User-Agent: Mozilla/5.0
Proxy-Connection: keep-alive
Host: mail.google.com<дальше идёт SSL>
проверьте при помощи tcpdump
>[оверквотинг удален]
>прокси может определить к какому хосту соединяться:
>
>CONNECT mail.google.com:443 HTTP/1.1
>User-Agent: Mozilla/5.0
>Proxy-Connection: keep-alive
>Host: mail.google.com
>
><дальше идёт SSL>
>
>проверьте при помощи tcpdumpТак как всё таки решить проблему https, squid and transparent ?