Do czego?
Wraz ze wzrostem cenzury internetu przez reżimy autorytarne, coraz więcej użytecznych zasobów internetowych i stron jest blokowanych. W tym również z informacjami technicznymi.
W związku z tym, niemożliwe staje się pełne korzystanie z internetu, co narusza fundamentalne prawo do wolności słowa, zapisane w .
Artykuł 19
Każdy człowiek ma prawo do wolności przekonań i do ich swobodnego wyrażania; prawo to obejmuje wolność do trzymania się swoich przekonań bez przeszkód oraz wolność do poszukiwania, uzyskiwania i rozpowszechniania informacji i idei wszelkimi środkami oraz niezależnie od granic państwowych.
W tym przewodniku w 6 krokach uruchomimy naszą własną darmową* na bazie technologii , w chmurze (AWS), za pomocą darmowego konta (na 12 miesięcy), na instancie (maszynie wirtualnej) zarządzanym przez .
Starałem się uczynić ten przewodnik jak najbardziej przyjaznym dla osób, które nie mają doświadczenia w IT. Jedynym, co jest wymagane, jest cierpliwość w powtarzaniu opisanych poniżej kroków.
Uwaga
- AWS oferuje na okres 12 miesięcy, z limitem 15 gigabajtów transferu miesięcznie.
- Najaktualniejsza wersja tego przewodnika jest dostępna pod adresem
Kroki
- Rejestracja darmowego konta AWS
- Tworzenie instancji AWS
- Połączenie z instancją AWS
- Konfiguracja Wireguard
- Konfiguracja klientów VPN
- Sprawdzenie poprawności instalacji VPN
Przydatne linki
1. Rejestracja konta AWS
Aby zarejestrować darmowe konto AWS, wymagany jest rzeczywisty numer telefonu oraz płatna karta kredytowa Visa lub Mastercard. Polecam skorzystać z wirtualnych kart, które bezpłatnie oferuje lub . W celu weryfikacji ważności karty, podczas rejestracji pobierana jest kwota 1$, która zostaje później zwrócona.
1.1. Otworzenie konsoli zarządzania AWS
Należy otworzyć przeglądarkę i przejść pod adres:
Naciśnij przycisk 'Rejestracja'

1.2. Wypełnienie danych osobowych
Wypełnij dane i naciśnij przycisk 'Kontynuuj'

1.3. Wypełnienie danych kontaktowych
Wypełnij dane kontaktowe.

1.4. Podanie informacji płatniczych.
Numer karty, data ważności i imię właściciela karty.

1.5. Potwierdzenie konta
Na tym etapie potwierdzany jest numer telefonu oraz bezpośrednie pobranie kwoty 1$ z karty płatniczej. Na ekranie komputera pojawia się czterocyfrowy kod, a na podany numer telefonu dzwoni Amazon. W czasie rozmowy należy wpisać kod wyświetlony na ekranie.

1.6. Wybór planu taryfowego.
Wybieramy — plan podstawowy (bezpłatny)

1.7. Logowanie do konsoli zarządzania

1.8. Wybór lokalizacji centrum danych

1.8.1. Testowanie prędkości
Przed wyborem centrum danych zaleca się przeprowadzenie testu prędkości przez szybkość dostępu do najbliższych centrów danych, w mojej lokalizacji wyniki są takie:
- Singapur

- Paryż

- Frankfurt

- Sztokholm

- Londyn

Najlepsze wyniki prędkości uzyskuje centrum danych w Londynie. Dlatego wybrałem je do dalszej konfiguracji.
2. Tworzenie instancji AWS
2.1 Tworzenie maszyny wirtualnej
2.1.1. Wybór typu instancji
Domyślnie wybrana jest instancja t2.micro, która nam odpowiada, wystarczy nacisnąć przycisk Dalej: Konfiguracja szczegółów instancji

2.1.2. Ustawienia parametrów instancji
W późniejszym etapie podłączymy do naszej instancji stały publiczny adres IP, dlatego na tym etapie wyłączamy automatyczne przypisanie publicznego IP i naciskamy przycisk Dalej: Dodaj pamięć

2.1.3. Podłączenie pamięci
Podajemy rozmiar „dysku twardego”. Dla naszych celów wystarczy 16 gigabajtów, a następnie naciskamy przycisk Dalej: Dodaj tagi

