Перенаправление всего трафика на прозрачный прокси.

Я хочу перенаправить весь трафик с моего экземпляра на другой экземпляр, на котором работает прозрачный прокси-сервер squid, используя правила IP-таблиц и НЕ изменяя маршрут экземпляра по умолчанию.

это делается в цепочке POSTROUTING? что за действие? SNAT? MASQUERADE?

У кого-нибудь есть рабочий пример?

Я пробовал это:

iptables -t nat -A PREROUTING -p tcp -m multiport \
  --dports 80,443,2323 -j DNAT --to-destination squid-ip:3128

iptables -t nat -A POSTROUTING -o ens5 -j MASQUERADE

Что явно не работает. Спасибо.

0
задан 3 May 2021 в 16:01
1 ответ

Это невозможно легко сделать с помощью iptables; позвольте мне дать вам некоторое представление. Прозрачный прокси сидит между пользователем и интернетом, и перехватывает все пакеты, которые проходят через него. Чтобы это работало (в нормальном сценарии), прозрачный прокси смотрит на адрес источника и назначения и выполняет все шаги, необходимые для открытия соединения.

Теперь позвольте мне рассказать вам, почему iptables не является хорошим выбором для ваших требований.

  • DNAT (изменение IP-адреса назначения) - плохая идея, потому что прозрачный прокси больше не будет знать, для какого адресата предназначен пакет.
  • MASQUERADE бесполезен в этом случае, потому что это цель скрыть исходные подсети, к которым у сети назначения нет маршрута (обычно это делается на домашнем маршрутизаторе, чтобы скрыть частные подсети от интернета)
  • SNAT будет еще хуже, потому что изменение IP источника приведет к тому, что шлюз будет посылать ответы на неправильный ip...

Что вам действительно нужно, так это динамически менять шлюз для выбранного вами трафика. Динамическая маршрутизация - это сложная тема, которую я не буду здесь рассматривать. Возможно, вам стоит подумать об изменении шлюза по умолчанию, это было бы самым простым решением... Или разместите два маршрута, как здесь:

route add -net 0.0.0.0/1 gw <squid_ip>
route add -net 128.0.0.0/1 gw <squid_ip>

Таким образом, ваш шлюз по умолчанию останется на месте, даже если он больше не используется. Но после удаления этих двух маршрутов, ваш шлюз по умолчанию снова в работе...

0
ответ дан 7 May 2021 в 20:23

Теги

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