Белый IP через OpenVPN на VDS

Изначальной задачей было сделать доступ из любой точки мира к домашнему серверу на Raspberry PI. Но данная инструкция универсальна, так как технология OpenVPN есть на всех платформах и ОС.

Устанавливаем на VDS сервер OpenVPN командой:

wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh

Источник скрипта:

GitHub - Nyr/openvpn-install: OpenVPN road warrior installer for Ubuntu, Debian, CentOS and Fedora
OpenVPN road warrior installer for Ubuntu, Debian, CentOS and Fedora - GitHub - Nyr/openvpn-install: OpenVPN road warrior installer for Ubuntu, Debian, CentOS and Fedora

Устанавливаем клиент OpenVPN на Raspberry PI командой:

sudo apt install openvpn

Подключаемся к VPN серверу:

sudo openvpn client.ovpn

Переходим обратно к VDS. Нужно включить перенаправление портов на уровне ядра:

sysctl net.ipv4.ip_forward=1

Для проброса портов используем утилиту iptables, она встроена в большинство дистрибутивов Linux.

Правила будут выглядеть следующим образом:

iptables -A FORWARD -i ens3 -o tun0 -p tcp -m tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j ACCEPT
iptables -t nat -A PREROUTING -i ens3 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.8.0.2
Где, 80 порт который мы хотим перенаправить, 10.8.0.2 адрес куда хотим перенаправить трафик, ens3 интерфейс публичного сервера (маршрутизатора).