Форум русскоязычного сообщества Ubuntu


Автор Тема: Прозрачная прокси в Squid3  (Прочитано 2742 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн vovanking

  • Автор темы
  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Прозрачная прокси в Squid3
« : 28 Июля 2016, 13:29:16 »
Добрый день!
Пытаюсь настроить прозрачную прокси на squid. Прокси находится не на шлюзе. Правила IPTABLES:

$IPTABLES -A PREROUTING -t nat -i eth1.8 -p tcp --dport 80 -j DNAT --to-destination 172.17.2.211:3128
 -  здесь заруливаю http трафик на сквид

Конфиг прокси:
(Нажмите, чтобы показать/скрыть)
В итоге трафик заруливается на сквид, но что я вижу в его логах:
1469701054.981  26158 172.17.8.111 TCP_MISS_ABORTED/000 0 GET http://ya.ru/ - HIER_DIRECT/172.17.2.211 -
1469701138.056  59901 172.17.8.111 TCP_MISS/503 3999 GET http://fanat1k.ru/ - HIER_DIRECT/172.17.2.211 text/html

то есть сквид пытается обратиться почему-то сам к себе, а не на ip сайта. естесственно, у него ничего не выходит.
Где я накосячил, подскажите, пожалуйста?



_____________________________

Цитата: Правила форума
1.4. Листинги и содержимое текстовых файлов следует добавлять в сообщение с помощью тегов [spoiler]...[/spoiler] или [code]...[/code], либо прикреплять к сообщению в виде отдельного файла.

~ Punko


И вы не в том разделе топик создали, перенесу.
« Последнее редактирование: 28 Июля 2016, 14:04:05 от Punko »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Прозрачная прокси в Squid3
« Ответ #1 : 28 Июля 2016, 14:33:51 »
исключите адрес шлюза из правила для перенаправления траффика (с помощью дополнительного фильтра например)

ЗЫ И представленная строка не является правилом - это команда загрузки правила в ядро.
« Последнее редактирование: 28 Июля 2016, 14:35:30 от fisher74 »

Оффлайн vovanking

  • Автор темы
  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Re: Прозрачная прокси в Squid3
« Ответ #2 : 28 Июля 2016, 15:02:34 »
исключите адрес шлюза из правила для перенаправления траффика (с помощью дополнительного фильтра например)

ЗЫ И представленная строка не является правилом - это команда загрузки правила в ядро.

Извините, а можно чуточку поподробнее по первому пункту? Я админ еще довольно таки начинающий. Могу не понимать очевидные для вас вещи :)

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Прозрачная прокси в Squid3
« Ответ #3 : 28 Июля 2016, 16:36:19 »
Можно.
Описанная Вами команда добавления правила содержит саму собственно команду и параметры этого правила.

Что такое правило netfilter? Это какое должно произвести действие ядро (в частности netfilter) в случае если пакет удовлетворяет тем или иным условиям. Для того чтобы определить подходит пакет под эти условия необходимо указать фильтр(ы) по которому будут отсеиваться необходимые пакеты. Фильтр-условие может быть простым и составным. У Вас оно уже составное, но никто не мешает добавить ещё одно условие для фильтра

Оффлайн vovanking

  • Автор темы
  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Re: Прозрачная прокси в Squid3
« Ответ #4 : 28 Июля 2016, 16:51:22 »
Можно.
Описанная Вами команда добавления правила содержит саму собственно команду и параметры этого правила.

Что такое правило netfilter? Это какое должно произвести действие ядро (в частности netfilter) в случае если пакет удовлетворяет тем или иным условиям. Для того чтобы определить подходит пакет под эти условия необходимо указать фильтр(ы) по которому будут отсеиваться необходимые пакеты. Фильтр-условие может быть простым и составным. У Вас оно уже составное, но никто не мешает добавить ещё одно условие для фильтра

Спасибо, но не очень понимаю, откуда мне удалять адрес шлюза. Адрес шлюза у меня 172.17.8.100 (для сети юзеров). 172.17.2.211 - это адрес машины на которой стоит сквид. Соответственно, я перенаправляю все запросы по 80 порту из сети 172.17.8.0/24 на порт 3128 сквида. Он эти пакеты получает, но дальше действует некорректно. Пытаясь отправить их самому себе. Если проксю делать непрозрачной, то все отлично работает.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Прозрачная прокси в Squid3
« Ответ #5 : 28 Июля 2016, 20:47:10 »
Поправлюсь, нужно в исключение добавлять не адрес шлюза, а адрес прокси-сервера. Извините.

я перенаправляю все запросы по 80 порту из сети 172.17.8.0/24
Условия в Вашем правиле несколько по другому описаны.

ЗЫ и учитесь уже квотить.

Оффлайн vovanking

  • Автор темы
  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Re: Прозрачная прокси в Squid3
« Ответ #6 : 29 Июля 2016, 10:10:34 »
Поправлюсь, нужно в исключение добавлять не адрес шлюза, а адрес прокси-сервера. Извините.

я перенаправляю все запросы по 80 порту из сети 172.17.8.0/24
Условия в Вашем правиле несколько по другому описаны.



ЗЫ и учитесь уже квотить.

