У меня проблема с iptables из-за моего небольшого количества участия в нем.

У меня есть настройка выходного реле TOR, и я пытаюсь перенаправить весь локальный трафик и трафик TOR, чтобы он выходил из моего ящика через порт 8080.

В настоящее время у меня установлено:

-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080

Но это только перенаправляет временный трафик, когда я действую как маршрутизатор, а не как трафик, исходящий из коробки.

1 ответ1

0

Не комментируя TOR, так как у меня мало знаний.

Но для цели iptables, вот она. PREROUTING включает в себя маршрутизацию. При инициации соединения из локальной системы вы не маршрутизируете. Вы просто должны использовать OUTPUT вместо / в дополнение к PREROUTING .

Область применения REDIRECT:

REDIRECT
Эта цель действительна только в таблице nat, в цепочках PREROUTING и OUTPUT и в пользовательских цепочках, которые вызываются только из этих цепочек. Он перенаправляет пакет на саму машину, изменяя IP-адрес назначения на основной адрес входящего интерфейса (локально сгенерированные пакеты сопоставляются с адресом localhost, 127.0.0.1 для IPv4 и ::1 для IPv6).

Так:

iptables -t nat -A OUTPUT -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080

РЕДАКТИРОВАТЬ:

Чтобы избежать перенаправления конкретного пользователя или группы (например, чтобы избежать бесконечного цикла со службой на порту 8080), вы можете сделать это (например, для службы, работающей с эффективной группой tor) вместо вышеупомянутого:

iptables -t nat -N OUTPUT intercept
iptables -t nat -A OUTPUT -p tcp -m tcp --dport 80 -j intercept
iptables -t nat -A intercept -m owner --gid-owner tor -j RETURN
iptables -t nat -A intercept -j REDIRECT --to-ports 8080

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .