Вопрос по linux – Как использовать iptables в linux для пересылки трафика http и https на прозрачный прокси [закрыт]

10

У меня есть система Ubuntu Linux, выступающая в качестве системы шлюза с двумя интерфейсами на нем. Один интерфейс предназначен для локальной сети, а другой - для Интернета. Я могу без проблем маршрутизировать трафик. Я использую дваiptables правила пересылки исходящего трафика из внутреннего интерфейса:

iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface eth1 -j ACCEPT

Теперь мне нужно создатьiptables правило, которое отфильтровывает и перенаправляет весь трафик TCP-порта 80 и 443, покидающий мою сеть черезeth1 интерфейс и отправить его на прокси-сервер, который находится на петлевой интерфейс на порт 9090 TCP.

Я искал по всему так, но я не смог найти пример, который работает. Есть ли эффективный способ сделать это?

Не по теме для SO; принадлежит на Ошибка сервера Jim Garrison

Ваш Ответ

2   ответа
14
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 9090

но это не имеет никакого смысла и бесполезно.

Прозрачные прокси могут использовать HTTPS, почему вы думаете, что они не могут? iNoob
Эй, господа, я думаю, что это правило просто изменит порт пакета, а не IP-адрес назначения пакета, не так ли? ajt
REDIRECT target перенаправляет пакет на локальный компьютер, ВСЕГДА Diego Woitasen
HTTPS прозрачный прокси: Tectut.com / 2015/08 / ... Jeryl Cook
Прокси добавляет ценность данных, покидающих сеть через прокси, единственную систему в большинстве случаев, которой разрешено общаться за пределами сети. Трафик https также может быть проверен через прокси-сервер, если вы ограничиваете его. Поэтому, конечно, есть ценность, это зависит от того, чего вы пытаетесь достичь. iNoob
1
iptables -t nat -A PREROUTING -i eth0 -s ! squid-box -p tcp --dport 80 -j DNAT --to squid-box:3128
iptables -t nat -A POSTROUTING -o eth0 -s local-network -d squid-box -j SNAT --to iptables-box
iptables -A FORWARD -s local-network -d squid-box -i eth0 -o eth0 -p tcp --dport 3128 -j ACCEPT

Кальмар ящик: ваш сервер squidлокальная сет: ваша сеть (в моем случае это 192.168.0.0/24 Iptables ящик: где находится ваше программное обеспечение iptables (обычно шлюз, в моем случае 192.168.1.1)

Первый отправляет пакеты в squid-box из iptables-box. Второй гарантирует, что ответ будет отправлен обратно через iptables-box, а не напрямую клиенту (это очень важно!). Последнее гарантирует, что iptables-box будет пересылать соответствующие пакеты в squid-box. Это может быть не нужно. YMMV. Обратите внимание, что мы указали '-i eth0', а затем '-o eth0', что означает входной интерфейс eth0 и выходной интерфейс eth0. Если ваши пакеты входят и выходят через разные интерфейсы, вам необходимо соответствующим образом настроить команды.

Добавьте эти команды в соответствующие сценарии запуска в /etc/rc.d

ОТ:http: //www.tldp.org/HOWTO/TransparentProxy-6.htm

Похожие вопросы