Dostęp do usług QNAP bez publicznego adresu IP -> QVR Pro

Dostęp do usług QNAP bez publicznego adresu IP -> QVR Pro

I tym razem z pomocą przychodzi nam ArubaCloud z swoją ofertą VPS… Oczywiście możemy zastosować każdą inną oferty jak OVH itp itd… ważne aby VPS był maszyną wirtualną a nie kontenerem tak aby poprawnie zainstalować OpenVPN na którym to będzie opis bazować.

Zakładamy że mamy łączę typu GSM lub inny dostawca internetu bez publicznego adresu IP lub możliwości modyfikacji przekierowania portów na routerze a mamy zapotrzebowanie na dostęp do usług serwera z internetu. W tym wpisie wykorzystam QVR Pro ale nic ma problemu aby zastosować to dla FTP czy Web serwer oraz innych usług.

IP serwera VPS: 80.211.244.16
IP klienta VPN: 10.8.0.2

Proszę nie testować tego na IP którym podałem – VPS już skasowany :) W konfiguracji te IP będą się przewijać i musimy podmienić na swoje adresy.

Na początek musimy utworzyć serwer VPS. Ja wybrałem też region polski

Wybieramy opcję SMART – otrzymamy VPS oparty o VMWare

Podajemy nazwę serwera oraz wybieramy nasz system bazowy (oczywiście Debian) jak i podajemy hasło do serwera. Wybieramy też pakiet, ja zastosowałem najtańszy.

Czekamy aż VPS się zainstaluje.

To lecimy z upgrade systemu na start

apt update && apt upgrade

Oraz instalujemy podstawowe aplikację:

apt install htop vim-nox wget curl -y

Ważne aby poprawnie skonfigurować strefę czasową

Ja zawsze jeszcze konfiguruje locale na nasze polskie.

dpkg-reconfigure locales

Musimy jeszcze wprowadzić pewne zmiany w systemie:

echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sysctl -p

Teraz czas na instalację OpenVPN i tutaj wykorzystam mądry skrypt z githuba: https://github.com/Angristan/OpenVPN-install

wget https://raw.githubusercontent.com/Angristan/OpenVPN-install/master/openvpn-install.sh
chmod +x openvpn-install.sh
./openvpn-install.sh

Port zostawiam domyślny, IPv6 wyłączone w moim przypadku, DNS domyślnie oraz dodaje usera qnap

Teraz czas na konfigurację klient VPN na naszym serwerze QNAP. Tutaj uprzednio z AppCenter musimy zainstalować aplikację QVPN

Dodajemy profil OpenVPN, który zostanie zapisany domyślnie w katalogu /root na VPS po nazwą nazwa_usera.ovpn (W Windows za pomocą WinSCP możemy plik pobrać)

Połączenie mamy zestawione, teraz pozostaje konfiguracja OpenVPN oraz firewall po stronie VPS.

Tworzymy katalogi, oraz odpowiednie pliki z wpisami tak aby nasz user zawsze miał ten sam IP po ponownym połączeniu

mkdir /etc/openvpn/ccd
vi /etc/openvpn/ccd/qnap

Dodajemy

ifconfig-push 10.8.0.2 255.255.255.0

vi /etc/openvpn/ipp.txt

Dodajemy

qnap,10.8.0.2

Teraz dodajemy reguły iptables, tutaj zrobiłem dostęp do portu 443/tcp

iptables -t nat -A PREROUTING -d 80.211.244.16 -p tcp --dport 443 -j DNAT --to-dest 10.8.0.2:443
iptables -t filter -A INPUT -p tcp -d 10.8.0.2 --dport 443 -j ACCEPT

I teraz jeszcze jedna paczka aby reguły zawsze były zapisane.

apt install iptables-persistent

Wynik możemy sprawdzić poleceniem

iptables-save

Oczywiście na koniec wspomniany QVR Pro gdzie łączy się bez problemu