И так, что есть что:
192.168.0.4:80 - ip адрес ноутбука, стандартный порт Web сервера.
192.168.0.1 - шлюз в домашней сети.
ip:8080 - внешний ip шлюза и порт, с которого настроим переброс.
Перечитав нануал по iptables, понял что это откроет локальный порт 8080. Здесь нам это не требуется, поскольку наши пакеты не попадают в цепочку INPUT, а пройдут через FORWARD.
В простейшем случае у нас будет так:
iptables -P FORWARD ACCEPT
Затем введём подмену адреса назначения у всех пакетов, входящих на порт 8080 шлюза:
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.0.4:80
Подменим адрес инициатора соединения на ip шлюза. Без этого веб сервер на 192.168.0.4 будет пытаться отправить ответы напрямую компьютеру в интернете.
iptables -t nat -A POSTROUTING -p tcp -d 192.168.0.4 --dport 80 -j SNAT --to-source 192.168.0.1
Также включим (у меня это уже сделано) форвардинг пакетов:
echo 1 /proc/sys/net/ipv4/ip_forward
Проверяем. It works!
Этот комментарий был удален администратором блога.
ОтветитьУдалить