LINUX.ORG.RU

Проблема в настройке прозрачного прокси на локальном хосте


0

0

Подскажите, пожалуйста как можно настроить прозрачный прокси для локальных процессов?
Т.е. необходимо перенаправить все пакеты, идущие в инет на порт 80 через прокси-сервер (3128).
Стандартное перенаправление:
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j REDIRECT --to-port 3128
не срабатывает, так как насколько я понимаю пакеты от локальных процессов не проходят цепочку PREROUTING
Как можно решить такую задачу?

PS
eth0 - локальная сеть (в данном случае не используется)
ppp0 - смотрит в инет
squid слушает порт 3128 только на локальных интерфейсах (lo, eth0)


Re: Проблема в настройке прозрачного прокси на локальном хосте

iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-port 3128

Black_Shadow ★★★★★ ()

Re: Проблема в настройке прозрачного прокси на локальном хосте

только тут интересный эффект будет наблюдаться: пакеты от прокси на 80 порт будут перенаправляться на локальный 3128 этому же прокси, и так в бесконечном цикле

Black_Shadow ★★★★★ ()

Re: Проблема в настройке прозрачного прокси на локальном хосте

Может все от имени процесса (браузера) направлять на 3128? Только, ЕМНИП, Iptables патчить придется.

ser_bur ★★ ()

Re: Проблема в настройке прозрачного прокси на локальном хосте

Хотелось бы обойтись без патчей. Так сказать стандартными методами. А пропатчить можно не только iptables но и ядро ;)

chief ()

Re: Проблема в настройке прозрачного прокси на локальном хосте

> Хотелось бы обойтись без патчей.

man iptables

...

owner
       This module attempts to match various characteristics of the packet creator, for locally-generated packets. It  is
       valid  in  the  INPUT,  OUTPUT  and POSTROUTING chains, however in the INPUT chain only TCP and UDP packets can be
       matched. Also note that some packets (such as ICMP ping responses) may have no owner, and hence never match.

       --uid-owner userid
              Matches if the packet was created by a process with the given effective user id.

       --gid-owner groupid
              Matches if the packet was created by a process with the given effective group id.

       --pid-owner processid
              Matches if the packet was created by a process with the given process id.

       --sid-owner sessionid
              Matches if the packet was created by a process in the given session group.

       --cmd-owner name
              Matches if the packet was created by a process with the given command name.  (this option is  present  only
              if iptables was compiled under a kernel supporting this feature)

ser_bur ★★ ()

Re: Проблема в настройке прозрачного прокси на локальном хосте

Про это я вкурсе.
Следующим этапом настройки как раз и хотел его применять для фильтрации трафика.
Только, пока что не получается выполнить первый шаг:
завернуть пакеты идущие от локальных процессов на прокси.

chief ()

Re: Проблема в настройке прозрачного прокси на локальном хосте

странно, что у тебя перенаправление не заработало, я проверял у себя, у меня работает

Black_Shadow ★★★★★ ()

Re: Проблема в настройке прозрачного прокси на локальном хосте

Я еще поэкспериментирую, но глубоко сомневаюсь, что что-то изменится
да и теоретически что-то не сходится ;(

мне кажется реально такое сделать, только создав, какой-нибудь виртуальный интерфес, через который прогонять весь трафик, а уже в нем делать переброс на порт прокси-сервера

chief ()

Re: Проблема в настройке прозрачного прокси на локальном хосте

Можно попробовать создать правило, которое для всех пакетов от сквида будет завершать цепочку, а для остальных второе правило - редирект.

Black_Shadow ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.