Как перенаправить трафик UDP по одному интерфейсу eth0 с одного порта на другой
Я пытаюсь следовать некоторым рекомендациям для пересылки трафика UDP, но, похоже, ничего не работает.
У меня есть сервер Syslog, отправляющий журналы в мой экземпляр Logstash (да, EC2) на порт 514.
Поскольку это привилегированный порт, и я не хочу давать привилегии JAVA для работы на непривилегированных портах из-за ограничений безопасности, мне нужно перенаправить трафик UDP с одного порта на другой порт на том же интерфейсе.
Я не использую петлевой интерфейс.
В целях тестирования я использую порт 1025 в качестве порта DST.
Во-первых, я генерирую трафик UDP внутри моей сети VPN с помощью nc, например:
nc -u xx.xx.xx.xx 1025
Где xx.xx.xx.xx - внутренний IP-адрес. Эта машина недоступна из Интернета.
Я могу видеть трафик, поступающий через порт 1025, используя tcpdump, вот так:
tcpdump -i eth0 UDP port 1025 -vv -X
Я хочу, чтобы этот трафик передавался в порт, скажем, 55514.
Моя таблица NAT выглядит так:
root@xx.xx.xx.xx:/home/ubuntu# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
REDIRECT udp -- anywhere anywhere udp dpt:1025 redir ports 55514
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
Тем не менее, я не вижу трафика на том же интерфейсе при использовании tcpdump:
root@xx.xx.xx.xx:/home/ubuntu# tcpdump -i eth0 UDP port 55514 -vv -X
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
Я прочитал десятки статей, пробовал различные правила, но я не могу просто заставить его работать.
Насколько я читал, PREROUTING не имеет смысла при использовании того же интерфейса.
Переадресация портов включена:
root@xx.xx.xx.xx:/home/ubuntu# cat /proc/sys/net/ipv4/conf/eth0/forwarding
1
Поскольку это экземпляр EC2, я отключил проверку src/dest, но, опять же, трафик не покидает эту машину, поэтому он не должен быть релевантным.
РЕДАКТИРОВАТЬ:
Машина Ubuntu 16.04.6 LTS.
РЕДАКТИРОВАТЬ:
root@xx.xx.xx.xx:/home/ubuntu# iptables -L -t nat -v -n
Chain PREROUTING (policy ACCEPT 156 packets, 34827 bytes)
pkts bytes target prot opt in out source destination
5 163 REDIRECT udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:1025 redir ports 55514
0 0 REDIRECT udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:1025 redir ports 6363
Chain INPUT (policy ACCEPT 157 packets, 34861 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 13 packets, 1201 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 13 packets, 1201 bytes)
pkts bytes target prot opt in out source destination