Я должен отправить пакеты через номер порта сервера 38xxx и затем получить пакеты с помощью протокола UDP от клиентского порта номер 48xxx. Как я могу реализовать это перенаправление портов для получения пакетов успешно? Я запускаю Ubuntu 16.04.
В моем брандмауэре я делаю несколько вещей создать прокси между моим основным компьютером и моими компьютерами Интранет:
Во ВПЕРЕД очереди, у меня есть что-то вроде этого:
iptables -A FORWARD -i eth0 -o eth1 -p tcp -m state --state ESTABLISHED,RELATED \
-m tcp ! -s 10.10.0.1 -d 10.10.1.2 ! --syn -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p udp -m state --state ESTABLISHED,RELATED \
-m udp ! -s 10.10.0.1 -d 10.10.1.2 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p icmp -m icmp --icmp-type any \
! -s 10.10.0.1 -d 10.10.1.2 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p tcp -m tcp -s 10.10.0.1 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p udp -m udp -s 10.10.0.1 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p icmp -m icmp --icmp-type any \
-s 10.10.0.1 -j ACCEPT
Я заметил, что наличие ICMP может помочь следовательно той строке. Если Вы не хотите поддерживать TCP, очевидно, не добавляйте что один.
Мой FORWARD
определения не включают спецификации порта, что означает, что все пакеты передаются, безотносительно порта. Попытайтесь добавить команду исходного и целевого порта как:
--sport 38000
--dport 43000
Если я корректен, необходимо посмотреть на многопортовую возможность включать диапазон портов (что-то вроде этого: -m multiport --dport 38000-38999
, это может быть двоеточие (:
) и не тире (-
) между запуском и спецификацией оконечного порта [так 38000:38999
].)
Затем в фильтре NAT, я добавляю команды POSTROUTING следующим образом:
iptables -t nat -A POSTROUTING -o eth1 -s 10.10.1.2 -j SNAT --to-source 10.10.0.1
IP-адрес в --to-source ...
должен быть на той же плате Ethernet, но это не должен быть тот же IP-адрес. Это практично, если у Вас есть статический IP-адрес. В моем случае я на самом деле имею eth0
с моим статическим IP-адресом и eth0:1
с 10.10.0.1
и это работает!