Czy NordVPN działa na routerach z OpenWrt?
Routery z oprogramowaniem układowym OpenWrt obsługują usługi VPN takie jak NordVPN. Z tym że konfiguracja, którą prezentujemy poniżej, nie została przetestowana przez zespół NordVPN – sprawdzili ją i przetestowali nasi wspaniali użytkownicy. Zespół NordVPN chce przede wszystkim podziękować ulmwind, użytkownikowi ze społeczności OpenWrt, za nieustanne wsparcie w przekazywaniu nam aktualnych instrukcji dla OpenWrt.
W tym artykule znajdziesz dwa przewodniki po konfiguracji NordVPN na routerze z oprogramowaniem OpenWrt:
- Instrukcje dla GUI (wersja uproszczona)
- Instrukcje dla CLI (wersja zaawansowana)
Jeśli napotkasz jakiekolwiek problemy, skontaktuj się z naszym zespołem obsługi klienta! Ten przewodnik jest przeznaczony dla zaawansowanych użytkowników, ale znajdziesz w nim też uproszczone instrukcje.
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.
Domyślnie nie ma ustawionego hasła, więc możesz zostawić to pole puste, ale gdy się zalogujesz, pojawi się monit 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 możesz skorzystać z narzędzia, które poleci najlepszy serwer dla Ciebie.
Wykonaj poniższe kroki, aby znaleźć pliki konfiguracyjne do ręcznego 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ę
Pliki konfiguracyjne OpenVPN (OpenVPN configuration files).
-
Znajdź serwer, z którym chcesz się połączyć, wpisując go w okienku
Szukaj (Search) lub przewijając w dół, a następnie
pobierz go, klikając Pobierz UDP (Download UDP) lub
Pobierz TCP (Download TCP).
-
Podczas łączenia się z OpenVPN i
IKEv2 ręcznie musisz użyć
Nazwy użytkownika (Username) i
Hasła (Password) z zakładki
Dane uwierzytelniające (Service credentials).
W tym przewodniku używamy serwera us5104.nordvpn.com.
-
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.
-
W dolnym polu, w osobnych wierszach, wpisz dane uwierzytelniające do
usługi NordVPN, czyli nazwę użytkownika i hasło.
nazwa użytkownika
hasło
Dane uwierzytelniające do NordVPN (nazwę użytkownika i hasło) znajdziesz na pulpicie NordKonta:
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 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
- Zapisz konfigurację, klikając przycisk Save na dole.
- Kliknij zakładkę Network na górze strony i wybierz Interfaces.
- Utwórz nowy interfejs, naciskając przycisk Add new interface…, i nadaj mu nazwę nordvpntun.
- Kliknij menu rozwijane Protocol i wybierz opcję Unmanaged.
-
W menu rozwijanym Interface wpisz nazwę
tun0 w polu -- custom -- na dole i
naciśnij Enter.
- Utwórz interfejs, klikając przycisk Create interface, a następnie zapisz ustawienia, klikając przycisk Save.
- Ponownie 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.
- Teraz wróć do zakładki VPN > OpenVPN.
-
W sekcji OpenVPN instances zaznacz opcję
Enable obok NordVPN na liście i kliknij przycisk
Save & Apply.
- Naciśnij przycisk Start obok utworzonego połączenia NordVPN, aby połączyć się z serwerem VPN.
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.
Jeśli chcesz rozłączyć VPN, kliknij przycisk Stop obok opcji NordVPN w sekcji VPN > OpenVPN > OpenVPN instances.
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 kiedykolwiek zdarzyło Ci się zmieniać domyślne ustawienia.
-
Pakiet OpenVPN nie jest dołączony do oprogramowania. Aby go
zainstalować, wpisz następujące polecenia: opkg update
opkg install openvpn-openssl
opkg install ip-full Dodatkowo możesz zainstalować komponent LuCI konfiguracji OpenVPN, ale jest to opcjonalne. Zrobisz to, wpisując następujące polecenie: opkg install luci-app-openvpn - Gdy zainstalujesz pakiet OpenVPN, możesz ustawić, 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.
Wykonaj poniższe kroki, aby znaleźć pliki konfiguracyjne do ręcznego 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ę
Pliki konfiguracyjne OpenVPN (OpenVPN configuration files).
-
Znajdź serwer, z którym chcesz się połączyć, wpisując go w okienku
Szukaj (Search) lub przewijając w dół, a następnie
pobierz go, klikając Pobierz UDP (Download UDP) lub
Pobierz TCP (Download TCP).
-
Podczas łączenia się z OpenVPN i
IKEv2 ręcznie musisz użyć
Nazwy użytkownika (Username) i
Hasła (Password) z zakładki
Dane uwierzytelniające (Service credentials).
-
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:
wget -P /etc/openvpn https://downloads.nordcdn.com/configs/files/ovpn_udp/servers/uk2054.nordvpn.com.udp.ovpn
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:
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: opkg install nano Możesz też użyć wbudowanego edytora tekstu vi. Więcej informacji na temat edytorów tekstu znajdziesz w następującym artykule: https://openwrt.org/docs/guide-user/base-system/user.beginner.cli. Teraz otwórz pobrany plik konfiguracyjny serwera w edytorze tekstu nano. W naszym przykładzie polecenie wygląda tak: nano /etc/openvpn/uk2054.nordvpn.com.udp.ovpn Następnie dodaj słowo secret do ciągu auth-user-pass. Gdy to zrobisz, wiersz powinien wyglądać tak: auth-user-pass secret Teraz musisz utworzyć plik o nazwie secret z danymi uwierzytelniającymi do NordVPN. W tym celu wykonaj następujące polecenie: nano /etc/openvpn/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 do NordVPN (nazwę użytkownika i hasło) znajdziesz na pulpicie NordKonta:
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.
-
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:
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 Gdy to zrobisz, plik /etc/config/openvpn powinien zawierać następujące dodatkowe ciągi: config openvpn 'nordvpn'
option enabled '1'
option config '/etc/openvpn/uk2054.nordvpn.com.udp.ovpn' Możesz to sprawdzić, wpisując następujące polecenie: tail /etc/config/openvpn 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.\
-
Utwórz nowy interfejs sieciowy, wykonując następujące polecenia:
uci set network.nordvpntun=interface
uci set network.nordvpntun.proto='none'
uci set network.nordvpntun.ifname='tun0'
uci commit network Jeśli wszystkie kroki zostały wykonane prawidłowo, plik /etc/config/network powinien zawierać następujące dodatkowe ciągi: config interface 'nordvpntun'
option proto 'none'
option ifname 'tun0' Możesz to sprawdzić poleceniem tail /etc/config/network. -
Utwórz nową strefę zapory sieciowej i dodaj regułę przekazywania z LAN
do VPN, wpisując następujące polecenia:
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 Jeśli wszystkie kroki zostały wykonane prawidłowo, plik /etc/config/firewall powinien zawierać następujące dodatkowe ciągi: 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' Możesz to sprawdzić poleceniem tail -13 /etc/config/firewall. Wyświetli się ostatnich 13 wierszy, które powinny zawierać wyżej wymienione ciągi. - Teraz musisz skonfigurować serwery DNS. Najprościej jest użyć DNS NordVPN dla interfejsu WAN routera. Aby dodać DNS NordVPN, wykonaj następujące polecenia:
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
_Jeśli po wykonaniu polecenia _uci del network.wan.dns_ pojawi się komunikat błędu o treści __uci: Entry not found__, 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ć poleceniem cat /etc/config/network, wyszukując inferfejs wan w wynikach.
Możesz też dodać różne adresy DNS, np. od Google, wpisują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.
(Opcjonalnie) Aby zapobiec wyciekom ruchu w przypadku rozłączenia tunelu VPN, otwórz plik /etc/firewall.user w edytorze tekstu i dodaj następujące ciągi:
# 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
Dodatkowo musisz utworzyć plik o nazwie 99-prevent-leak w folderze /etc/hotplug.d/iface, wykonując polecenie nano /etc/hotplug.d/iface/99-prevent-leak i dodając do pliku następujące ciągi:
#!/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
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 automatycznie połączyć się ponownie, otwórz plik /etc/rc.local w edytorze tekstu i dodaj następujący wiersz:
/etc/openvpn/reconnect.sh &
Następnie utwórz plik reconnect.sh w katalogu /etc/openvpn. Możesz to zrobić, wpisując polecenie 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
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.
Jeśli chcesz rozłączyć się z VPN, wykonaj następujące polecenie:
service openvpn stop