2.1.4. Ustawienia tagów
Gdybyśmy tworzyli kilka instancji, moglibyśmy je grupować według tagów, co ułatwiłoby zarządzanie. W tym przypadku ta funkcjonalność jest zbędna, od razu naciskamy przycisk Dalej: Konfiguracja grupy bezpieczeństwa

2.1.5. Otwieranie portów
Na tym etapie konfigurujemy zaporę, otwierając potrzebne porty. Zestaw otwartych portów nazywa się „Grupa bezpieczeństwa” (Security Group). Musimy utworzyć nową grupę bezpieczeństwa, nadać jej nazwę, opis, dodać port UDP (Reguła niestandardowa UDP), w polu Zakres portów musimy przypisać numer portu z zakresu 49152—65535. W tym przypadku wybrałem numer portu 54321.

Po wypełnieniu wszystkich wymaganych danych naciskamy przycisk Review and Launch
2.1.6. Podsumowanie wszystkich ustawień
Na tej stronie przeglądane są wszystkie ustawienia naszej instancji, sprawdzamy, czy wszystkie ustawienia są poprawne, i naciskamy przycisk Launch

2.1.7. Tworzenie kluczy dostępu
Pojawia się okno dialogowe, w którym można utworzyć lub dodać istniejący klucz SSH, za pomocą którego później będziemy się łączyć z naszym instansem. Wybieramy opcję „Utwórz nową parę kluczy”, aby stworzyć nowy klucz. Nadajemy mu nazwę i naciskamy przycisk Pobierz parę kluczy, aby pobrać utworzone klucze. Zachowaj je w bezpiecznym miejscu na dysku lokalnego komputera. Po pobraniu naciskamy przycisk Uruchom instancje

2.1.7.1. Zachowanie kluczy dostępu
Tutaj pokazany jest etap przechowywania utworzonych kluczy z poprzedniego kroku. Po naciśnięciu przycisku Pobierz parę kluczy, klucz jest zapisywany jako plik certyfikatu z rozszerzeniem *.pem. W tym przypadku nadałem mu nazwę wireguard-awskey.pem

2.1.8. Podsumowanie wyników tworzenia instancji
Następnie widzimy komunikat o pomyślnym uruchomieniu właśnie stworzonej instancji. Możemy przejść do listy naszych instancji, naciskając przycisk Zobacz instancje

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 wybieramy opcję Elastic IPs z kategorii SIEĆ I BEZPIECZEŃSTWO i naciskamy przycisk Przydziel nowy adres

2.2.2. Ustawienie tworzenia zewnętrznego adresu IP
Na następnym etapie musimy upewnić się, że opcja Amazon pool (domyślnie włączona) jest zaznaczona, a następnie naciskamy przycisk Przydziel

2.2.3. Podsumowanie wyników tworzenia zewnętrznego adresu IP
Na następnym ekranie pojawi się nasz przypisany zewnętrzny adres IP. Zaleca się go zapamiętać, a najlepiej nawet zapisać. Przyda nam się jeszcze wielokrotnie w procesie dalszej konfiguracji i korzystania z serwera VPN. W tej instrukcji jako przykład używam adresu IP 4.3.2.1. Po zapisaniu adresu, naciskamy przycisk Zamknij

2.2.4. Lista zewnętrznych adresów IP
Następnie otworzy się lista naszych stałych publicznych adresów IP (adresów elastických).

2.2.5. Przypisanie zewnętrznego adresu IP do instancji
Na tej liście wybieramy nasz uzyskany adres IP i klikamy prawym przyciskiem myszy, aby wywołać menu kontekstowe. Wybieramy opcję Przypisz adres, aby przypisać go wcześniej utworzonej przez nas instancji.

2.2.6. Ustawienie przypisania zewnętrznego adresu IP
Na następnym etapie wybieramy naszą instancję z rozwijanego menu i naciskamy przycisk Przypisz

2.2.7. Podsumowanie wyników przypisania zewnętrznego adresu IP
Po tym, możemy zobaczyć, że nasz instancja jest powiązana z naszym stałym publicznym adresem IP i jego prywatnym adresem IP.

