1

Мне нужно установить TCP-соединение, где клиент подделывает свой IP для всего исходящего трафика. Моей первой попыткой было добавить правило в цепочку POSTROUTING следующим образом:

iptables -t nat -A POSTROUTING -p tcp --dport 5555 -j SNAT --to-source 192.168.1.1

Это работает для пакета SYN, но не перехватывает и перезаписывает ACK, приходящий от клиента. Насколько я понимаю, это потому, что ACK проходит только через цепочку OUTPUT, никогда не нажимая на POSTROUTING. Моя следующая попытка состояла в том, чтобы использовать xtables-addons и сделать сырой SNAT следующим образом:

iptables -t raw -A OUTPUT -p tcp --dport 5555 -j RAWSNAT --to-source 192.168.1.1

iptables выдает ошибку в этой команде в зависимости от цели. Я полагаю, что это основано на цели, потому что работают -j DROP и -j ACCEPT. На странице man конкретно сказано, что RAWSNAT действителен в цепочке OUTPUT, и я проверил, что модуль xt_nat.ko загружен ....

У кого-нибудь есть понимание того, что происходит с RAWSNAT, или есть способ заставить ВСЕ исходящий трафик соединения проходить через цепочку POSTROUTING в таблице nat? Я не смог выяснить, могут ли MARK или CONNMARK помочь мне здесь, основываясь на документации, которую я прочитал.

1 ответ1

0

У меня та же проблема, и я нашел ссылку https://github.com/nawawi/xtables-addons/commit/9414a5df343bf30ba13e76dbd7181c55683b11cb. С 2013 года расширение RAWSNAT/RAWDNAT было удалено из дополнений xtables.

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