У нас есть система, которая принимает ловушки с разных устройств.
Поскольку система не запускается (и не может работать) как root
, он прослушивает порт, отличный от порта по умолчанию (в нашем случае 2162 вместо 162).
Проблема в том, что некоторые из устройств, которыми мы управляем, всегда отправляют свои ловушки на порт 162 по умолчанию.
Поэтому нам нужно перенаправить ловушки, поступающие на порт 162, на порт 2162.
Я пробовал следующее, но это не работает (ничего не пересылает):
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 162 -j REDIRECT --to-port 2162
iptables -A FORWARD -p udp --dport 2162 -j ACCEPT
Я инженер-программист, а не системный администратор, и очень мало знаю о iptables, сетях, NAT и т. Д.
Я немного погуглил приведенные выше утверждения.
Поскольку отправитель UDP-пакета очень важен, мы не можем просто создать небольшой процесс, работающий от имени root, который принимает ловушки на порт 162 и создает новые, отправляя их на порт 2162.
Это изменит адрес отправки.
Выход iptables -t nat -L -n -v
является:
Chain PREROUTING (policy ACCEPT 11339 packets, 2709K bytes)
pkts bytes target prot opt in out source destination
0 0 DNAT udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:162 to::2162
0 0 DNAT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:162 to:163.162.154.208:2162
0 0 REDIRECT udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:162 redir ports 2162
0 0 REDIRECT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:162 redir ports 2162
0 0 DNAT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:162 to:163.162.154.208:2162
0 0 DNAT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:162 to::2162
0 0 DNAT udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:162 to::2162
Chain POSTROUTING (policy ACCEPT 80991 packets, 5033K bytes)
pkts bytes target prot opt in out source destination
5 470 SNAT udp -- * * 0.0.0.0/0 163.162.154.208 udp dpt:2162 to:163.162.154.208
Chain OUTPUT (policy ACCEPT 80993 packets, 5033K bytes)
pkts bytes target prot opt in out source destination
Пока на выходе iptables -L -n -v
является:
Chain INPUT (policy ACCEPT 3372K packets, 561M bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT udp -- * * 0.0.0.0/0 163.162.154.208 udp dpt:2163
0 0 ACCEPT udp -- * * 0.0.0.0/0 163.162.154.208 udp dpt:2162
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:2162
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:162
0 0 ACCEPT udp -- * * 0.0.0.0/0 163.162.154.208 udp dpt:2162 state NEW,RELATED,ESTABLISHED
Chain OUTPUT (policy ACCEPT 3349K packets, 733M bytes)
pkts bytes target prot opt in out source destination
Выход netstat -lnup | grep 2162
является:
udp 0 0 :::2162 :::* 13871/java