Bezpłatna usługa VPN Wireguard na AWS

Za co?

Wraz z rosnącą cenzurą Internetu przez reżimy autorytarne, coraz więcej przydatnych zasobów i stron internetowych jest blokowanych. W tym informacje techniczne.
W ten sposób pełne korzystanie z Internetu staje się niemożliwe i narusza fundamentalne prawo do wolności słowa, zapisane w art uniwersalna Deklaracja Praw Człowieka.

Artykuł 19
Każdy ma prawo do wolności opinii i wypowiedzi; prawo to obejmuje wolność posiadania poglądów bez ingerencji oraz poszukiwania, otrzymywania i rozpowszechniania informacji i poglądów wszelkimi środkami i bez względu na granice

W tym przewodniku wdrożymy nasze własne bezpłatne oprogramowanie* w 6 krokach. Usługa VPN w oparciu o technologię Wireguard, w infrastrukturze chmurowej Amazon Web Services (AWS), korzystając z bezpłatnego konta (na 12 miesięcy), na instancji (maszynie wirtualnej) zarządzanej przez Serwer Ubuntu 18.04 LTS.
Starałem się, aby ten przewodnik był jak najbardziej przyjazny dla osób niebędących informatykami. Wymagana jest jedynie wytrwałość w powtarzaniu opisanych poniżej kroków.

Operacja

Etapy

  1. Załóż bezpłatne konto AWS
  2. Utwórz instancję AWS
  3. Łączenie z instancją AWS
  4. Konfiguracja Wireguarda
  5. Konfigurowanie klientów VPN
  6. Sprawdzenie poprawności instalacji VPN

Przydatne linki

1. Rejestracja konta AWS

Założenie darmowego konta AWS wymaga podania prawdziwego numeru telefonu oraz ważnej karty kredytowej Visa lub Mastercard. Polecam korzystanie z kart wirtualnych, które są dostarczane za darmo Yandex lub portfel qiwi. Aby sprawdzić ważność karty, podczas rejestracji pobierany jest 1 $, który jest później zwracany.

1.1. Otwieranie konsoli zarządzania AWS

Musisz otworzyć przeglądarkę i przejść do: https://aws.amazon.com/ru/
Kliknij przycisk „Zarejestruj się”.

Bezpłatna usługa VPN Wireguard na AWS

1.2. Uzupełnianie danych osobowych

Uzupełnij dane i kliknij przycisk „Kontynuuj”.

Bezpłatna usługa VPN Wireguard na AWS

1.3. Wypełnienie danych kontaktowych

Wypełnij dane kontaktowe.

Bezpłatna usługa VPN Wireguard na AWS

1.4. Określanie informacji o płatności.

Numer karty, data ważności i imię i nazwisko posiadacza karty.

Bezpłatna usługa VPN Wireguard na AWS

1.5. Weryfikacja konta

Na tym etapie numer telefonu jest potwierdzany, a z karty płatniczej pobierany jest bezpośrednio 1 USD. Na ekranie komputera wyświetlany jest 4-cyfrowy kod, a określony telefon odbiera połączenie z Amazon. Podczas rozmowy należy wybrać kod widoczny na ekranie.

Bezpłatna usługa VPN Wireguard na AWS

1.6. Wybór planu taryfowego.

Wybierz - Plan podstawowy (bezpłatny)

Bezpłatna usługa VPN Wireguard na AWS

1.7. Zaloguj się do konsoli zarządzania

Bezpłatna usługa VPN Wireguard na AWS

1.8. Wybór lokalizacji centrum danych

Bezpłatna usługa VPN Wireguard na AWS

1.8.1. Testowanie prędkości

Przed wyborem centrum danych zaleca się przetestowanie https://speedtest.net szybkość dostępu do najbliższych centrów danych, w mojej lokalizacji następujące wyniki:

  • Singapur
    Bezpłatna usługa VPN Wireguard na AWS
  • Paryż
    Bezpłatna usługa VPN Wireguard na AWS
  • Frankfurt
    Bezpłatna usługa VPN Wireguard na AWS
  • Sztokholm
    Bezpłatna usługa VPN Wireguard na AWS
  • Londyn
    Bezpłatna usługa VPN Wireguard na AWS

Najlepsze wyniki pod względem szybkości osiąga data center w Londynie. Wybrałem go więc do dalszej personalizacji.

2. Utwórz instancję AWS

2.1 Utwórz maszynę wirtualną

2.1.1. Wybór typu instancji

Domyślnie wybrana jest instancja t2.micro, której potrzebujemy, wystarczy nacisnąć przycisk Dalej: Konfiguruj szczegóły instancji

Bezpłatna usługa VPN Wireguard na AWS

2.1.2. Ustawianie opcji instancji

W przyszłości będziemy podłączać stałe publiczne IP do naszej instancji, więc na tym etapie wyłączamy automatyczne przypisywanie publicznego IP i wciskamy przycisk Dalej: Dodaj pamięć

Bezpłatna usługa VPN Wireguard na AWS

2.1.3. Połączenie pamięci masowej

Określ rozmiar „dysku twardego”. Do naszych celów wystarczy 16 gigabajtów i wciskamy przycisk Dalej: Dodaj tagi

Bezpłatna usługa VPN Wireguard na AWS

2.1.4. Konfigurowanie tagów

Gdybyśmy stworzyli kilka instancji, można by je pogrupować według tagów, aby ułatwić administrację. W takim przypadku ta funkcja jest zbędna, natychmiast naciśnij przycisk Dalej: Skonfiguruj grupę zabezpieczeń

Bezpłatna usługa VPN Wireguard na AWS

2.1.5. Otwieranie portów

W tym kroku konfigurujemy zaporę ogniową, otwierając wymagane porty. Zestaw otwartych portów jest nazywany grupą zabezpieczeń. Musimy utworzyć nową grupę zabezpieczeń, nadać jej nazwę, opis, dodać port UDP (Custom UDP Rule), w polu Rort Range należy przypisać numer portu z zakresu dynamiczne porty 49152-65535. W tym przypadku wybrałem numer portu 54321.

Bezpłatna usługa VPN Wireguard na AWS

Po wypełnieniu wymaganych danych kliknij przycisk Przejrzyj i uruchom

2.1.6. Przegląd wszystkich ustawień

Na tej stronie znajduje się przegląd wszystkich ustawień naszej instancji, sprawdzamy czy wszystkie ustawienia są w porządku i wciskamy przycisk Premiera

Bezpłatna usługa VPN Wireguard na AWS

2.1.7. Tworzenie kluczy dostępu

Następnie pojawia się okno dialogowe oferujące utworzenie lub dodanie istniejącego klucza SSH, za pomocą którego później zdalnie połączymy się z naszą instancją. Wybieramy opcję „Utwórz nową parę kluczy”, aby utworzyć nowy klucz. Nadaj mu nazwę i kliknij przycisk Pobierz parę kluczyaby pobrać wygenerowane klucze. Zapisz je w bezpiecznym miejscu na lokalnym komputerze. Po pobraniu kliknij przycisk. Uruchom instancje

Bezpłatna usługa VPN Wireguard na AWS

2.1.7.1. Zapisywanie kluczy dostępu

Tutaj pokazano etap zapisywania wygenerowanych kluczy z poprzedniego kroku. Po tym, jak nacisnęliśmy przycisk Pobierz parę kluczy, klucz jest zapisywany jako plik certyfikatu z rozszerzeniem *.pem. W tym przypadku nadałem mu nazwę wireguard-awskey.pem

Bezpłatna usługa VPN Wireguard na AWS

2.1.8. Przegląd wyników tworzenia instancji

Następnie widzimy komunikat o pomyślnym uruchomieniu właśnie utworzonej przez nas instancji. Do listy naszych instancji możemy przejść klikając w przycisk przeglądać instancje

Bezpłatna usługa VPN Wireguard na AWS

2.2. Tworzenie zewnętrznego adresu IP

2.2.1. Rozpoczęcie tworzenia zewnętrznego adresu IP

Następnie musimy utworzyć stały zewnętrzny adres IP, przez który będziemy łączyć się z naszym serwerem VPN. W tym celu w panelu nawigacyjnym po lewej stronie ekranu wybierz element Elastyczne adresy IP z kategorii SIEĆ I BEZPIECZEŃSTWO i naciśnij przycisk Przydziel nowy adres

Bezpłatna usługa VPN Wireguard na AWS

