Локальный прозрачный прокси

У меня есть приложение, которое не поддерживает прокси, но мне нужно отправлять его трафик на локальный прокси. Я хочу настроить IPTABLES для прозрачного перенаправления трафика на заданный IP-адрес и ПОРТ (80) для перехвата и перенаправления на локальный прокси. К сожалению, все примеры, которые я нашел, предполагают, что прозрачный прокси установлен в GW, выполняющем NATTING. Можно ли перенаправить трафик на прозрачный прокси (SQUID) без NAT? Я был бы признателен за пример

3
задан 26 October 2017 в 17:09
3 ответа

Да, возможно. Вы можете использовать маршрутизацию политик на машине Linux для перенаправления трафика на прокси-сервер squid, как показано на на этой странице .

Подводя итог этапам:

  1. Установите правило управления в iptables, чтобы пометить трафик, который нужно перенаправить.
  2. Настройте другую таблицу маршрутизации с маршрутом по умолчанию к машине squid.
  3. Настройте IP-правило для использования новой определенной таблицы маршрутизации, когда пакет помечается в соответствии со значением, используемым в правиле Mangle.
  4. Убедитесь, что iptables разрешает трафик с IP-адресов клиентов на машину Squid.
3
ответ дан 3 December 2019 в 05:39

Нет, это невозможно. Если вы хотите перенаправить трафик, вы должны использовать nat:

 # iptables -A OUTPUT -t nat -p tcp --dport 80 -j DNAT --to 127.0.0.1:3128
2
ответ дан 3 December 2019 в 05:39

Выполните следующую команду, чтобы перенаправить весь трафик, направляемый (от локальных процессов) на порт 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 .

Кроме того, этот вопрос аналогичен другому, на который я ответил .

0
ответ дан 3 December 2019 в 05:39

Теги

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