W tym artykule szczegółowo opisano, jak skonfigurować Wireguard VPN na swoim serwerze. Może to być serwer wirtualny lub prywatny — nie ma to większego znaczenia.
Niniejszy przewodnik po konfiguracji VPN Wireguard jest przeznaczony dla użytkowników, którzy nie mają dużego doświadczenia, dlatego wszystkie kroki będą szczegółowo opisane i uzupełnione zrzutami ekranu.
Ruch przechodzący przez nasz tunel będzie szyfrowany, a Internet będzie wyświetlał adres IP naszego serwera VPN, a nie adres dostawcy, za pośrednictwem którego uzyskujemy dostęp do sieci.
Zakłada się, że masz już VPS. Jeśli nie, możesz zamówienie to od nas.
Zainstalujemy system operacyjny Ubuntu 22.04 na naszym serwerze. Jeśli masz serwer z innym systemem operacyjnym, możesz go łatwo ponownie zainstalować, postępując zgodnie z instrukcje.
Więc serwer z systemem Ubuntu 22.04 OS gotowy, teraz łączymy się z nim przez SSH. Jeśli nagle nie natknąłeś się wcześniej na ten protokół, to artykuł, w którym ten proces jest szczegółowo opisany, pomoże ci. Drugi akapit artykuł jest przeznaczony dla systemu Linux, trzeci dla systemu Windows.
Skonfiguruj serwer Wireguard
Po pomyślnym nawiązaniu połączenia napiszę kilka poleceń i opiszę ich wynik, aby zrozumieć proces:
Aktualizujemy listę pakietów w repozytoriach
apt update
Odnowienie samych pakietów
apt upgrade -y
Zainstaluj pakiet wireguard
apt install -y wireguard
Nasza konfiguracja zostanie zapisana w katalogu /etc/wireguard/, musimy wejść do katalogu:
cd /etc/wireguard/
Będziemy potrzebować klucza publicznego i prywatnego dla naszego serwera. Wygenerujemy je po ustawieniu prawidłowych praw podczas tworzenia plików i katalogów za pomocą poleceń:
umask 077
wg genkey > privatekey
wg pubkey < privatekey > publickey
Teraz ustawiamy uprawnienia dla klucza prywatnego:
chmod 600 privatekey
Przed utworzeniem pliku konfiguracyjnego potrzebujemy nazwy naszego interfejsu sieciowego. Aby ją odkryć, użyj polecenia:
ip a
Potrzebujemy interfejsu z adresem IP, który jest używany do bieżącego połączenia. Prawdopodobnie będzie się nazywał ens3 w Twoim przypadku, ale może być inna nazwa.
Będziemy również potrzebować klucza publicznego i prywatnego. Aby je wyświetlić, używam tail
tail privatekey publickey
To wygląda tak:
Do edycji możesz użyć dowolnego Edytor tekstu Linux. Użyję nano. Aby zainstalować, musisz uruchomić polecenie:
apt install -y nano
Edytujemy plik konfiguracyjny:
nano /etc/wireguard/wg0.conf
Note
aby zapisać plik używamy kombinacji przycisków ctrl+o
do wyjścia - ctrl+x
To powinno wyglądać tak:
[Interface]
PrivateKey = [ your private key ]
Address = 10.30.0.1/24
ListenPort = 51928
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o [ interface name ] -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o [ interface name ] -j MASQUERADE
W moim przypadku wygląda to tak
Włączamy przekierowanie IP
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
Uruchom usługę WireGuard:
systemctl start [email protected]
Jeśli chcemy, aby usługa została uruchomiona po ponownym uruchomieniu serwera, wykonujemy następujące czynności:
systemctl enable [email protected]
Aby sprawdzić status usługi:
systemctl status [email protected]
Status powinien być aktywny, jak na zrzucie ekranu:
Jeżeli uważnie zastosowałeś się do naszych instrukcji, to na tym etapie masz już wszystko, czego potrzebujesz, aby uruchomić serwer będący częścią VPN Wireguard.
Konfigurowanie klienta Wireguard
Pozostaje tylko skonfigurować część kliencką. Na przykład dla uproszczenia wygeneruję klucze dla części klienckiej również na serwerze. Ale ze względów bezpieczeństwa bardziej poprawne byłoby generowanie kluczy po stronie klienta. Do generowania używam poleceń:
wg genkey > mypc_privatekey
wg pubkey < mypc_privatekey > mypc_publickey
Wygeneruję również klucze do korzystania z VPN na telefonie:
wg genkey > myphone_private
keywg pubkey < myphone_privatekey > myphone_publickey
Należy pamiętać, że wszystkie te czynności należy wykonać będąc w katalogu
/etc/wireguard/
Możesz również uruchomić w innym katalogu. Jednak dla uproszczenia wykonujemy instrukcje w /etc/wireguard/
Używamy polecenia ls, aby wyświetlić listę plików w katalogu. Otrzymałem to w ten sposób:
Wyświetlmy klucze publiczne na ekranie. Będziemy ich potrzebować, aby dodać węzły do naszej sieci:
tail mypc_publickey myphone_publickey
U mnie wygląda to tak:
Edytujmy nasz plik konfiguracyjny:
nano wg0.conf
Dodaj następujące linie:
[Peer]
PublicKey = [ mypc_publickey ]
AllowedIPs = 10.30.0.2/32
[Peer]
PublicKey = [ myphone_publickey ]
AllowedIPs = 10.30.0.3/32
Teraz plik konfiguracyjny wygląda tak:
Zapisz plik i uruchom ponownie naszą usługę:
systemctl restart wg-quick@wg0
Sprawdźmy czy wszystko przebiegło pomyślnie:
systemctl status wg-quick@wg0
Status musi być aktywny
Ponowne załadowanie usługi jest wymagane za każdym razem po edycji pliku konfiguracyjnego serwera (wg0.conf)
Następnie utworzymy konfiguracje dla klientów (w moim przypadku mojego PC i telefonu). To samo zrobię na serwerze.
nano mypc.conf
[Interface]
PrivateKey = [mypc_privatekey private key]
Address = 10.30.0.2/32
DNS = 8.8.8.8
[Peer]
PublicKey = [publickey server publc key]
Endpoint =[ server ip address]:51928
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 20
W polu Endpoint możesz zobaczyć adres IP serwera - jest to adres IP, którego użyliśmy do połączenia przez SSH. Aby zobaczyć interfejsy i adresy, możesz użyć polecenia ip a.
Skonfiguruj Wireguard dla urządzeń mobilnych
Tworzymy podobną konfigurację dla naszego telefonu. Musimy tylko zmienić adres. Dla komputera było to 10.30.0.2/32, a w konfiguracji telefonu zrobimy 10.30.0.3/32. Ponadto, jeśli chcemy używać VPN na innych urządzeniach, powinniśmy dodać inne adresy do pola Address w plikach konfiguracyjnych i pliku konfiguracyjnym serwera wg0.conf, pola AllowedIPs podczas tworzenia konfiguracji
W moim przypadku pliki wyglądają tak:
mypc.conf
mójtelefon.conf
Do połączenia instalujemy klienta Wireguard https://www.wireguard.com/install/
W aplikacji Windows dodajemy nowy tunel i wpisujemy konfigurację utworzoną w pliku mypc.conf
Uruchamiamy tunel i przechodzimy do przeglądarki, na której wyświetla się nasz adres
Aby wygodnie dodać VPN do swojego telefonu, zainstaluj na serwerze program do generowania kodów QR:
apt install -y qrencode
Będąc w katalogu konfiguracyjnym wykonaj następujące kroki:
qrencode -t ansiutf8 -r myphone.conf
Następnie wchodzimy do aplikacji Wireguard na telefonie, naciskamy +, aby utworzyć nowy tunel, wybieramy zeskanuj kod QR, zeskanuj go, włącz VPN. Następnie sprawdzamy, czy wyświetlamy adres naszego serwera, korzystając z dowolnego zasobu, który wyświetla adres IP wyjściowy.
Zrobiłeś to!