Использование iptables для изменения порта назначения

StackOverflow https://stackoverflow.com/questions/242772

  •  04-07-2019
  •  | 
  •  

Вопрос

Можно ли изменить порт назначения пакета UDP с помощью iptables?

Я пытаюсь заставить агента SNMP отправлять ловушки на номер 1620 вместо 162.К сожалению, пока мне удалось изменить только исходный порт:

iptables -t nat -A POSTROUTING -p udp --dport 162 -j SNAT --to :1620

Это было полезно?

Решение

Такое использование, очевидно, не поддерживается.Взято из http://www.netfilter.org/documentation/HOWTO/NAT-HOWTO.txt:

6.3.7.Изменение места назначения локально созданных соединений

Код NAT позволяет вставлять DNAT в цепочке OUTPUT, но
Это не полностью поддерживается в версии 2.4 (это может быть, но для этого требуется новый
конфигурационный вариант, некоторое тестирование, и изрядное количество кодирования, так что, если только кто-то нанимает Расти написать его, я не ожидал бы этого в ближайшее время).

В настоящее время ограничение заключается в том, что вы можно только изменить место назначения на
локальная машина (например.'j DNAT --to 127.0.0.1'), а не на какую-либо другую машину, в противном случае ответы не будут быть правильно переведенным.

Другие советы

Предполагая, что вы знаете, на какую машину вы отправляете:

iptables -t nat -A OUTPUT -p udp --dport 162 -j DNAT --to-destination <dest-ip>:1620

вы можете перенаправить 162 на 1620

iptables -t nat -A PREROUTING -p UDP --dport 162 -j REDIRECT --to-port 1620

@PiedPiper был прав. С помощью DNAT вы должны указать IP-адрес, но мы хотим только перенаправить порт, поэтому в этом случае может работать -j REDIRECT.

См. http: //www.netfilter. .org / документация / HOWTO // NAT-HOWTO-6.html # ss6.2

Вместо создания SNAT попробуйте использовать DNAT. Исходный порт изменяется, потому что SNAT означает SourceNAT, поэтому DNAT будет работать для вас.

Вы можете настроить правило перенаправления, а затем повторно внедрить пакет с измененным портом.

Я делал это некоторое время назад в Mac OS X, но в Linux это тот же принцип: http: //blog.dv8. ро / 2006/08 / с использованием-переадресации розетки-на-макинтош-Os-x.html

Вам нужно создать очень простой прозрачный прокси.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top