Я хочу предотвратить прямой доступ к своей машине с Windows и показать некоторые программы, работающие на ней, через мою машину Linux (которая снова доступна по общедоступному IP-адресу).
Есть ли способ, которым я могу настроить свою Linux-машину (например, IP = a.b.c.d)
направить все UDP
трафик, который он получает через определенный порт (скажем, 6667
) на мою машину Windows (скажем, IP = e.f.g.h
) в порту 6668
?
Да, как я могу это реализовать?
ОБНОВИТЬ
# bindadress bindport connectaddress connectport
192.168.2.45 6667 192.168.2.104 6668
# logging information
logfile /var/log/rinetd.log
# uncomment the following line if you want web-server style logfile format
logcommon
~
ОБНОВИТЬ
Я хочу проложить маршрут UDP
только трафик.
Установите rinetd. В этой программе вы можете легко настроить входящий и исходящий порт. Сначала установите программу. Затем измените /etc/rinetd.conf
Пример:
#bindadress bindport connectaddress connectport
a.b.c.d 6667 e.f.g.h 6668
http://brokestream.com/udp_redirect.html
Это из обсуждения в чате, которое фактически решило проблему
iptables -t nat -A PREROUTING -i $EXT_IF -p udp -d $EXT_IP --dport 53 -j DNAT --to-destination $INTERNAL_SERVER
and make sure you also have it allowed to pass through the FORWARD chain with something like
#forward traffic
iptables -A FORWARD -i $EXT_IF -o $INT_IF -p udp -d $INTERNAL_SERVER --dport 53 -j ACCEPT
#reply traffic
iptables -A INPUT -o $EXT_IF -i $INT_IF -p udp -s $INTERNAL_SERVER --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT
Да, это называется обратным NAT и является частью возможностей IpTables в Linux. Каждый приличный брандмауэр NATtins делает это для предоставления доступа к службам.