Как я могу использовать iptables для создания TCP-прокси между мной и внешним сервисом? - PullRequest
0 голосов
/ 09 февраля 2019

До сих пор мне удавалось перенаправлять TCP-соединения с определенным адресом назначения или портом в мою собственную программу с этим правилом iptables:

iptables -t nat -A OUTPUT -p tcp -d <address> --dport <port> -j REDIRECT --to <local_port>

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

Есть ли способ для iptables узнать, что такое исходное соединение, и только перенаправить его?Или есть лучший подход?

1 Ответ

0 голосов
/ 10 февраля 2019

Вы можете попробовать использовать модуль владельца и пропустить перенаправление трафика, приходящего с прокси.Проверьте --uid-owner или --pid-owner, вы сможете различать трафик на основе любого из них.

Как то так,

iptables -t nat -I OUTPUT -m owner -p tcp -d <address> --dport <port> --uid-owner <proxy-owner> -j ACCEPT
...