Mivel a WireGuard LTE-routeremmel/hotspotommal Raspberry Pi-on .
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ások, és Szoftver telepítése
A WireGuard
előre lefordított csomagokat biztosít 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ítettemWireGuard VPN 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.keyEz 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/32Né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/PostDownszá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=wg0Ezenkí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 ACCEPTMost, hogy minden működik, beállíthatjuk a VPN alagút automatikus indítását:
$ sudo systemctl enable wg-quick@wg0.serviceA 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:51820Megjegyzé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álata10.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 telefononKlient 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.confA 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