2.2.2. Konfigurowanie tworzenia zewnętrznego adresu IP

W następnym kroku musimy włączyć opcję basen amazoński (domyślnie włączone) i kliknij przycisk Przeznaczyć

Bezpłatna usługa VPN Wireguard na AWS

2.2.3. Przegląd wyników tworzenia zewnętrznego adresu IP

Następny ekran wyświetli otrzymany zewnętrzny adres IP. Zaleca się zapamiętanie go, a nawet lepiej zapisać. przyda się niejeden raz w procesie dalszej konfiguracji i korzystania z serwera VPN. W tym przewodniku używam adresu IP jako przykładu. 4.3.2.1. Po wprowadzeniu adresu naciśnij przycisk Zamknij

Bezpłatna usługa VPN Wireguard na AWS

2.2.4. Lista zewnętrznych adresów IP

Następnie zostaje nam przedstawiona lista naszych stałych publicznych adresów IP (elastics IP).

Bezpłatna usługa VPN Wireguard na AWS

2.2.5. Przypisywanie zewnętrznego adresu IP do instancji

Na tej liście wybieramy otrzymany adres IP i naciskamy prawy przycisk myszy, aby wyświetlić menu rozwijane. Wybierz w nim przedmiot adres stowarzyszonyaby przypisać go do utworzonej wcześniej instancji.

Bezpłatna usługa VPN Wireguard na AWS

2.2.6. Ustawienie przypisania zewnętrznego adresu IP

W kolejnym kroku wybieramy z rozwijanej listy naszą instancję i wciskamy przycisk Współpracownik

Bezpłatna usługa VPN Wireguard na AWS

2.2.7. Przegląd wyników przypisania zewnętrznego adresu IP

Następnie widzimy, że nasza instancja i jej prywatny adres IP są powiązane z naszym stałym publicznym adresem IP.

Bezpłatna usługa VPN Wireguard na AWS

Teraz możemy połączyć się z naszą nowo utworzoną instancją z zewnątrz, z naszego komputera przez SSH.

3. Połącz się z instancją AWS

SSH to bezpieczny protokół do zdalnego sterowania urządzeniami komputerowymi.

3.1. Łączenie przez SSH z komputera z systemem Windows

Aby połączyć się z komputerem z systemem Windows, musisz najpierw pobrać i zainstalować program kit.

3.1.1. Importuj klucz prywatny dla Putty

3.1.1.1. Po zainstalowaniu programu Putty należy uruchomić dołączone do niego narzędzie PuTTYgen, aby zaimportować klucz certyfikatu w formacie PEM do formatu odpowiedniego do użycia w programie Putty. W tym celu wybierz pozycję w górnym menu Konwersje->Importuj klucz

Bezpłatna usługa VPN Wireguard na AWS

3.1.1.2. Wybór klucza AWS w formacie PEM

Następnie wybierz klucz, który wcześniej zapisaliśmy w kroku 2.1.7.1, w naszym przypadku jego nazwę wireguard-awskey.pem

Bezpłatna usługa VPN Wireguard na AWS

3.1.1.3. Ustawianie kluczowych opcji importu

Na tym etapie musimy podać komentarz do tego klucza (opis) oraz ustawić hasło i potwierdzenie dla bezpieczeństwa. Będzie to wymagane przy każdym połączeniu. W ten sposób chronimy klucz hasłem przed niewłaściwym użyciem. Nie musisz ustawiać hasła, ale jest to mniej bezpieczne, jeśli klucz dostanie się w niepowołane ręce. Po naciśnięciu przycisku Zapisz klucz prywatny

Bezpłatna usługa VPN Wireguard na AWS

3.1.1.4. Zapisywanie zaimportowanego klucza

Otworzy się okno dialogowe zapisywania pliku i zapisujemy nasz klucz prywatny jako plik z rozszerzeniem .ppknadaje się do użycia w programie kit.
Podaj nazwę klucza (w naszym przypadku wireguard-awskey.ppk) i naciśnij przycisk Oszczędzać.

Bezpłatna usługa VPN Wireguard na AWS

3.1.2. Tworzenie i konfiguracja połączenia w Putty

3.1.2.1. Utwórz połączenie

