Добрый день, имеется:
1. VPS с работающим OpenVPN сервером
2. Клиент сети подключенный к VPS
Зачем:
Предоставление доступа к сервисам локальной сети находящейся за NAT провайдера.
Структура:
venet0:0 - интерфейс VPS смотрящий в интернет с адресом XXX.XXX.XXX.XXX
tun0 - интерфейс OpenVPN с адресом YYY.YYY.YYY.YYY
Так как OpenVPN имеет не совсем удобный для простого обывателя алгоритм подключения(установка клиента, выдача сертификатов и прочее) был установлен PPTPD на сервер внутри локальной сети(той что за NAT), данный сервер необходимо выпустить в интернет по средствам VPS. Работоспособность самого PPTPD проверена внутри сети, все все работает и подключается, но при пробросе порта 1723 на VPS, на сервер YYY.YYY.YYY.YYY:1723 и попытке подключения к PPTPD по адресу VPS, XXX.XXX.XXX.XXX:1723 - работать отказывается. Стоит экран ufw на VPS - проверил, порты открыл.
Пробрасывал так:
iptables -t nat -A PREROUTING --dst YYY.YYY.YYY.YYY -p tcp --dport 1723 -j DNAT --to-destination XXX.XXX.XXX.XXX
iptables -I FORWARD 1 -i venet0:0 -o tun0 -d XXX.XXX.XXX.XXX -p tcp -m tcp --dport 1723 -j ACCEPT
iptables -t nat -A POSTROUTING --dst XXX.XXX.XXX.XXX -p tcp --dport 1723 -j SNAT --to-source YYY.YYY.YYY.YYY
iptables -t nat -A OUTPUT --dst YYY.YYY.YYY.YYY -p tcp --dport 1723 -j DNAT --to-destination XXX.XXX.XXX.XXX
iptables -t nat -A POSTROUTING -s XXX.XXX.XXX.XXX -o tun0 -j MASQUERADE
iptables -t nat -A PREROUTING --dst YYY.YYY.YYY.YYY -p tcp --dport 1723 -j DNAT --to-destination XXX.XXX.XXX.XXX
iptables -I FORWARD -i venet0:0 -o tun0 -d XXX.XXX.XXX.XXX -p tcp -m tcp --dport 1723 -j ACCEPT
XXX.XXX.XXX.XXX - адрес на туннеле, сервера локальной сети
YYY.YYY.YYY.YYY -внешний адрес VPS
tun0 - имя интерфейса туннеля
venet0:0 - имя интерфейса смотрящего в глабольную сеть на VPS
Система на VPS Debian 9.8
Только пожалуйста более простым языком, терпеть не могу iptables, никогда с ним не дружил.:(