Teraz możemy połączyć się z naszą nowo utworzoną instancją z zewnątrz, z naszego komputera za pomocą SSH.
3. Połączenie z instancją AWS
— to bezpieczny protokół zdalnego zarządzania urządzeniami komputerowymi.
3.1. Połączenie przez SSH z komputera z systemem Windows
Aby połączyć się z komputera z systemem Windows, najpierw trzeba pobrać i zainstalować program .
3.1.1. Import prywatnego klucza dla Putty
3.1.1.1. Po zainstalowaniu Putty, należy uruchomić narzędzie PuTTYgen, które jest dołączone, aby zaimportować klucz certyfikatu w formacie PEM do formatu, który nadaje się do używania w programie Putty. W tym celu wybieramy w górnym menu opcję Conversions->Import Key

3.1.1.2. Wybór klucza AWS w formacie PEM
Następnie wybieramy klucz, który wcześniej zapisaliśmy na etapie 2.1.7.1, w naszym przypadku jego nazwa to wireguard-awskey.pem

3.1.1.3. Ustawienia parametrów importu klucza
Na tym etapie musimy podać komentarz dla tego klucza (opis) oraz ustawić hasło i jego potwierdzenie dla bezpieczeństwa. Będzie ono wymagane przy każdym połączeniu. W ten sposób chronimy klucz hasłem przed nieuprawnionym użyciem. Można nie ustawiać hasła, ale to jest mniej bezpieczne, w przypadku, gdy klucz dostanie się w obce ręce. Następnie klikamy przycisk Save private key

3.1.1.4. Zapisanie zaimportowanego klucza
Otwiera się okno dialogowe zapisu pliku, w którym zapisujemy nasz prywatny klucz jako plik z rozszerzeniem .ppk, odpowiednim do użycia w programie Putty.
Podajemy nazwę klucza (w naszym przypadku wireguard-awskey.ppk) i klikamy przycisk Zapisz.

3.1.2. Utworzenie i konfiguracja połączenia w Putty
3.1.2.1. Utworzenie połączenia
Otwieramy program Putty, wybieramy kategorię Sesja (jest otwarta domyślnie) i w polu Host Name wpisujemy publiczny adres IP naszego serwera, który otrzymaliśmy na kroku 2.2.3. W polu Saved Session wpisujemy dowolną nazwę naszego połączenia (w moim przypadku wireguard-aws-london), a następnie klikamy przycisk Zapisz aby zapisać wprowadzone zmiany.

3.1.2.2. Ustawienia auto-logowania użytkownika
Następnie w kategorii Connection, wybieramy podkategorię Dane i w polu Auto-login username wprowadzamy nazwę użytkownika ubuntu — to standardowy użytkownik instancji na AWS z Ubuntu.

3.1.2.3. Wybór prywatnego klucza do połączenia przez SSH
Następnie przechodzimy do podkategorii Connection/SSH/Auth i obok pola Plik klucza prywatnego do uwierzytelnienia klikamy przycisk Przeglądaj… aby wybrać plik z certyfikatem klucza.

3.1.2.4. Otwieranie zaimportowanego klucza
Wskazujemy klucz, który wcześniej zaimportowaliśmy w kroku 3.1.1.4, w naszym przypadku jest to plik wireguard-awskey.ppk, i klikamy przycisk Otwórz.

3.1.2.5. Zapisanie ustawień i rozpoczęcie połączenia
Wracając na stronę kategorii Sesja klikamy ponownie przycisk Zapisz, aby zapisać wprowadzone wcześniej zmiany w poprzednich krokach (3.1.2.2 — 3.1.2.4). A następnie klikamy przycisk Otwórz aby otworzyć utworzone i skonfigurowane przez nas zdalne połączenie przez SSH.

3.1.2.7. Konfiguracja zaufania między hostami
Na następnym kroku, przy pierwszej próbie połączenia, otrzymujemy ostrzeżenie, że nie skonfigurowano zaufania między dwoma komputerami, i pytanie, czy zaufać zdalnemu komputerowi. Klikniemy przycisk Tak, tym samym dodając go do listy zaufanych hostów.

3.1.2.8. Wprowadzenie hasła do klucza
Po tym otwiera się okno terminala, w którym żąda hasła do klucza, jeśli wcześniej ustawiłeś je w kroku 3.1.1.3. Przy wprowadzaniu hasła na ekranie nie pojawiają się żadne działania. Jeśli popełnisz błąd, możesz użyć klawisza Backspace.

