Gdy chcemy być anonimowi w internecie, głównym rozwiązaniem jakie podają media jest VPN(Virutal Private Network). Dzisiaj skorzystamy z Wireguarda(Wg), który według wielu osób jest najprostszym w obsłudze VPN-em.
Aby zacząć musimy posiadać:
– maszyne z publicznym IP (ja użyje dzisiaj ubuntu),
– domowy router bądź urządzenie które jest bramą logiczną dla twojej sieci.
Dzisiaj pokażemy troche okrojoną konfigurację gdyż zrobimy to połączenie bezspośrednio z komputera do VPN-a z NAT-owaniem.
Nasza konfiguracja docelowo ma wyglądać w następujący sposób:
Adres wg0 na wirtualnej maszynie 10.5.0.1/24
Adres wg na naszym komputerze 10.5.0.2/24
KONFIGURACJA VPN(maszyna wirtualna)
Zaczniemy od instalacji a później konfiguracji Wireguarda.
# sudo apt update && apt upgrade -y
# sudo apt install wireguard
Na początku powinnyśmy zacząć od tego aby nasz serwer mógł przekierowywać pakiety.
sudo nano /etc/sysctl.conf
Szukamy linijki z zahaszowanym net.ipv4.ip_forward=1, i usuwamy „#” z początku linii, zapisujemy i wychodzimy (ctrl+x, y, enter). Aby zatwierdzić naszą konfigurację wpisujemy komendę.
sudo sysctl -p
Dodajemy wirtualną karte sieciową wg0 aby na niej ustawić tunel.
# ip link add dev wg0 type wireguard
Dodajemy adres do podanego interfejsu.
# ip address add dev wg0 10.5.0.1/24
Przyszedł czas na generowanie kluczy (publiczny i prywatny).
wg genkey | tee privatekey | wg pubkey > publickey
Najlepiej by było gdybyśmy odłożyli sobie zawartości naszych kluczy gdzieś w miejsce łatwo dostępne, gdyż zaraz będziemy je przeklejać do pliku konfiguracyjnego. Aby wyświetlić ich zawartość wpisujemy „cat publickey” oraz „cat privatekey”.
sudo nano /etc/wireguard/wg0.conf
Ważne jest aby na tym etapie zorientować się który nasz interfejs domyślnie ma dostęp do internetu, za pomocą polecenia „ip a” możemy znaleźć nasz domyślną nazwe(często to enp0s3, eth0).
Teraz wklejamy nasz config do pliku wg0.conf.
[Interface]
PrivateKey = (prywatny klucz z maszyny, „cat privatekey”)
Address = 10.5.0.1/24
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820[Peer]
PublicKey = (tutaj zaraz wkleimy nasz klucz z naszego komputera)
AllowedIPs = 10.5.0.2/32
Zaraz tutaj wrócimy lecz na moment musimy się przenieść na nasz komputer, zainstalować aplikacje wireguarda na windowsa. Dodajemy nowy, pusty tunel, po czym zapisujemy i edytujemy nasz tunel aby wyświetlić nasze klucze.

Kopiujemy stąd nasz publiczny klucz i wklejamy w wcześniej wspomniane miejsce w configu.
Teraz przyszedł czas na konifguracje naszego klienta.
KONFIGURACJA WINDOWS (KLIENT)
Gdy mamy już wygenerowany tunel, musimy go troche zedytować i dodać pare rzeczy aby nam to działało.
[Interface]
PrivateKey = +ANmUXZ0sY86ucYSB/tOKbYVnyf1/D2LbET01izs3HY=
Address = 10.5.0.2/32
DNS = 8.8.8.8[Peer]
Publickey = (publiczny klucz serwera, „cat publickey”)
Endpoint = (publiczny adres serwera oraz port, na którym nasłuchuje nasz VPN)
AllowedIPs= 0.0.0.0/0, ::/0
Teraz aby przetestować naszą konfigurację, wracamy na serwer aby odpalić naszą usługę.
wg-quick up wg0
Aby sprawdzić czy nasza konfiguracja pomyślnie się wczytała, możemy wpisać polecenie:
wg show
Jeżeli nam wyświetlą się informacje o istniejącym Peer-ze, to znaczy że połączenie działa.
Teraz sprawdźmy czy wszystko działa, wejdźmy na windowsa i spróbujmy odpalić jakąś stronę internetową. Wszystko trwa trochę dłużej niż byśmy to robili przez sieć w domu, lecz strona powinna się załadować i w takim wyniku na strone weszła nasza maszyna, nie wiedząc że tak naprawde my jesteśmy klientami.