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)


Ответ на: комментарий от Black_Shadow

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

Black_Shadow ★★★★★
()
Ответ на: комментарий от chief

Да это правило если и заработает, то не спасёт. Бесконечный цикл получается.

Black_Shadow ★★★★★
()
Ответ на: комментарий от ser_bur

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

chief
() автор топика
Ответ на: комментарий от chief

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

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 ★★
()
Ответ на: комментарий от ser_bur

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

chief
() автор топика
Ответ на: комментарий от Black_Shadow

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

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

chief
() автор топика
Ответ на: комментарий от chief

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

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