Просьба тогда для глупого написать, как вы видите это правило. Да, у меня в правиле не указана подсеть, а указан виртуальный интерфейс. Но ведь дело явно не в этом. Я пробовал оба варианта.
Вообще, у меня есть глубокая уверенность, что дело не в iptables. А в каких-то грехах в конфиге сквида.
« Последнее редактирование: 29 Июля 2016, 10:12:05 от vovanking »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Прозрачная прокси в Squid3
« Ответ #7 : 29 Июля 2016, 10:37:07 »
Просьба тогда для глупого написать, как вы видите это правило.
Хотите навсегда таким остаться? Тогда пожалуйста, мне не жалко.
(Нажмите, чтобы показать/скрыть)

Оффлайн vovanking

  • Автор темы
  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Re: Прозрачная прокси в Squid3
« Ответ #8 : 29 Июля 2016, 11:01:30 »
Просьба тогда для глупого написать, как вы видите это правило.
Хотите навсегда таким остаться? Тогда пожалуйста, мне не жалко.
(Нажмите, чтобы показать/скрыть)


Каюсь, не предоставил всех начальных условий. На интерфейсе eth1.8 висит сеть 172.17.8.0/24. Сеть 172.17.2.0/24 на интерфейсе eth2. Соответственно, мое изначальное правило и так не распространялось на адрес сквида 172.17.2.211. (Для чистоты эксперимента я попробовал ваш вариант, результат прежний) Между этими сетями маршрутизация есть, но без ната.

1469779003.297  59975 172.17.8.111 TCP_MISS/503 3999 GET http://fanat1k.ru/ - HIER_DIRECT/172.17.2.211 text/html
1469779074.573    430 172.17.8.111 TCP_MISS_ABORTED/000 0 GET http://ya.ru/ - HIER_DIRECT/172.17.2.211 -
1469779089.309  59658 172.17.8.111 TCP_MISS/503 3999 GET http://fanat1k.ru/ - HIER_DIRECT/172.17.2.211 text/html
1469779134.315  59715 172.17.8.111 TCP_MISS/503 4031 GET http://ya.ru/ - HIER_DIRECT/172.17.2.211 text/html
1469779195.281  60255 172.17.8.111 TCP_MISS/503 3979 GET http://ya.ru/favicon.ico - HIER_DIRECT/172.17.2.211 text/html

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Прозрачная прокси в Squid3
« Ответ #9 : 29 Июля 2016, 11:57:58 »
О. сорри... Вы хотите режим tproxy. Тут простой фильтрацией, в случае работы кальмара вне шлюза, не обойдётся.
Вам точно нужен именно этот режим?  intercept чем не угодил?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28358
    • Просмотр профиля
Re: Прозрачная прокси в Squid3
« Ответ #10 : 29 Июля 2016, 12:05:24 »
-i eth1.8
На сколько я помню, iptables работает только с голыми интерфейсами.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Прозрачная прокси в Squid3
« Ответ #11 : 29 Июля 2016, 12:17:02 »
vlan тоже почти голый интерфейс )

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28358
    • Просмотр профиля
Re: Прозрачная прокси в Squid3
« Ответ #12 : 29 Июля 2016, 12:26:46 »
Почти… Тем не менее, у iptables свои представления об этом.
Отчасти поэтому я перешёл на iproute2.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн vovanking

  • Автор темы
  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Re: Прозрачная прокси в Squid3
« Ответ #13 : 29 Июля 2016, 12:32:48 »
О. сорри... Вы хотите режим tproxy. Тут простой фильтрацией, в случае работы кальмара вне шлюза, не обойдётся.
Вам точно нужен именно этот режим?  intercept чем не угодил?

Я почитал описания этих режимов и не понял разницы. Кто-то пишет, что они идентичны, кто-то пишет, что нет. При intercept происходит другая ошибка. в access.log пусто, зато в cache.log

2016/07/29 12:32:25|  NF getsockopt(SO_ORIGINAL_DST) failed on local=172.17.2.211:3128 remote=172.17.8.111:1629 FD 10 flags=33: (92) Protocol not available
2016/07/29 12:32:26|  NF getsockopt(SO_ORIGINAL_DST) failed on local=172.17.2.211:3128 remote=172.17.8.111:1630 FD 10 flags=33: (92) Protocol not available

Пользователь добавил сообщение 29 Июля 2016, 12:42:34:
-i eth1.8
На сколько я помню, iptables работает только с голыми интерфейсами.
Дело в том, что машинка с кальмаром висит на другом физическом интерфейсе. eth2. eth1 поделен на подинтерфейсы под vlanы. но сквид физически на другом.
« Последнее редактирование: 29 Июля 2016, 12:42:34 от vovanking »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Прозрачная прокси в Squid3
« Ответ #14 : 29 Июля 2016, 13:34:49 »
если бы они были идентичны, то разрабы давно бы исключили что-либо из них. tproxy, в моём понимании, устроено таким образом, что запросы к ресурсам кальмар засылает от имени источника запроса, т.е. IP-source = IP клиента, Поэтому шлюз, его и пересылает снова кальмару. Правда есть не стыковка по условию интерфейса, но ... возможно я не совсем верно понимаю механизм работы tproxy ))).

Добавьте строку
http_port 3129

 

Страница сгенерирована за 0.032 секунд. Запросов: 25.