Я пытаюсь следовать некоторым рекомендациям по пересылке 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