Здравствуйте всем. Очень давно пользуюсь сквидом. Решил сделать прозрачный прокси. Не получается. За пару недель перечитал кучу манов, хелпов, форумов и прочего. Что тока не пробовал. Никак не получается. Сейчас убрал всех польхователей, оставив только себя для теста. Через обычный прокси все работает. Сервер имеет локальный адрес 192.168.0.105. Мой адрес, клиентский - 192.168.0.1.
Рабочий конфиг сквида на данный момент:http_port 192.168.0.105:8080 transparent
visible_hostname Serv
acl donocache urlpath_regex cgi-bin user submit
no_cache deny donocache
#cache_mem 8 MB
#cache_dir ufs /var/spool/squid 1000 16 256
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
acl all src 0/0
acl am src 192.168.0.1
always_direct allow am
http_access allow am
http_access deny alliptables -t nat -A PREROUTING -s 192.168.0.0/16 -p tcp -m multiport --dport 80,81,82,83,88,8000,8001,8002,8080,8081 -j REDIRECT --to-port 8080
iptables -t nat -A PREROUTING -s 192.168.0.0/16 -p udp -m multiport --dport 80,81,82,83,88,8000,8001,8002,8080,8081 -j REDIRECT --to-port 8080
iptables -t nat -A PREROUTING -s 192.168.0.0/16 -p tcp -m multiport --dport 8082,8083,8091,8100,8101,8102,8103,8080,8888,777 -j REDIRECT --to-port 8080
iptables -t nat -A PREROUTING -s 192.168.0.0/16 -p udp -m multiport --dport 8082,8083,8091,8100,8101,8102,8103,8080,8888,777 -j REDIRECT --to-port 8080Через прокси работает. Прописываю шлюз в настройках сетевухи. Не работает. От полной безысходности и не понимания сути проблемы брал готовые конфиги и настройки из разных источников, включая http://www.opennet.me/base/net/transparent_proxy.txt.html. Убирал директивы типа httpd_accel, прописывал transparent. Не работает.
Linux ASP12 2.6.22, Squid-2.6STABLE16-4.0, iptables-1.3.8-2.1.0
Спасибо
sysctl net.ipv4.ip_forward=1
клиенту так же DNS нужен
>клиенту так же DNS нуженкакому клиенту? какой ДНС? куда? пожалуйста конкретнее
>>клиенту так же DNS нужен
>
>какому клиенту? какой ДНС? куда? пожалуйста конкретнееприкалываешся? куда уж конкретней?
клиент - в данном случае браузер который в инет должен выйти.
какой ДНС - а какой есть тот и пропишите.
куда - зависит от ОС клиентской машины.
>>>клиенту так же DNS нужен
>>
>>какому клиенту? какой ДНС? куда? пожалуйста конкретнее
>
>прикалываешся? куда уж конкретней?
>клиент - в данном случае браузер который в инет должен выйти.
>какой ДНС - а какой есть тот и пропишите.
>куда - зависит от ОС клиентской машины.Если бы мне нужен был браузер, я бы пользовался обычным прокси. прозрачный нужен для других целей.
ДНСа - нет. Порядком не понимаю где его прописать и зачем он вапще нужен. Может что не так понял. Объясните. Спасибо.
http://ru.wikipedia.org/wiki/DNS
>http://ru.wikipedia.org/wiki/DNSСпасибо большое. Ваша политика типа "сделайте то, что требуется" и "пропишите/поставьте то, что необходимо" очень помогает. Именно этого мне и нехватало.
>sysctl net.ipv4.ip_forward=1прописал. даже ребутнул комп. результат тот же
Попробуйте добавить в конфиг сквида:header_access via deny all
forwarded_for offследующие строчки тоже не помешают:
refresh_pattern ^ftp: &n... 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320acl apache rep_header Server ^Apache
broken_vary_encoding allow apacheТакже попробуйте прицепиться телнетом на 3128 и посмотреть отвечает ли прокся.
Что в логах у сквида? Желательно также полный список правил iptables.
Какая ошибка при попытке вылезти через проксю?И рекомендуется привести Ваши правила к виду:
iptables -t nat -A PREROUTING -s 192.168.0.0/16 -d ! 192.168.0.105 ...
>[оверквотинг удален]
>
>acl apache rep_header Server ^Apache
>broken_vary_encoding allow apache
>
>Также попробуйте прицепиться телнетом на 3128 и посмотреть отвечает ли прокся.
>Что в логах у сквида? Желательно также полный список правил iptables.
>Какая ошибка при попытке вылезти через проксю?
>
>И рекомендуется привести Ваши правила к виду:
>iptables -t nat -A PREROUTING -s 192.168.0.0/16 -d ! 192.168.0.105 ...Добавил строки в конфиг, изменил правила iptables. Результат тотже. Когда лезу в инет через обычный прокси, все работает. В логи записываются строки о нормальной работе сквида. Прописываю шлюз, убираю прокси, лезу в инет - ошибка, URL ненайден, инета нет. В логи ничего не вносится, изменений нет.
Что еще посоветуете?
>[оверквотинг удален]
>>
>>И рекомендуется привести Ваши правила к виду:
>>iptables -t nat -A PREROUTING -s 192.168.0.0/16 -d ! 192.168.0.105 ...
>
>Добавил строки в конфиг, изменил правила iptables. Результат тотже. Когда лезу в
>инет через обычный прокси, все работает. В логи записываются строки о
>нормальной работе сквида. Прописываю шлюз, убираю прокси, лезу в инет -
>ошибка, URL ненайден, инета нет. В логи ничего не вносится, изменений
>нет.
>Что еще посоветуете?Попробуйте так
http_port 3128 transparent
В правилах iptables
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -d !192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQUERADEну либо нат, если есть постоянный внешний ip
>[оверквотинг удален]
>
>http_port 3128 transparent
>
>В правилах iptables
>
>iptables -t nat -A PREROUTING -s 192.168.0.0/24 -d !192.168.0.0/24 -p tcp -m
>multiport --dport 80,8080 -j REDIRECT --to-ports 3128
>iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQUERADE
>
>ну либо нат, если есть постоянный внешний iphttp_port 3128 transparent
#3128PORT
ipfw add fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any 80
ipfw add divert natd all from any to any via msk0работает в таком же варианте под freebsd + ipfw
сначала форвардим, потом натим
у меня работает в таком варианте
>у меня работает в таком вариантеПомойму проблема у меня в чом то другом, не понимаю вапще. Можешь дать пожалуйста свой полный конфиг и все правила iptables. В рабочем варианте транспарента. Если правил что еще, сообщи пожалуйста. Если не сложно вышли на toxa87@yandex.ru
Заранее спасибо.