3.1.2.9. Powitalna wiadomość o pomyślnym połączeniu
Po pomyślnym wprowadzeniu hasła, terminal wyświetla tekst powitania, informujący, że zdalny system jest gotowy do wykonania naszych poleceń.

4. Konfigurowanie serwera Wireguard
Najbardziej aktualną instrukcję dotyczącą instalacji i użytkowania Wireguard przy użyciu poniżej opisanych skryptów można zobaczyć w repozytorium:
4.1. Instalacja Wireguard
W terminalu wprowadzamy następujące polecenia (można skopiować do schowka i wklejać w terminalu klikając prawym przyciskiem myszy):
4.1.1. Klonowanie repozytorium
Klonujemy repozytorium ze skryptami instalacji Wireguard
git clone https://github.com/pprometey/wireguard_aws.git wireguard_aws4.1.2. Przejście do katalogu ze skryptami
Przechodzimy do katalogu z sklonowanym repozytorium
cd wireguard_aws4.1.3. Uruchomienie skryptu inicjalizacji
Uruchamiamy skrypt instalacji Wireguard jako administrator (użytkownik root)
sudo ./initial.shW trakcie instalacji będą wymagane określone dane potrzebne do konfiguracji Wireguard
4.1.3.1. Wprowadzenie punktu połączenia
Wprowadź zewnętrzny adres IP i otwarty port serwera Wireguard. Zewnętrzny adres IP serwera uzyskaliśmy w kroku 2.2.3, a port otworzyliśmy w kroku 2.1.5. Podajemy je razem, oddzielając dwukropkiem, na przykład 4.3.2.1:54321, a następnie naciśnij klawisz Enter
Przykład wyjścia:
Wprowadź punkt końcowy (zewnętrzny ip i port) w formacie [ipv4:port] (np. 4.3.2.1:54321): 4.3.2.1:543214.1.3.2. Wprowadzenie wewnętrznego adresu IP
Wprowadź adres IP serwera Wireguard w zabezpieczonej podsieci VPN, jeśli nie wiesz, co to jest, po prostu naciśnij klawisz Enter, aby ustawić domyślną wartość (10.50.0.1)
Przykład wyjścia:
Wprowadź adres serwera w podsieci VPN (format CIDR) ([ENTER] ustaw na domyślną: 10.50.0.1):4.1.3.3. Wskazanie serwera DNS
Wprowadź adres IP serwera DNS lub po prostu naciśnij klawisz Enter, aby ustawić domyślną wartość 1.1.1.1 (publiczny DNS Cloudflare)
Przykład wyjścia:
Wprowadź adres ip serwera DNS (format CIDR) ([ENTER] ustaw na domyślną: 1.1.1.1):4.1.3.4. Wskazanie interfejsu WAN
Następnie należy wprowadzić nazwę zewnętrznego interfejsu sieciowego, który będzie nasłuchiwać na wewnętrznym interfejsie sieciowym VPN. Po prostu naciśnij Enter, aby ustawić domyślną wartość dla AWS (eth0)
Przykład wyjścia:
Wprowadź nazwę interfejsu sieciowego WAN ([ENTER] ustaw na domyślną: eth0):4.1.3.5. Wskazanie nazwy klienta
Wprowadź nazwę użytkownika VPN. Faktem jest, że serwer VPN Wireguard nie może uruchomić się, dopóki nie zostanie dodany przynajmniej jeden klient. W tym przypadku wprowadziłem nazwę Alex@mobile
Przykład wyjścia:
Wprowadź nazwę użytkownika VPN: Alex@mobilePo tym na ekranie powinien pojawić się kod QR z konfiguracją właśnie dodanego klienta, który należy zeskanować za pomocą mobilnego klienta Wireguard na Androidzie lub iOS, aby go skonfigurować. Poniżej kodu QR pojawi się również tekst pliku konfiguracyjnego w przypadku ręcznej konfiguracji klientów. Jak to zrobić, zostanie opisane poniżej.

