Пример команды iptables для проброса порта из интернета в виртуалку
redirect port
linux
iptables-restore
rdp redirect
iptables
toucan
Пример команды iptables для проброса порта из интернета во внутреннюю виртуальную машину по адресу LAN:
echo 1 > /proc/sys/net/ipv4/ip_forward
Чтобы пересылка пакетов работала после перезагрузки надо
в файле /etc/sysctl.conf снять комментарий со строки:
#net.ipv4.ip_forward=1
Проверить: sysctl net.ipv4.ip_forward
Работающий пример: 144.76.100.244:110 \<---> 192.168.17.15:110 shelter\-\>regul
iptables -t nat -A PREROUTING --dst 144.76.100.244 -p tcp --dport 110 -j DNAT --to-destination 192.168.17.15
iptables -I FORWARD 1 -i eth0 -o vboxnet0 -d 192.168.17.15 -p tcp -m tcp --dport 110 -j ACCEPT
iptables -t nat -A POSTROUTING --dst 192.168.17.15 -p tcp --dport 110 -j SNAT --to-source 192.168.17.1
где:
192.168.17.1 - ip-адрес внутреннего интерфейса хост-машины корневой
192.168.17.15 - ip-адрес внутреннего интерфейса гостевой машины regul виртуалка
144.76.100.244 - внешний интернет сетевой интерфейс хост машины shelter
Сохранение правил файервола
# iptables-save >/etc/iptables.rules
Для восстановления при загрузке в /etc/network/interfaces добавьте строчку
pre-up iptables-restore \< /etc/iptables.rules
Для просмотра:
iptables -t nat -L --line-numbers
Для удаления 1-го правила из цепочки INPUT:
iptables -D INPUT 1
или еще пример:
iptables -t nat -D PREROUTING 1
---------------------------------------------------------------------
Проброс порта в Ubuntu Server с использованием ufw - NEW! 26.03.14
Допустим нам надо «пробросить» 80 tcp порт на локальную машину 192.168.1.1.
Убедимся что в файле /etc/ufw/sysctl.conf раскомментирована строка net/ipv4/ip_forward=1.
sudo nano /etc/ufw/before.rules
В самом верху, до секции *filter, добавляем:
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to 192.168.1.1:80
COMMIT
и перезапускаем ufw
# ufw disable
# ufw enable
Убедиться, что правила загрузились, можно выполнив
# iptables -L -nv -t nat
Вы должны увидеть
Chain PREROUTING policy ACCEPT 0 packets, 0 bytes
pkts bytes target prot opt in out source destination
0 0 DNAT tcp -- ppp0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:192.168.1.1:80
Проверил на связке bolter->marduk - работает, но при отключенном ufw!
Чтобы заработало при включенном ufw надо:
включить в файерволе форвардинг пакетов. Это необходимо, чтобы наш шлюз мог пересылать пакеты из внутренней сети в интернет и обратно.
Для этого отредактируем файл /etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT"
Вот теперь все заработало!
Пример проброса RDP-порта из хост-машины zilla 172.27.117.94 в ВМ KVM toucan 192.168.122.29
sudo iptables -t nat -A PREROUTING --dst 172.27.117.94 -p tcp --dport 3389 -j DNAT --to-destination 192.168.122.29
sudo iptables -I FORWARD 1 -i enp7s0 -o virbr0 -d 192.168.122.29 -p tcp -m tcp --dport 3389 -j ACCEPT
aizaro@mail.ru Last update 06.01.18