URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID12
Нить номер: 4555
[ Назад ]

Исходное сообщение
"и опять squid :)"

Отправлено makhin , 05-Дек-06 21:05 
прокси настроена, если в браузере включить проксю, то всё работает...
пытаюсь сделать прозрачный прокси, делаю цепочку:
$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
Недопустимый символ в имени сервера; подчёркивания недопустимы

--------------------------------------------------------------------------------

в чём проблема может быть?


Содержание

Сообщения в этом обсуждении
"и опять squid :)"
Отправлено makhin , 05-Дек-06 21:35 
>прокси настроена, если в браузере включить проксю, то всё работает...
>пытаюсь сделать прозрачный прокси, делаю цепочку:
>$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'


"и опять squid :)"
Отправлено DeadLoco , 06-Дек-06 04:02 
>>в чём проблема может быть?

./configure --help | grep accel
less /usr/local/squid/bin/RunAccel


"и опять squid :)"
Отправлено makhin , 06-Дек-06 12:21 
>>>в чём проблема может быть?
>
>./configure --help | grep accel
>less /usr/local/squid/bin/RunAccel

я делаю:
./configure --enable-x-accelerator-vary
make

правильно?


"и опять squid :)"
Отправлено makhin , 06-Дек-06 12:26 
>>>>в чём проблема может быть?
>>
>>./configure --help | grep accel
>>less /usr/local/squid/bin/RunAccel
>
>я делаю:
>./configure --enable-x-accelerator-vary
>make
>
>правильно?
ну и make install
но такого нету /usr/local/squid/bin/RunAccel  :(


"и опять squid :)"
Отправлено Yuri Mel , 24-Апр-07 13:56 
Это бывает проблема после обновления 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 :)"
Отправлено makhin , 27-Апр-07 11:11 
>Это бывает проблема после обновления 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 :)"
Отправлено idle , 27-Апр-07 13:07 
>>Это бывает проблема после обновления 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 :)"
Отправлено makhin , 27-Апр-07 13:22 
>>>Это бывает проблема после обновления 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 :)"
Отправлено Az , 28-Апр-07 11:14 
>$IPTABLES -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
Может немонго глупое замечание, но eth0 смотрит во внутреннюю сеть или всётаки в интернет?



"и опять squid :)"
Отправлено makhin , 28-Апр-07 11:45 
>>$IPTABLES -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
>Может немонго глупое замечание, но eth0 смотрит во внутреннюю сеть или всётаки
>в интернет?
да дело тут не в цепочке фаервола, она как раз таки работает нормально, да и впринципе всё уже нормально работает

"и опять squid :)"
Отправлено Сергей , 13-Сен-07 22:33 
>[оверквотинг удален]
>
>и 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
все заработало как требовалось.