прокси настроена, если в браузере включить проксю, то всё работает...
пытаюсь сделать прозрачный прокси, делаю цепочку:
$IPTABLES -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
но в логах скиюда вот такая ошибка:
10.1.1.3 - - [05/Dec/2006:19:58:52 +0200] "GET error:invalid-request HTTP/0.0" 400 1570 TCP_DENIED:NONE
а в браузере такое:Произошла следующая ошибка:
Неверный запрос.
Некоторые аспекты HTTP запроса неправильны. Возможные проблемы:Отсутствует либо неизвестен метод запроса (GET, POST)
Отсутствует URL
Отсутствует HTTP идентификатор (HTTP/1.0)
Запрос слишком велик
Не указан Content-Length для запросов POST или PUT
Недопустимый символ в имени сервера; подчёркивания недопустимы--------------------------------------------------------------------------------
в чём проблема может быть?
>прокси настроена, если в браузере включить проксю, то всё работает...
>пытаюсь сделать прозрачный прокси, делаю цепочку:
>$IPTABLES -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j
>REDIRECT --to-port 3128
>но в логах скиюда вот такая ошибка:
>10.1.1.3 - - [05/Dec/2006:19:58:52 +0200] "GET error:invalid-request HTTP/0.0" 400 1570 TCP_DENIED:NONE
>а в браузере такое:
>
>Произошла следующая ошибка:
>
>Неверный запрос.
>Некоторые аспекты HTTP запроса неправильны. Возможные проблемы:
>
>Отсутствует либо неизвестен метод запроса (GET, POST)
>Отсутствует URL
>Отсутствует HTTP идентификатор (HTTP/1.0)
>Запрос слишком велик
>Не указан Content-Length для запросов POST или PUT
>Недопустимый символ в имени сервера; подчёркивания недопустимы
>
>
>
>--------------------------------------------------------------------------------
>
>в чём проблема может быть?нашёл что в скюид.конф надо добавить такие строки что бы заработало:
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header onно при запуске скюид на них ругается:
2006/12/05 20:33:37| parseConfigFile: line 69 unrecognized: 'httpd_accel_host virtual'
2006/12/05 20:33:37| parseConfigFile: line 70 unrecognized: 'httpd_accel_port 80'
2006/12/05 20:33:37| parseConfigFile: line 71 unrecognized: 'httpd_accel_with_proxy on'
2006/12/05 20:33:37| parseConfigFile: line 72 unrecognized: 'httpd_accel_uses_host_header on'
>>в чём проблема может быть?./configure --help | grep accel
less /usr/local/squid/bin/RunAccel
>>>в чём проблема может быть?
>
>./configure --help | grep accel
>less /usr/local/squid/bin/RunAccelя делаю:
./configure --enable-x-accelerator-vary
makeправильно?
>>>>в чём проблема может быть?
>>
>>./configure --help | grep accel
>>less /usr/local/squid/bin/RunAccel
>
>я делаю:
>./configure --enable-x-accelerator-vary
>make
>
>правильно?
ну и make install
но такого нету /usr/local/squid/bin/RunAccel :(
Это бывает проблема после обновления SQUID c 2.5STABLE на 2.6STABLE и вышестрочки accel (4 строчки у тебя) надо закоментировать
а строчку http_port 3128
замени на
httpd_accel_port 3128 transperent
и SQUID будет сам делать REDIRECT c 80 на указанный выше порт (3128)должно получится, проверь
Если прописанов iptables строка наподобии iptables -A PREROUTING xxxx -p port 80 xxxx REDIRECT --to-ports 3128 - ее также надо закоментировать
Пробуй.. :) должно получится
>Это бывает проблема после обновления SQUID c 2.5STABLE на 2.6STABLE и выше
>
>
>строчки accel (4 строчки у тебя) надо закоментировать
>
>а строчку http_port 3128
>
>замени на
>httpd_accel_port 3128 transperent
>
>и SQUID будет сам делать REDIRECT c 80 на указанный выше
>порт (3128)
>
>должно получится, проверь
>
>Если прописанов iptables строка наподобии iptables -A PREROUTING xxxx -p port 80
>xxxx REDIRECT --to-ports 3128 - ее также надо закоментировать
>
>Пробуй.. :) должно получитсяне не получается
>>Это бывает проблема после обновления SQUID c 2.5STABLE на 2.6STABLE и выше
Это не проблема, это изменение синтаксиса.
До 2.6 надо писать httpd_accel* после httpd_accel_port 3128 transperent.
>>
>>
>>строчки accel (4 строчки у тебя) надо закоментировать
>>
>>а строчку http_port 3128
>>
>>замени на
>>httpd_accel_port 3128 transperent
>>
>>и SQUID будет сам делать REDIRECT c 80 на указанный выше
squid сам редирект делать не будет.
>>порт (3128)
>>
>>должно получится, проверь
>>
>>Если прописанов iptables строка наподобии iptables -A PREROUTING xxxx -p port 80
>>xxxx REDIRECT --to-ports 3128 - ее также надо закоментировать
не надо её комментировать.
>>
>>Пробуй.. :) должно получится
>
>не не получается
Раскомментируйте строчку в фаерволле, в squid.conf пропишите httpd_accel_port 3128 transperent и всё.
>>>Это бывает проблема после обновления SQUID c 2.5STABLE на 2.6STABLE и выше
>Это не проблема, это изменение синтаксиса.
>До 2.6 надо писать httpd_accel* после httpd_accel_port 3128 transperent.
>>>
>>>
>>>строчки accel (4 строчки у тебя) надо закоментировать
>>>
>>>а строчку http_port 3128
>>>
>>>замени на
>>>httpd_accel_port 3128 transperent
>>>
>>>и SQUID будет сам делать REDIRECT c 80 на указанный выше
>squid сам редирект делать не будет.
>>>порт (3128)
>>>
>>>должно получится, проверь
>>>
>>>Если прописанов iptables строка наподобии iptables -A PREROUTING xxxx -p port 80
>>>xxxx REDIRECT --to-ports 3128 - ее также надо закоментировать
>не надо её комментировать.
>>>
>>>Пробуй.. :) должно получится
>>
>>не не получается
>Раскомментируйте строчку в фаерволле, в squid.conf пропишите httpd_accel_port 3128 transperent и всё.
>всй так и сделал, но все запросы не попадают на прокси, а идут вокруг нее
>$IPTABLES -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
Может немонго глупое замечание, но eth0 смотрит во внутреннюю сеть или всётаки в интернет?
>>$IPTABLES -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
>Может немонго глупое замечание, но eth0 смотрит во внутреннюю сеть или всётаки
>в интернет?
да дело тут не в цепочке фаервола, она как раз таки работает нормально, да и впринципе всё уже нормально работает
>[оверквотинг удален]
>
>и SQUID будет сам делать REDIRECT c 80 на указанный выше
>порт (3128)
>
>должно получится, проверь
>
>Если прописанов iptables строка наподобии iptables -A PREROUTING xxxx -p port 80
>xxxx REDIRECT --to-ports 3128 - ее также надо закоментировать
>
>Пробуй.. :) должно получитсяПри настройке
httpd_accel_port 3128 transperentпоявлялась ошибка
Запускается squid: /etc/init.d/squid: line 53: 4810 Аварийный останов $SQUID $SQUID_OPTS >>/var/log/squid/squid.out 2>&1
[ СБОЙ ]на сайте http://wiki.squid-cache.org/SquidFaq/InterceptionProxy нашел такие рекомендации
For Squid-2.6 and Squid-3.0 you simply need to add the keyword transparent on the http_port that your proxy will receive the redirected requests on as the above directives are not necessary and in fact have been removed in those releases:
http_port 3128 transparent
<!> You can manually configure browsers to connect to the IP address and port which you have specified as transparent. The only drawback is that there will be a very slight (and probably unnoticeable) performance hit as a syscall done to see if the connection is intercepted. If no interception state is found it is processed just like a normal connection.
For Squid-2.5 and earlier the configuration is a little more complex. Here are the important settings in squid.conf for Squid-2.5 and earlier:
http_port 3128
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
После добавления строки
http_port 3128 transparent
все заработало как требовалось.