Otwórz program Putty, wybierz kategorię Sesja (domyślnie jest otwarty) oraz w terenie Nazwa hosta wprowadź publiczny adres IP naszego serwera, który otrzymaliśmy w kroku 2.2.3. W polu Zapisana sesja wprowadź dowolną nazwę dla naszego połączenia (w moim przypadku wireguard-aws-londyn), a następnie naciśnij przycisk Zapisz aby zapisać zmiany, które wprowadziliśmy.

Bezpłatna usługa VPN Wireguard na AWS

3.1.2.2. Konfigurowanie automatycznego logowania użytkownika

Więcej w kategorii Statystyki z konta, wybierz podkategorię Dane i w terenie Nazwa użytkownika automatycznego logowania Wpisz nazwę użytkownika ubuntu jest standardowym użytkownikiem instancji na AWS z Ubuntu.

Bezpłatna usługa VPN Wireguard na AWS

3.1.2.3. Wybór klucza prywatnego do połączenia przez SSH

Następnie przejdź do podkategorii Połączenie/SSH/Aut i obok pola Plik klucza prywatnego do uwierzytelnienia naciśnij przycisk Paść się… aby wybrać plik z certyfikatem klucza.

Bezpłatna usługa VPN Wireguard na AWS

3.1.2.4. Otwieranie zaimportowanego klucza

Określ klucz, który zaimportowaliśmy wcześniej w kroku 3.1.1.4, w naszym przypadku jest to plik wireguard-awskey.ppki naciśnij przycisk Otwórz.

Bezpłatna usługa VPN Wireguard na AWS

3.1.2.5. Zapisywanie ustawień i rozpoczynanie połączenia

Powrót do strony kategorii Sesja ponownie nacisnąć przycisk Zapisz, aby zapisać zmiany wprowadzone wcześniej w poprzednich krokach (3.1.2.2 - 3.1.2.4). A potem wciskamy przycisk Otwarte aby otworzyć zdalne połączenie SSH, które utworzyliśmy i skonfigurowaliśmy.

Bezpłatna usługa VPN Wireguard na AWS

3.1.2.7. Konfigurowanie zaufania między hostami

W następnym kroku, przy pierwszej próbie połączenia, otrzymujemy ostrzeżenie, że nie mamy skonfigurowanego zaufania między dwoma komputerami i pytamy, czy ufać komputerowi zdalnemu. Wciśniemy przycisk Tak, tym samym dodając go do listy zaufanych hostów.

Bezpłatna usługa VPN Wireguard na AWS

3.1.2.8. Wprowadzenie hasła dostępu do klucza

Następnie otworzy się okno terminala, w którym zostaniesz poproszony o podanie hasła do klucza, jeśli ustawiłeś je wcześniej w kroku 3.1.1.3. Podczas wprowadzania hasła na ekranie nie jest wykonywana żadna czynność. Jeśli popełnisz błąd, możesz użyć klucza Backspace.

Bezpłatna usługa VPN Wireguard na AWS

3.1.2.9. Wiadomość powitalna o pomyślnym połączeniu

Po pomyślnym wprowadzeniu hasła w terminalu pojawia się tekst powitalny, który informuje nas, że zdalny system jest gotowy do wykonania naszych poleceń.

Bezpłatna usługa VPN Wireguard na AWS

4. Konfigurowanie serwera Wireguard

Najbardziej aktualne instrukcje dotyczące instalacji i korzystania z Wireguard za pomocą opisanych poniżej skryptów można znaleźć w repozytorium: https://github.com/isystem-io/wireguard-aws

4.1. Instalacja WireGuarda

W terminalu wprowadź następujące polecenia (możesz skopiować do schowka i wkleić w terminalu, naciskając prawy przycisk myszy):

4.1.1. Klonowanie repozytorium

Sklonuj repozytorium za pomocą skryptów instalacyjnych Wireguard

git clone https://github.com/pprometey/wireguard_aws.git wireguard_aws

4.1.2. Przełączanie do katalogu ze skryptami

Przejdź do katalogu ze sklonowanym repozytorium

cd wireguard_aws

4.1.3 Uruchomienie skryptu inicjującego

Uruchom jako administrator (użytkownik root) skrypt instalacyjny Wireguard

sudo ./initial.sh

