Czy NordVPN działa na routerach z OpenWrt?
Użytkownicy zgłaszają nam, że routery z oprogramowaniem OpenWRT obsługują usługi VPN takie jak NordVPN. Z tym że musisz pamiętać, że zespół NordVPN nie przetestował poniższej konfiguracji – zrobili to nasi wspaniali klienci, którzy przesłali nam te instrukcje. Zespół NordVPN chce przede wszystkim podziękować użytkownikowi o nicku Ulmwind ze społeczności OpenWrt za nieustanne wsparcie w przekazywaniu nam aktualnych instrukcji dla OpenWrt.
Instrukcje dla GUI
Z tego przewodnika dowiesz się, jak skonfigurować połączenie z NordVPN na routerach z oprogramowaniem OpenWrt przez interfejs webowy LuCI.
-
Wejdź do interfejsu LuCI routera, wpisując lokalny adres IP routera w
przeglądarce i logując się. Domyślny adres IP to
192.168.1.1, a nazwa użytkownika to
root.
WAŻNE: System nie ustawia domyślnego hasła, więc możesz zostawić to pole puste. Gdy się zalogujesz, wyświetli się komunikat z prośbą o ustawienie hasła.
Aby to zrobić, kliknij System > Administration – tam ustawisz hasło. -
Gdy się zalogujesz, wybierz zakładkę System, a
następnie Software.
- Kliknij przycisk Update lists, poczekaj na zakończenie procesu i kliknij Dismiss.
-
Zainstaluj następujące pakiety, wpisując ich nazwę w polu
Filter i klikając Install…
- openvpn-openssl
- ip-full
-
luci-app-openvpn
- Zapisz i zastosuj ustawienia, klikając Save & Apply, a następnie odśwież stronę routera. Teraz powinna pojawić się nowa zakładka VPN. Kliknij ją i wybierz OpenVPN z menu rozwijanego.
-
Teraz musisz pobrać pliki konfiguracyjne klienta OpenVPN. Na swoim
NordKoncie masz narzędzie,
które wybierze najlepszy serwer dla Ciebie. Wykonaj poniższe kroki, aby
znaleźć
dane uwierzytelniające do ręcznej konfiguracji połączenia:
-
-
Zaloguj się na swoje
NordKonto, kliknij NordVPN, a w sekcji
Konfiguracja ręczna (Manual setup) wybierz
Dane uwierzytelniające (Service credentials).
Tutaj znajdziesz nazwę użytkownika (Username) i
hasło (Password) potrzebne do ręcznego
połączenia.
-
Teraz musisz pobrać pliki konfiguracyjne klienta OpenVPN.
Wykonaj poniższe kroki, aby znaleźć najlepszy serwer dla Twojego
połączenia:
-
Zaloguj się na swoje
NordKonto
i kliknij NordVPN.
-
Przewiń w dół do sekcji
Ustawienia zaawansowane (Advanced Settings)
i kliknij
Skonfiguruj NordVPN ręcznie (Set up NordVPN
manually).
-
Wybierz zakładkę
Zalecany serwer (Server recommendation).
Nasz algorytm poleci najlepszy serwer dla Ciebie w oparciu o
Twoją lokalizację.
-
Gdy naciśniesz
Zaawansowane filtry (Advanced filters),
możesz dostosować zalecane serwery, wybierając
Typ serwera (Server type) i
Protokół bezpieczeństwa (Security protocol).
Jeśli chcesz wybrać konkretny serwer, wykonaj następujące kroki:
-
W sekcji
Skonfiguruj NordVPN ręcznie (Set up NordVPN
manually)
wybierz
Pliki konfiguracyjne OpenVPN (OpenVPN configuration
files).
-
Możesz to także zrobić, wpisując serwer w okienku
Szukaj (Search) lub przewijając stronę
w dół. Teraz pobierz pliki, klikając
Pobierz UDP (Download UDP) lub
Pobierz TCP (Download TCP).
W tym przewodniku używamy serwera us5104.nordvpn.com.
-
W sekcji
Skonfiguruj NordVPN ręcznie (Set up NordVPN
manually)
wybierz
Pliki konfiguracyjne OpenVPN (OpenVPN configuration
files).
-
Zaloguj się na swoje
NordKonto
i kliknij NordVPN.
-
Zaloguj się na swoje
NordKonto, kliknij NordVPN, a w sekcji
Konfiguracja ręczna (Manual setup) wybierz
Dane uwierzytelniające (Service credentials).
Tutaj znajdziesz nazwę użytkownika (Username) i
hasło (Password) potrzebne do ręcznego
połączenia.
-
-
W sekcji OVPN configuration file upload nazwij
połączenie VPN w polu Instance name (na przykładzie nazwa to nordvpn_us). Następnie kliknij przycisk Choose File, znajdź
pobrany plik serwera i kliknij Upload.
-
W sekcji OpenVPN instances kliknij przycisk
Edit obok utworzonego połączenia VPN.
-
Wpisz dane uwierzytelniające do usługi NordVPN, czyli nazwę użytkownika
i hasło, w polu poniżej, w osobnych wierszach.
nazwa użytkownika
hasło
Dane uwierzytelniające NordVPN (nazwę użytkownika i hasło) znajdziesz na pulpicie NordKonta: -
Teraz skopiuj ścieżkę do pliku z danymi uwierzytelniającymi – zobaczysz
ją nad polem z danymi uwierzytelniającymi – i wklej ją obok wiersza
auth-user-pass w sekcji Config file powyżej.
Powinno to wyglądać tak: auth-user-pass /etc/openvpn/nordvpn_us.auth
-
Aby połączyć się z serwerem VPN, kliknij opcję Enabled,
a następnie przycisk Start obok nowo utworzonego
połączenia NordVPN.
- Zapisz konfigurację, klikając przycisk Save & Apply na dole.
- Na górze menu nawigacyjnego najedź na System i wybierz Reboot. Otworzy się nowa strona. Kliknij przycisk Perform reboot i zaloguj się ponownie.
-
Najedź na Network na górze strony i wybierz
Interfaces:1. Kliknij
Add new interface.
2. W sekcji Name wpisz nordvpntun.
3. Kliknij Protocol i wybierz Unmanaged.
4. W menu rozwijanym Interface wpisz nazwę tun0 w polu -- custom -- na dole i naciśnij Enter.
- Kliknij Create interface oraz Save.
- Otwórz zakładkę Network na górze i przejdź do sekcji Firewall.
-
Kliknij przycisk Add i wprowadź następujące ustawienia:
- W polu Name wpisz nazwę vpnfirewall. .
- W polu Input wybierz Reject. .
- W polu Output zostaw Accept, a pole Forward powinno mieć opcję Reject. .
- Zaznacz opcję Masquerading. .
- Zaznacz opcję MSS clamping. .
- W menu rozwijanym Covered Networks wybierz nordvpntun. .
- W menu rozwijanym Allow forward from source zones wybierz lan.
-
Zapisz konfigurację przyciskiem Save.
-
W sekcji Zones znajdź lan i kliknij
przycisk Edit.
-
W menu rozwijanym
Allow forward to destination zones zaznacz
nordvpntun.
- Ponownie wejdź do zakładki Network na górze strony i wybierz DHCP and DNS z menu rozwijanego.
-
W zakładce General Settings znajdź opcję
DNS forwardings i wpisz adresy DNS NordVPN. Adresy
to: 103.86.96.100 i
103.86.99.100
-
Przejdź do zakładki Resolv and Hosts Files, zaznacz
pole Ignore resolve file i kliknij przycisk
Save & Apply.
- Wróć do zakładki VPN > OpenVPN.
-
W sekcji OpenVPN instances zaznacz opcję
Enable obok NordVPN na liście i kliknij przycisk
Save & Apply.
- Ponownie naciśnij Start, aby połączyć się z serwerem VPN.
Instrukcje dla CLI
Jeśli szukasz przewodnika dla bardziej zaawansowanych użytkowników, czytaj dalej. Aby korzystać z VPN na routerze z OpenWrt, musisz mieć router z oprogramowaniem OpenWrt oraz włączonym klientem OpenVPN. Główna strona oprogramowania to https://openwrt.org/.
- Najpierw musisz wejść do panelu sterowania routera przez SSH, używając adresu IP LAN. Domyślny adres IP to 192.168.1.1, a nazwa użytkownika to root, ale adres IP może być inny, jeśli wartości domyślne były kiedyś zmieniane.
-
Router nie posiada pakietu OpenVPN w pliku obrazu oprogramowania. Aby go
zainstalować, wpisz następujące polecenia:
Dodatkowo możesz zainstalować komponent LuCI konfiguracji OpenVPN, ale jest to opcjonalne. Zrobisz to, wpisując następujące polecenie:opkg update opkg install openvpn-openssl opkg install ip-fullopkg install luci-app-openvpn -
Gdy zainstalujesz pakiet OpenVPN, możesz ustawić go tak, by uruchamiał
się automatycznie po każdym uruchomieniu routera. Wpisz następujące
polecenie:
/etc/init.d/openvpn enable -
Teraz musisz pobrać pliki konfiguracyjne serwera. Oto jak to zrobić:
-
Zaloguj się na swoje
NordKonto
i kliknij NordVPN.
-
Przewiń w dół do sekcji
Ustawienia zaawansowane (Advanced Settings) i
kliknij
Skonfiguruj NordVPN ręcznie (Set up NordVPN manually).
-
Wybierz zakładkę
Zalecany serwer (Server recommendation). Nasz
algorytm poleci najlepszy serwer dla Ciebie w oparciu o Twoją
lokalizację.
-
Gdy naciśniesz
Zaawansowane filtry (Advanced filters), możesz
dostosować zalecane serwery, wybierając
Typ serwera (Server type) i
Protokół bezpieczeństwa (Security protocol).
Jeśli chcesz wybrać konkretny serwer, wykonaj następujące kroki:
-
W sekcji
Skonfiguruj NordVPN ręcznie (Set up NordVPN manually)
wybierz
Pliki konfiguracyjne OpenVPN (OpenVPN configuration
files).
-
Możesz to także zrobić, wpisując serwer w okienku
Szukaj (Search) lub przewijając stronę w dół.
Teraz pobierz pliki, klikając
Pobierz UDP (Download UDP) lub
Pobierz TCP (Download TCP).
-
W sekcji
Skonfiguruj NordVPN ręcznie (Set up NordVPN manually)
wybierz
Pliki konfiguracyjne OpenVPN (OpenVPN configuration
files).
-
Zaloguj się na swoje
NordKonto
i kliknij NordVPN.
-
Dla przykładu użyliśmy serwera uk2054.nordvpn.com, ale
Ty najlepiej użyj serwera polecanego na NordKoncie. Aby pobrać plik
serwera, wybierz kraj, z którym chcesz się połączyć, kliknij
Pokaż dostępne protokoły (Show available protocols),
kliknij Uzyskaj konfigurację (Download config) prawym
przyciskiem myszy dla OpenVPN TCP lub
OpenVPN UDP i wybierz
Kopiuj adres linku (Copy link address). Następnie wróć
do sesji SSH i wpisz następujące polecenie:
Pamiętaj, żeby wpisać skopiowany link dla wybranego pliku serwera. Za pomocą tego polecenia plik konfiguracyjny zostanie pobrany do katalogu /etc/openvpn. Alternatywnie możesz pobrać plik konfiguracyjny serwera na innym urządzeniu i przesłać go do routera OpenWrt za pomocą alternatywnych metod, takich jak protokoły SCP lub SFTP. Starsze wersje OpenWrt:wget -P /etc/openvpn https://downloads.nordcdn.com/configs/files/ovpn\_udp/servers/uk2054.nordvpn.com.udp.ovpn
Pobierz archiwum z tej lokalizacji: https://downloads.nordcdn.com/configs/archives/certificates/servers.zip. W pobranym archiwum znajdziesz odpowiedni pliki z rozszerzeniami .crt i .key. Te pliki są specyficzne dla każdego serwera VPN. -
OpenVPN dla NordVPN wymaga wpisywania danych uwierzytelniających do
usługi NordVPN za każdym razem, gdy OpenVPN się uruchamia. Wprowadzimy
jednak zmiany w konfiguracji, aby dane były podawane automatycznie.
Najpierw, aby ułatwić cały proces, musisz zainstalować edytor tekstu
nano, wpisując następujące polecenie:
Możesz też użyć wbudowanego edytora tekstu vi. Więcej informacji na temat edytorów tekstu znajdziesz w naszym artykule. Teraz otwórz pobrany plik konfiguracyjny serwera w edytorze tekstu nano. W naszym przykładzie polecenie wygląda tak:opkg install nano
Następnie dodaj słowo secret do ciągu auth-user-pass. Gdy to zrobisz, wiersz powinien wyglądać tak:nano /etc/openvpn/uk2054.nordvpn.com.udp.ovpn
Musisz utworzyć nowy plik secret, w którym będą przechowywane dane uwierzytelniające do NordVPN. W tym celu wykonaj następujące polecenie:auth-user-pass secret
W ten sposób utworzysz nowy plik, który otworzy się w edytorze tekstu nano. W pierwszym wierszu pliku wpisz nazwę użytkownika do usługi NordVPN, a w drugim – hasło. Dane uwierzytelniające NordVPN (nazwę użytkownika i hasło) znajdziesz na pulpicie NordKonta:nano /etc/openvpn/secret -
Skonfiguruj OpenVPN za pomocą pobranego pliku konfiguracyjnego na jeden
z dwóch sposobów:
-
Zmień rozszerzenie pliku
z .ovpn na .conf,
dzięki czemu OpenVPN będzie go znajdować automatycznie po
rozszerzeniu. W tym celu możesz użyć polecenia mv:
mv /etc/openvpn/uk2054.nordvpn.com.udp.ovpn /etc/openvpn/uk2054.nordvpn.com.udp.conf -
Określ nazwę pliku w /etc/config/openvpn, używając
następujących poleceń uci:
Gdy to zrobisz, plik /etc/config/openvpn powinien zawierać następujące dodatkowe ciągi:uci set openvpn.nordvpn=openvpn uci set openvpn.nordvpn.enabled='1' uci set openvpn.nordvpn.config='/etc/openvpn/uk2054.nordvpn.com.udp.ovpn' uci commit openvpn
Możesz to sprawdzić, wpisując następujące polecenie:config openvpn 'nordvpn' option enabled '1' option config '/etc/openvpn/uk2054.nordvpn.com.udp.ovpn'
Możesz też zmienić rozszerzenie pliku z .ovpn na .conf i określić to w pliku /etc/config/openvpn – jednak w takim przypadku OpenVPN tylko raz uruchomi się z tego pliku konfiguracyjnego.tail /etc/config/openvpn
-
Zmień rozszerzenie pliku
z .ovpn na .conf,
dzięki czemu OpenVPN będzie go znajdować automatycznie po
rozszerzeniu. W tym celu możesz użyć polecenia mv:
-
Utwórz nowy interfejs sieciowy, wykonując następujące polecenia:
Plik /etc/config/openvpn będzie zawierać następujące dodatkowe ciągi:uci set network.nordvpntun=interface uci set network.nordvpntun.proto='none' uci set network.nordvpntun.ifname='tun0' uci commit network
Możesz to sprawdzić, wpisując następujące polecenie:config interface 'nordvpntun' option proto 'none' option ifname 'tun0'tail /etc/config/network -
Utwórz nową strefę zapory sieciowej i dodaj regułę przekazywania z LAN
do VPN, wpisując następujące polecenia:
Jeśli wszystkie kroki zostały wykonane prawidłowo, plik /etc/config/firewall powinien zawierać następujące dodatkowe ciągi:uci add firewall zone uci set firewall.@zone\[-1\].name='vpnfirewall' uci set firewall.@zone\[-1\].input='REJECT' uci set firewall.@zone\[-1\].output='ACCEPT' uci set firewall.@zone\[-1\].forward='REJECT' uci set firewall.@zone\[-1\].masq='1' uci set firewall.@zone\[-1\].mtu\_fix='1' uci add\_list firewall.@zone\[-1\].network='nordvpntun' uci add firewall forwarding uci set firewall.@forwarding\[-1\].src='lan' uci set firewall.@forwarding\[-1\].dest='vpnfirewall' uci commit firewall
Możesz to sprawdzić, wpisując następujące polecenie:config zone option name 'vpnfirewall' option input 'REJECT' option output 'ACCEPT' option forward 'REJECT' option masq '1' option mtu\_fix '1' list network 'nordvpntun' config forwarding option src 'lan' option dest 'vpnfirewall'
Wyświetli się 13 ostatnich wierszy zawierających powyższe ciągi.tail -13 /etc/config/firewall -
Teraz musisz skonfigurować serwery DNS. Najprościej jest użyć DNS
NordVPN dla interfejsu WAN routera. Wykonaj następujące polecenia, aby
dodać DNS NordVPN:```` uci set network.wan.peerdns='0'
uci del network.wan.dns
uci add_list network.wan.dns='103.86.96.100'
uci add_list network.wan.dns='103.86.99.100'
uci commit ```WAŻNE: Jeśli _wyświetli się komunikat „__uci: Entry not found__” po wykonaniu polecenia_ _uci del network.wan.dns_ _, możesz go zignorować._ Plik /etc/config/network powinien zawierać sekcję wan z dodanymi trzema ciągami na dole: ``` config interface 'wan' <...> option peerdns '0' list dns '103.86.96.100' list dns '103.86.99.100' ``` Możesz to sprawdzić, wykonując następujące polecenie i szukając wan w wynikach: ``` cat /etc/config/network ``` Możesz też dodać inne adresy DNS, np. od Google wykonując następujące polecenia: ``` uci set network.wan.peerdns='0' uci del network.wan.dns uci add\_list network.wan.dns='8.8.8.8' uci add\_list network.wan.dns='8.8.4.4' uci commit ``` Dodane ciągi powinny być podobne do poprzednich.
(Opcja) Funkcja Kill Switch dla OpenWRT 22.02 lub starszych wersji (iptables)
Aby zapobiec wyciekom ruchu w przypadku rozłączenia tunelu VPN, wykonaj następujące kroki:
-
Otwórz plik zapory w edytorze tekstu:
sudo nano /etc/firewall.user -
Dodaj następującą treść:
\# This file is interpreted as a shell script. \# Put your custom iptables rules here, and they will be executed with each firewall (re-)start \# Internal uci firewall chains are flushed and recreated on reload, so \# put custom rules into the root chains, e.g. INPUT or FORWARD, or into the \# special user chains, e.g. input\_wan\_rule or postrouting\_lan\_rule. if (! ip a s tun0 up) && (! iptables -C forwarding\_rule -j REJECT); then iptables -I forwarding\_rule -j REJECT fi -
Otwórz plik o nazwie 99-prevent-leak w folderze
/etc/hotplug.d/iface, wykonując następujące polecenie:
nano /etc/hotplug.d/iface/99-prevent-leak -
Dodaj następującą treść do skryptu:
#!/bin/sh if \[ "$ACTION" = ifup \] && (ip a s tun0 up) && (iptables -C forwarding\_rule -j REJECT); then iptables -D forwarding\_rule -j REJECT fi if \[ "$ACTION" = ifdown \] && (! ip a s tun0 up) && (! iptables -C forwarding\_rule -j REJECT); then iptables -I forwarding\_rule -j REJECT fi
(Opcja) Funkcja Kill Switch dla OpenWRT 22.03 lub nowszych wersji (nftables)
Aby zapobiec wyciekom ruchu w przypadku rozłączenia tunelu VPN, wykonaj następujące kroki:
-
Edytuj plik zapory:
sudo nano /etc/firewall.user -
Dodaj następującą treść:
\# when tun0 interface is down and within nftables no chain "forwarding\_rule" exists, then do the following. if (! ip a s tun0 up) && (! nft list chain inet fw4 forwarding\_rule; then \# add new chain named forwarding\_rule nft add chain inet fw4 forwarding\_rule \# add rule within chain forward to jump to chain forwarding\_rule nft add rule inet fw4 forward jump forwarding\_rule \# add rule within chain forward\_rule to reject all traffic nft add rule inet fw4 forwarding\_rule reject fi -
Następnie utwórz skrypt hotplug, aby funkcja Kill Switch włączała się
automatycznie:
sudo nano /etc/hotplug.d/iface/99-prevent-leak -
Dodaj następującą treść do skryptu:
#!/bin/sh \# if action ifup is triggered, interface tun0 is up and the nftables chain "forwarding\_rule" contains text "reject", then flush that chain in order to allow traffic. if \[ "$ACTION" = ifup \] && (ip a s tun0 up) && (nft list chain inet fw4 forwarding\_rule | grep -q 'reject'); then nft flush chain inet fw4 forwarding\_rule fi \# if action ifdown is triggered, interface tun0 is not up and the nftables chain "forwarding\_rule" does not contain text "reject", then add a rule to that chain in order to reject all traffic. if \[ "$ACTION" = ifdown \] && (! ip a s tun0 up) && (! nft list chain inet fw4 forwarding\_rule | grep -q 'reject'); then nft add rule inet fw4 forwarding\_rule reject fi
Automatyczne ponowne łącznie skryptu
W niektórych przypadkach połączenie OpenVPN może zostać przerwane z komunikatem typu couldn’t resolve host…. W takim przypadku tunel VPN nadal działa, ale bez połączenia. Aby utworzyć skrypt do automatycznego ponownego łączenia, wykonaj następujące kroki:
-
Otwórz plik /etc/rc.local w edytorze tekstu:
sudo nano /etc/rc.local -
Dodaj następujący wiersz:
/etc/openvpn/reconnect.sh & -
Utwórz plik reconnect.sh w katalogu
/etc/openvpn, wpisując następujące polecenie:
sudo nano /etc/openvpn/reconnect.sh -
W pliku dodaj następujące ciągi:
#!/bin/sh n=10 while sleep 50; do t=$(ping -c $n 8.8.8.8 | grep -o -E '\[0-9\]+ packets r' | grep -o -E '\[0-9\]+') if \[ "$t" -eq 0 \]; then /etc/init.d/openvpn restart fi done
Status połączenia
Jeśli wszystkie kroki z instrukcji zostały wykonane, połączenie powinno zostać nawiązane. Aby to sprawdzić, wejdź na stronę NordVPN – status na górze strony powinien być Chroniony (Protected).
Jeśli chcesz rozłączyć VPN, kliknij przycisk Stop obok opcji NordVPN w sekcji VPN > OpenVPN > OpenVPN instances w przypadku GUI. Jeśli chcesz rozłączyć się z VPN, wykonaj następujące polecenie:
service openvpn stop