Автор Тема: Кентавр 6 — Прозрачное перенаправление на прокси провайдера [решено]  (Прочитано 78412 раз)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Что имею (пока только 80 порт):
# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  anywhere            !192.168.112.0/24    tcp dpt:http to:10.255.255.247:3128
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  anywhere             anywhere           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

При загрузке страницы, yandex.ru, например, выпадает следующее:ERROR
The requested URL could not be retrieved

While trying to retrieve the URL: /redir/dtype=stred/pid=12/cid=70328/path=Yandex/url*http://www.yandex.ru/?clid=126902

The following error was encountered:

    Invalid URL

Some aspect of the requested URL is incorrect. Possible problems:

    Missing or incorrect access protocol (should be `http://'' or similar)
    Missing hostname
    Illegal double-escape in the URL-Path
    Illegal character in hostname; underscores are not allowed

Your cache administrator is support@redsolution.ru.
Generated Fri, 11 May 2012 09:53:56 GMT by skf.umc74.ru (squid/3.0.STABLE19)

Уже хорошо что на прокси уходит... только почему не открывает ?
Сноси Винду, переходи на Линукс ! :)

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 370
Почему то ругается:
iptables v1.4.10: invalid port/service `80,8080' specified
а куда -m multiport пропал ?

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
а куда -m multiport пропал ?
Выше пост, там с -m miltiport и --dport 80 (8080 пока убрал).
Сноси Винду, переходи на Линукс ! :)

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 370
а куда -m multiport пропал ?
Выше пост, там с -m miltiport и --dport 80 (8080 пока убрал).
Помню, было. Но сейчас нет. C "-m miltiport и --dport 80,8080" одновременно ругаться не должно. А вот дальше почему не работает... А у провайдера прокси настроен, как прозрачный ?

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Помню, было. Но сейчас нет. C "-m miltiport и --dport 80,8080" одновременно ругаться не должно. А вот дальше почему не работает... А у провайдера прокси настроен, как прозрачный ?
Без понятия... есть только адрес, который указал выше и порт.
Сноси Винду, переходи на Линукс ! :)

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 370
Без понятия... есть только адрес, который указал выше и порт.
Кажется, Squid не работает одновременно как прозрачный, и как обычный прокси... Если в настройках браузера указать адрес/порт, начинает работать ?

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Кажется, Squid не работает одновременно как прозрачный, и как обычный прокси... Если в настройках браузера указать адрес/порт, начинает работать ?
Если убрать PREROUTING из таблицы NAT — работает.
Сноси Винду, переходи на Линукс ! :)

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 370
Кажется, Squid не работает одновременно как прозрачный, и как обычный прокси... Если в настройках браузера указать адрес/порт, начинает работать ?
Если убрать PREROUTING из таблицы NAT — работает.
Ну да, это надо убрать при таком варианте. Раз работает, значит там сквид не настроен, как прозрачный... Это может быть проблемой. Можно попробовать сделать прозрачный сквид у себя, а его, в свою очередь, зацепить за провайдерский...
« Последнее редактирование: 11.05.2012 17:32:06 от asy »

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Ну да, это надо убрать при таком варианте. Раз работает, значит там сквид не настроен, как прозрачный... Это может быть проблемой. Можно попробовать сделать прозрачный сквид у себя, а его, в свою очередь, зацепить за провайдерский...
Хм... дак все равно же все это будет прозрачно и опять ничего не будет работать...
Ну то есть первая цепочка должна работать, а вторая опять не будет.
И как "завязать" прокси на прокси ума не приложу...
Сноси Винду, переходи на Линукс ! :)

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 370
Хм... дак все равно же все это будет прозрачно и опять ничего не будет работать...
Ну то есть первая цепочка должна работать, а вторая опять не будет.
И как "завязать" прокси на прокси ума не приложу...
Первый - прозрачный и ловит редирект от iptables, а второй, в обычном режиме, ловит запросы от первого. А как завязать... Смотреть squid.conf.documented в районе "TAG: cache_peer".


Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Надо подумать...

