У меня есть приложение, которое не поддерживает прокси, но мне нужно отправлять его трафик на локальный прокси. Я хочу настроить IPTABLES на прозрачное перенаправление трафика на заданный IP-адрес и ПОРТ (80) для перехвата и перенаправления на локальный прокси. К сожалению, все примеры, которые я нашел, предполагают, что прозрачный прокси установлен в GW, выполняющем NATTING. Можно ли перенаправить трафик на прозрачный прокси (SQUID) без NAT? Я был бы признателен за пример
Да, это возможно. Вы можете использовать маршрутизацию политик на Linux-машине для перенаправления трафика на прокси-сервер squid, как показано на эта страница.
Подводя итог этапам:
Нет, это невозможно. Вы должны использовать nat, если хотите перенаправить трафик:
# iptables -A OUTPUT -t nat -p tcp --dport 80 -j DNAT --to 127.0.0.1:3128
Выполните следующую команду, чтобы перенаправить весь трафик, направляемый на порт 80 (от локальных процессов):
sudo iptables -t nat -A OUTPUT -p tcp \
-m owner ! --uid-owner root --dport 80 \
-j REDIRECT --to-port 8080
Затем убедитесь, что ваш локальный прокси-процесс работает от имени пользователя root. Это сделано для того, чтобы прокси-сервер не перенаправлял трафик на себя. Если вы не хотите запускать прокси от имени пользователя root, запустите его от имени другого пользователя и отредактируйте команду iptables, чтобы изменить root
на новое имя пользователя.
Команда предполагает, что ваш прокси-сервер прослушивает порт 8080.
Кроме того, этот вопрос похож на другой, который Я ответил.