(Przeczytanie zajmie ok. 2 - 3 minut)

Po zakończeniu montażu monitoringu IP w sklepie klienta pojawiła się konieczność podglądu z zewnątrz. Pierwotnie był plan wykorzystania DynDNS oraz przekierowania portów. Internet mobilny wykorzystywany w sklepie jednakże na to nie zezwala. Aby rozwiązać ten problem został wykorzystany zestaw: VPS + WireGuard + Raspberry Pi.

Na VPSie został uruchomiony serwer Wireguard. Dokładna instalacja została opisana w innym poście na tym blogu. Plik konfiguracyjny prezentuje się następująco:

[Interface]

Address = 192.168.1.1/24

SaveConfig = false

ListenPort = {port}

PrivateKey = {klucz prywatny serwera}

DNS = 8.8.8.8,1.1.1.1

PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]

PublicKey = {klucz publiczny klienta}

AllowedIPs = 192.168.1.2/32

 

Kolejnym krokiem była konfiguracja urządzenia Raspberry Pi 3B. Na nim został zainstalowany klient Wireguarda, który uruchamia się przy starcie systemu. Konfig:

[Interface]

Address = 192.168.1.2/32

PrivateKey = {klucz prywatny klienta}

DNS = 8.8.8.8

[Peer]

PublicKey = {klucz publiczny serwera}

AllowedIPs = 0.0.0.0/0

Endpoint = publiczny_adres_ip_VPS:port_na_jakim_nasłuchuje_serwer

PersistentKeepalive = 25

 

Na sam koniec trzeba było przekierować porty, z Malinki na rejestrator. Wykorzystano w tym celu iptables:

iptables -A FORWARD -i wg0-client -j ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

iptables -t nat -A PREROUTING -p tcp -s 0/0 -d ip_klienta_wireguard --dport 80 -j DNAT --to ip_rejestratora:80

iptables -t nat -A PREROUTING -p tcp -s 0/0 -d ip_klienta_wireguard --dport 8000 -j DNAT --to ip_rejestratora:8000

Aby reguły były implementowane każdorazowo przy starcie systemu należało je wyeksportować do pliku: iptables-save > /etc/iptables/rules.v4 (być może nastąpi konieczność utworzenia odpowiedniego katalogu), a następnie zainstalować pakiet iptables-persistent. Oprogramowanie to przy każdym starcie systemu zaciąga reguły z pliku rules.v4.

Gdy już tunel został zestawiony, a porty przekierowane pozostało jedynie skonfigurować urządzenia, na których będzie odbywał się zdalny podgląd monitoringu. Na laptopie z systemem Windows zainstalowano oraz skonfigurowano klienta WireGuard. Dostęp do rejestratora odbywał się przez przeglądarkę internetową na adres IP_WIREGUARD_RASPBERRY (192.168.1.2).

Na telefonie z systemem iOS również skonfigurowano klienta WireGuard (instrukcja we wcześniej wspomnianym poście). Do podglądu służy aplikacja iVMS-4500. Jako serwer podajemy adres ip klienta VPN na malince, natomiast port na taki, który przekierowaliśmy w regule iptables (192.168.1.2:8000).