Назад | Перейти на главную страницу

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

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

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

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

  1. Настройте правило mangle в iptables, чтобы отмечать перенаправляемый трафик.
  2. Настройте другую таблицу маршрутизации с маршрутом по умолчанию к машине squid.
  3. Установите IP-правило для использования новой определенной таблицы маршрутизации, когда пакет помечается в соответствии со значением, используемым в правиле Mangle.
  4. Убедитесь, что iptables разрешает трафик с IP-адресов клиентов на машину 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.

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