Egyszerű VPN beállítása WireGuard-dal és Raspberry Pi-val mint szerver

Mivel a WireGuard a Linux 5.6-os kernel jövőbeli részévé válik, úgy döntöttem, hogy megnézem, hogyan integrálhatom legjobban ezt a VPN-t az LTE-routeremmel/hotspotommal Raspberry Pi-on Raspberry Pi 3 LTE modullal és nyilvános IP címmel. Itt lesz a VPN-szerver (a továbbiakban ezt nevezzük.

Hardver

  • edgewalker Android telefon, amelynek a VPN-t kell használnia minden kommunikációhoz)
  • Linux laptop, amelynek a VPN-t csak a hálózaton belül kell használnia
  • Minden eszköz, amely csatlakozik a VPN-hez, képesnek kell lennie arra, hogy kapcsolódjon minden más eszközhöz. Például a telefon képesnek kell lennie arra, hogy csatlakozzon a laptop webkiszolgálójához, ha mindkét eszköz a VPN hálózat részét képezi. Ha a beállítás elég egyszerű lesz, akkor a desktopot is meg lehet fontolni a VPN-hez való csatlakozásra (Etherneten keresztül).

Figyelembe véve, hogy az vezetékes és vezeték nélküli kapcsolatok idővel egyre kevésbé biztonságosak (

célzott támadásokKRACK támadás WPA2 ellen, Dragonblood támadás WPA3 ellen és ), komolyan fontolgatom a WireGuard használatát minden eszközömön, függetlenül attól, hogy milyen környezetben futnak.Szoftver telepítése

A WireGuard

előre lefordított csomagokat biztosít a legtöbb Linux, Windows és macOS disztribúcióhoz. Az Android és iOS alkalmazások az alkalmazásboltokon keresztül érhetők el. Nekem a legfrisebb Fedora Linux 31 van, és a telepítés előtt lustáltam elolvasni a kézikönyvet. Csak megtaláltam a csomagokat

wireguard-tools , telepítettem őket, de utána nem értettem, miért nem működik semmi. A további kutatás rámutatott, hogy nekem nincs telepítve a csomagwireguard-dkms (hálózati illesztőprogram), és nem volt a disztribúcióm tárolójában. Ha elolvastam volna az utasítást, akkor helyes lépéseket tettem volna:

$ sudo dnf copr enable jdoss/wireguard $ sudo dnf install wireguard-dkms wireguard-tools

A Raspberry Pi-n nekem Raspbian Buster disztribúció van telepítve, ott már megvan a csomag

wireguard , telepítjük:$ sudo apt install wireguard

Android telefonon az alkalmazást telepítettem

WireGuard VPN a Google App Store hivatalos katalógusából. Kulcsok telepítése

A WireGuard a csomópontok hitelesítésére egyszerű nyilvános/privát kulcsos sémát alkalmaz. Könnyen létrehozhat kulcsokat VPN-hez a következő paranccsal:

A Wireguard csomópontok hitelesítéséhez egyszerű titkos kulcsos / nyilvános kulcsos sémát használ a VPN csomópontok azonosítására. Könnyen létrehozhat VPN kulcsokat a következő parancs segítségével:

$ wg genkey | tee wg-laptop-private.key |  wg pubkey > wg-laptop-public.key
$ wg genkey | tee wg-server-private.key |  wg pubkey > wg-server-public.key
$ wg genkey | tee wg-mobile-private.key |  wg pubkey > wg-mobile-public.key

Ez három kulcspárt (hat fájl) ad nekünk. Ne hivatkozzunk a fájlokra a konfigurációkban, inkább másoljuk ide a tartalmat: minden kulcs egy sor a base64-ben.

VPN szerver konfigurációs fájl létrehozása (Raspberry Pi)

A konfiguráció meglehetősen egyszerű, a következő fájlt hoztam létre /etc/wireguard/wg0.conf:

[Interface]
Address = 10.200.200.1/24
ListenPort = 51820
PrivateKey = 
PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o wwan0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o wwan0 -j MASQUERADE

[Peer]
# laptop
PublicKey = 
AllowedIPs = 10.200.200.2/32

[Peer]
# mobiltelefon
PublicKey = 
AllowedIPs = 10.200.200.3/32

Néhány megjegyzés:

  • A megfelelő helyekre be kell illeszteni a kulcsfájlokból származó sorokat
  • A VPN hálózatomban belső tartományt használok 10.200.200.0/24
  • A parancsokhoz PostUp/PostDown számomra a külső hálózati interfészt wwan0-ra állítottam, nálad más lehet (például eth0)

A VPN hálózat könnyen létrehozható a következő paranccsal:

$ sudo wg-quick up wg0

Egy kis részlet: DNS-szerverként az alábbiakat használtam dnsmasq a hálózati interfészhez való kötődéssel br0, szintén hozzáadtam az eszközöket wg0 a megengedett eszközök listájához. A dnsmasq-ban ez új sor hozzáadásával történik a konfigurációs fájlban a hálózati interfésszel /etc/dnsmasq.conf, például:

interface=br0
interface=wg0

Ezenkívül hozzáadtam egy iptable szabályt, hogy engedélyezzem a forgalmat a figyelő UDP porton (51280):

$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPT

Most, hogy minden működik, beállíthatjuk a VPN alagút automatikus indítását:

$ sudo systemctl enable wg-quick@wg0.service

A kliens konfigurációja a laptopon

A laptopon létrehozunk egy konfigurációs fájlt /etc/wireguard/wg0.conf ugyanazzal a beállítással:

[Interface]
Address = 10.200.200.2/24
PrivateKey = 

[Peer]
PublicKey = 
AllowedIPs = 10.200.200.0/24
Endpoint = edgewalker:51820

Megjegyzések:

  • Az edgewalker helyett a VPN szerver nyilvános IP-jét vagy hosztját kell megadni
  • Az AllowedIPs beállításával , a VPN-t csak a belső hálózathoz való hozzáféréshez használjuk. A forgalom minden más IP-címre/szerverre továbbra is a "szokásos" nyílt csatornákon halad. Emellett a laptopon előre beállított DNS-szerver is lesz használatban. Gyorsan emlékezzünk vissza, hogyan működik a moduláris aritmetika. Az óra már egy ismert koncepció. Az órák használata 10.200.200.0/24A teszteléshez és automatikus indításhoz ugyanazokat a parancsokat használjuk

wg-quick $ sudo wg-quick up wg0 $ sudo systemctl enable wg-quick@wg0.service és systemd:

Kliens beállítása Android telefonon

Klient beállítása Android telefonon

Android telefonhoz hasonló konfigurációs fájlt készítünk (nevezzük el mobile.conf):

[Interface]
Address = 10.200.200.3/24
PrivateKey = 
DNS = 10.200.200.1
        
[Peer]
PublicKey = 
AllowedIPs = 0.0.0.0/0
Endpoint = edgewalker:51820

A laptop konfigurációjától eltérően a telefonunknak a VPN-szerverünket kell DNS-szerverként használnia (sor DNS), és az összes forgalmat a VPN-alagúton kell továbbítania (AllowedIPs = 0.0.0.0/0).

A fájl mobil eszközre másolása helyett QR-kódra is alakíthatjuk:

$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.conf

A QR-kód ASCII formátumban fog megjelenni a konzolban. Ezt beolvashatjuk az Android VPN alkalmazásából és automatikusan beállíthatjuk a VPN-alagutat.

Következtetés

A WireGuard beállítása egyszerűen varázslatos az OpenVPN-hez képest.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster