Пересылать входящие пакеты из порта 25565 внутреннему клиенту natted? IPTables
Недавно я научился использовать iptables, и я создал небольшую сеть nat в virtualbox. У меня есть сервер Debian Natting для внутренних клиентов. Один из внутренних клиентов - сервер Minecraft для тестирования.
То, что я хочу сделать, - это иметь любые входящие соединения, использующие порт 25565, идущий в eth0 от сервера debian, чтобы перенаправить их специально на внутренний сервер minecraft (192.168.200.4) из eth1. Как и в обычном маршрутизаторе Linksys.
То, что я придумал, но на самом деле не работает:
iptables -A FORWARD -i eth0 --dport 25565 -o eth1 -d 192.168.200.4 -j ACCEPT
Затем я прочитал об ошибках и других посторонних, что это на самом деле POSTROUTING/PREROUTING, что мне нужно использовать. тогда я попробовал:
iptables -t nat -A POSTROUTING -i eth0 -p tcp --dport 25565 -o eth1 -d 192.168.200.4 -j ACCEPT
Сейчас, очевидно, ничего из этого не работает, но я хочу знать, нахожусь ли я на правильном пути?
Вот схема виртуальной сети, так что вы можете увидеть ее визуально:
https://i.imgur.com/nj7pmK8.jpg
В настоящее время конфиг iptables выглядит следующим образом:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere tcp dpt:telnet
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Любые дополнительные детали будут с удовольствием добавлены:)
(Что-то в цепочке INPUT - это просто другие правила, с которыми я раньше связывался, изначально единственными правилами, которые у него были, были те, что были в цепочке FORWARD)
Это руководство, которое я использовал для NAT: http://www.revsys.com/writings/quicktips/nat.html
1 ответ
В вашей схеме ваш внешний IP неверен: 192.168.1.161
это внутренний IP.
У вас есть реальный внешний (публичный) IP-адрес: проверьте его, например, по http://www.whatismyip.com/ (надеюсь, он фиксированный).
Во-первых, вам нужно использовать PREROUTING
цепочка для DNAT вашего внешнего IP к вашему внутреннему IP:
iptables -t nat -A PREROUTING -p tcp -d $PUBLIC_IP --destination-port 25565 -j DNAT --to 192.168.200.4:25565
Затем вам нужно разрешить пересылку пакетов между интерфейсами от источника к цели:
iptables -A FORWARD -p tcp -i eth0 -o eth1 -d 192.168.200.4 --destination-port 25565 -m state --state NEW -j ACCEPT
Тем не менее, расскажите Google о том, как это сделать для веб-сервера, и вы найдете множество ресурсов (также на этом сайте). Логика остается прежней.