Proces instalacji poprosi o podanie pewnych danych wymaganych do skonfigurowania Wireguard

4.1.3.1. Wejście punktu połączenia

Wprowadź zewnętrzny adres IP i otwórz port serwera Wireguard. Otrzymaliśmy zewnętrzny adres IP serwera w kroku 2.2.3 i otworzyliśmy port w kroku 2.1.5. Wskazujemy je razem, oddzielając je np. dwukropkiem 4.3.2.1:54321a następnie naciśnij klawisz Wchodzę
Przykład wyjścia:

Enter the endpoint (external ip and port) in format [ipv4:port] (e.g. 4.3.2.1:54321): 4.3.2.1:54321

4.1.3.2. Wprowadzenie wewnętrznego adresu IP

Wprowadź adres IP serwera Wireguard w bezpiecznej podsieci VPN, jeśli nie wiesz, co to jest, po prostu naciśnij klawisz Enter, aby ustawić wartość domyślną (10.50.0.1)
Przykład wyjścia:

Enter the server address in the VPN subnet (CIDR format) ([ENTER] set to default: 10.50.0.1):

4.1.3.3. Określanie serwera DNS

Wprowadź adres IP serwera DNS lub po prostu naciśnij klawisz Enter, aby ustawić wartość domyślną 1.1.1.1 (Publiczny DNS Cloudflare)
Przykład wyjścia:

Enter the ip address of the server DNS (CIDR format) ([ENTER] set to default: 1.1.1.1):

4.1.3.4. Określanie interfejsu WAN

Następnie musisz wprowadzić nazwę zewnętrznego interfejsu sieciowego, który będzie nasłuchiwał na wewnętrznym interfejsie sieci VPN. Po prostu naciśnij Enter, aby ustawić domyślną wartość dla AWS (eth0)
Przykład wyjścia:

Enter the name of the WAN network interface ([ENTER] set to default: eth0):

4.1.3.5. Określenie nazwy klienta

Wprowadź nazwę użytkownika VPN. Faktem jest, że serwer Wireguard VPN nie będzie mógł się uruchomić, dopóki nie zostanie dodany co najmniej jeden klient. W tym przypadku wpisałem nazwę Alex@mobile
Przykład wyjścia:

Enter VPN user name: Alex@mobile

Następnie na ekranie powinien zostać wyświetlony kod QR z konfiguracją nowo dodanego klienta, który należy odczytać za pomocą klienta mobilnego Wireguard na Androida lub iOS, aby go skonfigurować. A także poniżej kodu QR zostanie wyświetlony tekst pliku konfiguracyjnego w przypadku ręcznej konfiguracji klientów. Jak to zrobić, zostanie omówione poniżej.

Bezpłatna usługa VPN Wireguard na AWS

4.2. Dodanie nowego użytkownika VPN

Aby dodać nowego użytkownika, musisz wykonać skrypt w terminalu add-client.sh

sudo ./add-client.sh

Skrypt pyta o nazwę użytkownika:
Przykład wyjścia:

Enter VPN user name: 

Również nazwy użytkowników mogą być przekazywane jako parametr skryptu (w tym przypadku Alex@mobile):

sudo ./add-client.sh Alex@mobile

W wyniku wykonania skryptu w katalogu z nazwą klienta wzdłuż ścieżki /etc/wireguard/clients/{ИмяКлиента} zostanie utworzony plik konfiguracyjny klienta /etc/wireguard/clients/{ИмяКлиента}/{ИмяКлиента}.conf, a na ekranie terminala zostanie wyświetlony kod QR służący do konfigurowania klientów mobilnych oraz zawartość pliku konfiguracyjnego.

4.2.1. Plik konfiguracyjny użytkownika

Możesz wyświetlić zawartość pliku .conf na ekranie, w celu ręcznej konfiguracji klienta, za pomocą polecenia cat

sudo cat /etc/wireguard/clients/Alex@mobile/[email protected]

wynik wykonania:

[Interface]
PrivateKey = oDMWr0toPVCvgKt5oncLLRfHRit+jbzT5cshNUi8zlM=
Address = 10.50.0.2/32
DNS = 1.1.1.1

