нужен прозрачный прокси кеширующий трафик с 80,443 портов.
платформа - роутер freebsd 5.4 + squid3 stable9
стоит 3 сетевых. 2 - локальных сетки(tau-pci) и 1 смотрит на провайдера (реалтек)на первой tau-pci прописана сеть 12.3.123.0/255.255.255.128
на второй 12.3.123.129/255.255.255.128squid собран с ключами
--enable-ipfw-transparent
--enable-default-err-language=Russian-1251
--enable-forward-log
--enable-snmpконфиг минимальный
http_port 127.0.0.1:3128 transparent
icp_port 0
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_mem 16 MB
cache_dir ufs /usr/local/squid/var/cache 2000 64 512
cache_access_log /usr/local/squid/var/logs/access.log
cache_log /usr/local/squid/var/logs/cache.log
hosts_file /etc/hosts
error_directory /usr/local/squid/share/errors/Russian-1251
pid_filename /usr/local/squid/var/logs/squid.pid
acl safe_ports port 80 # http
acl safe_ports port 443 # ssl
acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255acl LocalNet src 12.3.123.0/24
http_access allow LocalNet
http_access deny !safe_ports
http_access deny all !LocalNetdns_nameservers 127.0.0.1 #dns расположен на той же машине
dns_children 10
заворачиваем 80,443 на 3128 через ipfw
ipfw add 5 fwd 127.0.0.1,3128 tcp from 12.3.123.0/24 to any 80
ipfw add 6 fwd 127.0.0.1,3128 tcp from 12.3.123.0/24 to any 443пробуем открыть ya.ru - получаем в логах
access.log: 1222750731.873 157 12.3.123.123 TCP_MISS/503 1299 GET http://ya.ru/ - DIRECT/ya.ru text/html
store.log: 1222750731.873 RELEASE -1 FFFFFFFF 42C3044AD717B83D0B1C7AAB9B7F35E2 503 1222750731 0 -1 text/html 939/939 GET http://ya.ru/открываем в фаерволе 80 порт
ipfw add 2 allow tcp from any to me 80
ipfw add 2 allow tcp from me to any 80пробуем опять, получаем
access.log: 1222750944.006 179718 12.3.123.123 TCP_MISS/504 1298 GET http://ya.ru/ - DIRECT/213.180.204.8 text/html
store.log: 1222750944.006 RELEASE -1 FFFFFFFF DB51E9E06CAB405EB4B7B1D9A53890D3 504 1222750944 0 -1 text/html 941/941 GET http://ya.ru/есть идеи что не так?
еще хочу уточнить по поводу опций
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header onочень много документации к squid в том числе squid3 где они используются..
но мой прокси их не принимает..
устаревшие?
чем заменить?
>[оверквотинг удален]
>httpd_accel_host virtual
>httpd_accel_port 80
>httpd_accel_with_proxy on
>httpd_accel_uses_host_header on
>
>очень много документации к squid в том числе squid3 где они используются..
>
>но мой прокси их не принимает..
>устаревшие?
>чем заменить?Так же встретился с этой проблемой:
[3|root@gw| /usr/ports/www/squid30 ] /usr/local/etc/rc.d/squid start
Starting squid.
2009/04/07 17:16:07| cache_cf.cc(346) squid.conf:321 unrecognized: 'httpd_accel_host'
2009/04/07 17:16:07| cache_cf.cc(346) squid.conf:322 unrecognized: 'httpd_accel_port'
2009/04/07 17:16:07| cache_cf.cc(346) squid.conf:323 unrecognized: 'httpd_accel_with_proxy'
2009/04/07 17:16:07| cache_cf.cc(346) squid.conf:324 unrecognized: 'httpd_accel_uses_host_header'
Судя по всему именно из-за этого мой сквид не работает транспарентно =(
>[оверквотинг удален]
>[3|root@gw| /usr/ports/www/squid30 ] /usr/local/etc/rc.d/squid start
>Starting squid.
>2009/04/07 17:16:07| cache_cf.cc(346) squid.conf:321 unrecognized: 'httpd_accel_host'
>2009/04/07 17:16:07| cache_cf.cc(346) squid.conf:322 unrecognized: 'httpd_accel_port'
>2009/04/07 17:16:07| cache_cf.cc(346) squid.conf:323 unrecognized: 'httpd_accel_with_proxy'
>2009/04/07 17:16:07| cache_cf.cc(346) squid.conf:324 unrecognized: 'httpd_accel_uses_host_header'
>
>
>Судя по всему именно из-за этого мой сквид не работает транспарентно =(
>что мешает конфиг который идет по умолчанию почитать?
эта конструкция начиная с 2.6 не используется.
http_port 10.0.0.254:3128 transparent
>что мешает конфиг который идет по умолчанию почитать?
>эта конструкция начиная с 2.6 не используется.
>http_port 10.0.0.254:3128 transparentДа, я так и сделал и нашёл ответ.
>>что мешает конфиг который идет по умолчанию почитать?
>>эта конструкция начиная с 2.6 не используется.
>>http_port 10.0.0.254:3128 transparent
>
>Да, я так и сделал и нашёл ответ.Скажите а что делать в такой ситуации. Настроил сквид2.6 как прозрачный на отдельной машине. Фаервол запросы пользователей перенаправляет на прокси. А в access.log сквида пишется все только от имени фаервола (запросы от всех компов определяются как запросы от фаервола). Как сделать чтоб фаер передавал ипы юзеров а не свой прокси серверу?
>[оверквотинг удален]
>>>эта конструкция начиная с 2.6 не используется.
>>>http_port 10.0.0.254:3128 transparent
>>
>>Да, я так и сделал и нашёл ответ.
>
>Скажите а что делать в такой ситуации. Настроил сквид2.6 как прозрачный на
>отдельной машине. Фаервол запросы пользователей перенаправляет на прокси. А в access.log
>сквида пишется все только от имени фаервола (запросы от всех
>компов определяются как запросы от фаервола). Как сделать чтоб фаер передавал
>ипы юзеров а не свой прокси серверу?не делать SNAT для пакетов отправляемых на squid, но если squid в одной подсети с клиентами, то он начнет отвечать им на прямую, что клиентам не понравится, соответственно еще понадобится squid вывести в другую физическую или логическую подсеть.
>[оверквотинг удален]
>>Скажите а что делать в такой ситуации. Настроил сквид2.6 как прозрачный на
>>отдельной машине. Фаервол запросы пользователей перенаправляет на прокси. А в access.log
>>сквида пишется все только от имени фаервола (запросы от всех
>>компов определяются как запросы от фаервола). Как сделать чтоб фаер передавал
>>ипы юзеров а не свой прокси серверу?
>
>не делать SNAT для пакетов отправляемых на squid, но если squid в
>одной подсети с клиентами, то он начнет отвечать им на прямую,
>что клиентам не понравится, соответственно еще понадобится squid вывести в другую
>физическую или логическую подсеть.У меня так:
В squid.conf :
http_port 3128 transparentПотом:
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.1:3128
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128eth0 - наружу
eth1 - внутрь