Home

Tags

Проброс порта на другой комп, iptables

2010-02-13 iptables linux

В примере показано как можно пробросить порт rdp(3389) на хост другой подсети

192.168.100.1 - внешний ip, eth1
192.168.1.1 - внутренний ip, eth0

iptables -t nat -A PREROUTING -p tcp -d 192.168.100.1 --dport 3389 -j DNAT --to-destination 192.168.1.1:3389
iptables -A FORWARD -i eth1 -o eth0 -d 192.168.1.1 -p tcp --dport 3389 -j ACCEPT


Проброс в одной локальной сети

Сервер А на который обращается клиент: 172.16.111.2, port 21
Сервер В куда пересылаем трафик: 172.16.36.5, port 10021
iptables -t nat -A PREROUTING -p tcp -d 172.16.111.2 --dport 21 -j DNAT --to-destination 172.16.36.5:10021
iptables -t nat -A POSTROUTING -p tcp --dst 172.16.36.5 --dport 10021 -j SNAT --to-source 172.16.111.2
iptables -A FORWARD -d 172.16.36.5 -p tcp --dport 10021 -j ACCEPT

Описание:
Пакет прилетает на сервер А в цепочку PREROUTING, правило (DNAT) изменяет адрес назначения с 172.16.11.2:21 на 172.16.36.5:10021.
Таким образом пакет не попадает на сервер А, и переходит в цепочку POSTROUTING, тут мы меняем исходящий адрес (SNAT) с адреса клиента на адрес сервера А 172.16.111.2, что-бы сервер В отправил ответный пакет на сервер А.
3 правило пропускает пакет модифицированный правилом 1.