[Peer]
PublicKey = mLnd+mul15U0EP6jCH5MRhIAjsfKYuIU/j5ml8Z2SEk=
PresharedKey = wjXdcf8CG29Scmnl5D97N46PhVn1jecioaXjdvrEkAc=
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 4.3.2.1:54321

Opis pliku konfiguracyjnego klienta:

[Interface]
PrivateKey = Приватный ключ клиента
Address = IP адрес клиента
DNS = ДНС используемый клиентом

[Peer]
PublicKey = Публичный ключ сервера
PresharedKey = Общи ключ сервера и клиента
AllowedIPs = Разрешенные адреса для подключения (все -  0.0.0.0/0, ::/0)
Endpoint = IP адрес и порт для подключения

4.2.2. Kod QR do konfiguracji klienta

Możesz wyświetlić konfiguracyjny kod QR dla wcześniej utworzonego klienta na ekranie terminala za pomocą polecenia qrencode -t ansiutf8 (w tym przykładzie używany jest klient o nazwie Alex@mobile):

sudo cat /etc/wireguard/clients/Alex@mobile/[email protected] | qrencode -t ansiutf8

5. Konfigurowanie klientów VPN

5.1. Konfigurowanie klienta mobilnego Android

Oficjalny klient Wireguard na Androida może być zainstalować z oficjalnego sklepu Google Play

Następnie należy zaimportować konfigurację poprzez odczyt kodu QR z konfiguracją klienta (patrz paragraf 4.2.2) i nadać jej nazwę:

Bezpłatna usługa VPN Wireguard na AWS

Po pomyślnym zaimportowaniu konfiguracji możesz włączyć tunel VPN. Udane połączenie będzie wskazywane przez schowek klucza w zasobniku systemowym Androida

Bezpłatna usługa VPN Wireguard na AWS

5.2. Konfiguracja klienta Windows

Najpierw musisz pobrać i zainstalować program TunSafe dla systemu Windows jest klientem Wireguard dla systemu Windows.

5.2.1. Tworzenie pliku konfiguracyjnego importu

Kliknij prawym przyciskiem myszy, aby utworzyć plik tekstowy na pulpicie.

Bezpłatna usługa VPN Wireguard na AWS

5.2.2. Skopiuj zawartość pliku konfiguracyjnego z serwera

Następnie wracamy do terminala Putty i wyświetlamy zawartość pliku konfiguracyjnego żądanego użytkownika, jak opisano w kroku 4.2.1.
Następnie kliknij prawym przyciskiem myszy tekst konfiguracyjny w terminalu Putty, po zakończeniu wyboru zostanie on automatycznie skopiowany do schowka.

Bezpłatna usługa VPN Wireguard na AWS

5.2.3. Kopiowanie konfiguracji do lokalnego pliku konfiguracyjnego

W tym polu wracamy do utworzonego wcześniej pliku tekstowego na pulpicie i wklejamy do niego tekst konfiguracyjny ze schowka.

Bezpłatna usługa VPN Wireguard na AWS

5.2.4. Zapisywanie lokalnego pliku konfiguracyjnego

Zapisz plik z rozszerzeniem .konf (w tym przypadku o nazwie london.conf)

Bezpłatna usługa VPN Wireguard na AWS

5.2.5. Importowanie lokalnego pliku konfiguracyjnego

Następnie musisz zaimportować plik konfiguracyjny do programu TunSafe.

Bezpłatna usługa VPN Wireguard na AWS

5.2.6. Konfigurowanie połączenia VPN

Wybierz ten plik konfiguracyjny i połącz się, klikając przycisk Skontaktuj się.
Bezpłatna usługa VPN Wireguard na AWS

6. Sprawdzenie, czy połączenie się powiodło

Aby sprawdzić powodzenie połączenia przez tunel VPN, musisz otworzyć przeglądarkę i przejść do witryny https://2ip.ua/ru/

Bezpłatna usługa VPN Wireguard na AWS

Wyświetlany adres IP musi być zgodny z tym, który otrzymaliśmy w kroku 2.2.3.
Jeśli tak, to tunel VPN działa pomyślnie.

Z terminala Linux możesz sprawdzić swój adres IP, wpisując:

curl http://zx2c4.com/ip

Lub możesz po prostu przejść do pornhub, jeśli jesteś w Kazachstanie.

Źródło: www.habr.com

Dodaj komentarz