А по поводу ошибки, да это из-за того что squid работает в обычном режиме. Потому что на Кентавре включил прокси в обычном режиме (PREROUTING сделал на прокси Кентавра) и такая же ошибка вылазит. Как только дописал в /etc/squid/squid.conf transparent сразу же заработало. Значит у провайдера действительно прокси работает в обычном режиме. Попробую с ними созвониться, может просто забыли включить эту функцию...
« Последнее редактирование: 12.05.2012 09:57:24 от berkut_174 »
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Позвонил я провайдеру, ничего хорошего он мне не сказал, мол пока так, позже посмотрим...
Так что пришлось решать вопрос самому.
Последовал совету asy, про опцию cache_peer и все получилось! :)
На Кентавре 6 через web включил обычный прокси (на порте 3128) и после этого вручную дописал в squid.conf transparent (прозрачный).
Далее опять же в squid.conf добавил такую строчку:
cache_peer skf.umc74.ru parent 3128 3130 defaultПосле этого я перезапустил прокси-сервер:service squid restartИ в таблицу nat добавил:
iptables -t nat -A PREROUTING -i eth1 ! -d 192.168.112.0/24 -p tcp -m multiport \
--dport 80,8080 -j DNAT --to-destination 192.168.112.112:3128
Все. После этих манипуляция у меня все запросы уходят на прокси провайдера с СКФ!
Спасибо asy за подсказку!  ;)
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Некоторая поправка.
Строкуcache_peer skf.umc74.ru parent 3128 3130 defaultзаменить наcache_peer skf.umc74.ru parent 3128 0 no-query default
Но с такими настройками не открывались адреса запросов поиска, видимо какие-то символы в адресе запроса не воспринимались. Чтобы это исправить необходимо в конфиге squid'a в секции never_direct прописать (строка 4621)
never_direct allow allИ ещё разок перезапустить squid:
service squid restartВсе, можно наслаждаться! :D
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Вынужден поднять вопрос.
С какого-то момента перестало работать по схеме, которую описывал выше.
Запросы не уходят прозрачно, хотя в таблице NAT есть все та же строчка:iptables -t nat -A PREROUTING -i eth1 ! -d 192.168.112.0/24 -p tcp -m multiport \
--dport 80,8080 -j DNAT --to-destination 192.168.112.112:3128
Прокси настроен на прозрачный режим работы — transparent.
Если прописать мой прокси вручную в браузере, то все работает, т.е. родительский (прокси провайдера) прокси находит и запросы на него с моего прокси уходят.
Пробовал заново чистить таблицу NAT, через веб-интерфейс сбрасывал настройки шлюза, прокси, потом заново все настраивал по схеме, но не работает.
Кто, что может посоветовать ?

Сейчас стоят все обновления, сервер перезагружался.
С чего все началось, сказать не могу, но работало это все примерно полмесяца, потом чудным образом из таблицы NAT исчезла та самая строчкаiptables -t nat -A PREROUTING -i eth1 ! -d 192.168.112.0/24 -p tcp -m multiport \
--dport 80,8080 -j DNAT --to-destination 192.168.112.112:3128
но ее повторное добавление вопрос не решило.
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Если остановить свой прокси и прописать в браузере вручную прокси провайдера skf.umc74.ru:3128, то запросы уходят. И как писал выше, если включить свой прокси и "привязать" его к провайдерскому, то тоже работает.
В таблице это:iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  anywhere            !192.168.112.0/24    multiport dports http,webcache to:192.168.112.112:3128

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  anywhere             anywhere           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 
Ядро:uname -r
2.6.32-el-smp-alt31

Вообще порой что-то пытается загрузиться (без прописывания прокси вручную на клиентах), но очень медленно и часто не полностью. Только яндекс и можно открыть :-) Через https (например, регистрация на майл.ру) вовсе не пытается открывать...
Может что-то где-то почистить просто нужно ? Раньше же работало! Странно...
Сноси Винду, переходи на Линукс ! :)