4.2. Dodawanie nowego użytkownika VPN
Aby dodać nowego użytkownika, należy w terminalu wykonać skrypt add-client.sh
sudo ./add-client.shSkrypt prosi o nazwę użytkownika:
Przykład wyjścia:
Wprowadź nazwę użytkownika VPN: Nazwa użytkownika może być również przekazana jako parametr skryptu (w tym przypadku Alex@mobile):
sudo ./add-client.sh Alex@mobileW wyniku działania skryptu w katalogu o nazwie klienta pod adresem /etc/wireguard/clients/{ИмяКлиента} zostanie utworzony plik z konfiguracją klienta /etc/wireguard/clients/{ИмяКлиента}/{ИмяКлиента}.conf, a na ekranie terminala pojawi się kod QR do konfiguracji mobilnych klientów oraz treść pliku konfiguracyjnego.
4.2.1. Plik konfiguracji użytkownika
Aby wyświetlić na ekranie zawartość pliku .conf, do ręcznej konfiguracji klienta, można użyć polecenia cat
sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.confwynik 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:54321Opis pliku konfiguracyjnego klienta:
[Interface]
PrivateKey = Klucz prywatny klienta
Address = Adres IP klienta
DNS = DNS używany przez klienta
[Peer]
PublicKey = Klucz publiczny serwera
PresharedKey = Wspólny klucz serwera i klienta
AllowedIPs = Dozwolone adresy do połączenia (wszystkie - 0.0.0.0/0, ::/0)
Endpoint = Adres IP i port do połączenia4.2.2. Kod QR konfiguracyjny klienta
Aby wyświetlić na ekranie terminala kod QR konfiguracyjny dla wcześniej utworzonego klienta, można użyć polecenia qrencode -t ansiutf8 (w tym przykładzie używany jest klient o nazwie Alex@mobile):
sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.conf | qrencode -t ansiutf85. Konfigurowanie klientów VPN
5.1. Konfiguracja mobilnego klienta Android
Oficjalnego klienta Wireguard dla Androida można
Następnie należy zaimportować konfigurację, skanując kod QR z konfiguracją klienta (patrz punkt 4.2.2) i nadać mu nazwę:

Po pomyślnym zaimportowaniu konfiguracji można włączyć tunel VPN. O pomyślnym połączeniu poinformuje ikona klucza w panelu systemowym Androida

5.2. Konfiguracja klienta Windows
Na początku należy pobrać i zainstalować program — to klient Wireguard dla Windows.
5.2.1. Tworzenie pliku konfiguracyjnego do importu
Prawym przyciskiem myszy tworzymy plik tekstowy na pulpicie.

5.2.2. Kopiowanie zawartości pliku konfiguracyjnego z serwera
Następnie wracamy do terminala Putty i wyświetlamy zawartość pliku konfiguracyjnego dla danego użytkownika, jak opisano w kroku 4.2.1.
Następnie zaznaczamy prawym przyciskiem myszy tekst konfiguracji w terminalu Putty, po zakończeniu zaznaczenia automatycznie zostanie skopiowany do schowka.

5.2.3. Kopiowanie konfiguracji do lokalnego pliku konfiguracyjnego
Po tym wracamy do utworzonego wcześniej pliku tekstowego na pulpicie i wklejamy z bufora tekst konfiguracji.

5.2.4. Zapisanie lokalnego pliku konfiguracyjnego
Zapisujemy plik z rozszerzeniem .conf (w tym przypadku pod nazwą london.conf)

5.2.5. Import lokalnego pliku konfiguracyjnego
Następnie należy zaimportować plik konfiguracyjny do programu TunSafe.

5.2.6. Ustawienie połączenia VPN
Wybierz ten plik konfiguracyjny i połącz się, klikając przycisk Connect.

6. Sprawdzenie pomyślności połączenia
Aby sprawdzić pomyślność połączenia przez tunel VPN, należy otworzyć przeglądarkę i przejść na stronę

Wyświetlany adres IP powinien być zgodny z tym, który uzyskaliśmy na etapie 2.2.3.
Jeśli tak jest, oznacza to, że tunel VPN działa poprawnie.
Z terminala w systemie Linux można sprawdzić swój adres IP, wpisując polecenie:
curl http://zx2c4.com/ipLub można po prostu wejść na Pornhub, jeśli znajdujesz się w Kazachstanie.
Źródło: habr.com





