Главная > Linux > Пробрасывание порта средствами iptables внутрь локальной сети

Пробрасывание порта средствами iptables внутрь локальной сети


15 апреля 2009. Разместил: dimon
Нужно пробросить порт внутрь локальной сети (т.е. вывесить порт сервера, находящегося внутри локальной сети в сеть во-вне, на внешний IP) с помощью iptables.

Проброс в локальную сеть через шлюз по умолчанию (для машины куда он делается).

Исходные данные:
WAN_IP - внешний IP адрес
WAN_PORT - внешний порт
ETH1 - внешний сетевой интерфейс сервера
ETH0 - внутренний сетевой интерфейс сервера
COMP_IP - IP адрес машины (в локальной сети) на которую надо пробросить порт
COMP_PORT - собственно сам порт на локальной машине
xx.xx.xx.xx - IP адрес компа с которого мы будем подключаться

Необходимо в файл /etc/sysconfig/iptables добавить правила:

-A INPUT -s xx.xx.xx.xx -i ETH1 -p tcp -m tcp --dport WAN_PORT -j ACCEPT
-A FORWARD -s xx.xx.xx.xx -i ETH1 -p tcp -m tcp --dport WAN_PORT -j ACCEPT


Тут я немного не понял:
Везде написано, что достаточно правила FORWARD, однако у нас пакеты не попадали в остальные цепочки - сразу отбрасывались. Возможно из-за каких-то других настроек iptables. Поэтомы мы и дописали правило INPUT.

-s xx.xx.xx.xx - это дополнительная фильтрация входящих пакетов. Так мы сможем подключиться к WAN_IP:WAN_PORT только с ip=xx.xx.xx.xx. Сделано для повышения безопасности.

Теперь в таблице NAT нужно добавить правило (в файле /etc/sysconfig/iptables после строки *nat):

-A PREROUTING -p tcp -i ETH1 --dport WAN_PORT -j DNAT --to-destination COMP_IP:COMP_PORT


В соответствии с этим правилом, все пакеты, поступающие на WAN_PORT порт интерфейса ETH1 перенаправляются на наш внутренний компьютер COMP_IP:COMP_PORT.

Посмотрим получившиеся правила:
[root@srv /]# iptables -L -n -v
Chain PREROUTING (policy ACCEPT 394 packets, 28084 bytes)
pkts bytes target prot opt in out source destination
1 76 DNAT tcp -- eth1 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:WAN_PORT to:COMP_IP:COMP_PORT

Chain INPUT (2 references)
pkts bytes target prot opt in out source destination
893 58796 ACCEPT tcp -- * * xx.xx.xx.xx 0.0.0.0/0 tcp dpt:WAN_PORT

Вернуться назад