Здравствуйте. Бьюсь над проблемой уже много дней вместе с Гуглом.
- Имеется организация, в ней локальная сеть с сервером на Windows Server 2008. Организация за NAT провайдера. Возникла необходимость организовать доступ в локальную сеть через VPN. На локальном сервере Windows установлена Softether VPN, порт 5555.
- Есть слабый VPS сервер, на нем стоит Ubuntu 18.04 LTS Server. Данный VPS планируется использовать для создания туннеля за NAT провайдера.
Сначала изучал тему проброса портов через SSH туннель. Настроил, запустил, все работает, но низкая скорость соединения.
Далее решил попробовать сделать так:
- Поднял сервер Softether VPN на VPS (порт 443 только для настройки).
- Включил поддержку L2TP без шифрования (порт 1701)
- Создал tap_vpn 192.168.2.1, создал локальный мост между хабом и tap_vpn.
- На Windows сервере создал соединение L2TP. IP 192.168.2.2
P.S. еще на VPS сервере пришлось поднять dhcp, без него Windows не хотел подключаться, хотя я пробовал прописывать статические IP.
Все подключается, адреса 192.168.2.1 и 192.168.2.2 пингуются.
Примерная схема такая: [VPS, Ubuntu, eth0, Внешний_IP:5555] <-> [Ubuntu, tap_vpn, 192.168.2.1:5555] <- L2TP -> [Windows, 192.168.2.2:5555]
Через ufw открыл порты 5555, 443, 1701.
Проброс порта 5555 сделал так (подсказал Гугл):
iptables -t nat -A PREROUTING --dst ВНЕШНИЙ_IP -p tcp --dport 5555 -j DNAT --to-destination 192.168.2.2
iptables -t nat -A POSTROUTING --dst 192.168.2.2 -p tcp --dport 5555 -j SNAT --to-source 192.168.2.1
iptables -t nat -A OUTPUT --dst ВНЕШНИЙ_IP -p tcp --dport 5555 -j DNAT --to-destination 192.168.2.2
iptables -I FORWARD 1 -i eth0 -o tap_vpn -d 192.168.2.2 -p tcp -m tcp --dport 5555 -j ACCEPT
Softether VPN клиент(виртуальная машина, Windows XP) подключается, DHCP на Windows сервере присваивает корректно IP адрес, DNS, адрес шлюза. Могу посмотреть расшаренные папки на Windows сервере, но при попытке, например, скопировать файл из расшаренной папки соединение падает.