A WireGuard óta
Оборудование
- Raspberry Pi 3 LTE modullal és nyilvános IP-vel. Lesz egy VPN-kiszolgáló (a továbbiakban: éljáró)
- Android telefon, amelynek minden kommunikációhoz VPN-t kell használnia
- Linuxos laptop, amelynek csak a hálózaton belül kell VPN-t használnia
Minden VPN-hez csatlakozó eszköznek képesnek kell lennie minden más eszközhöz csatlakozni. Például egy telefonnak képesnek kell lennie egy laptop webszerveréhez csatlakozni, ha mindkét eszköz egy VPN-hálózat része. Ha a beállítás elég egyszerű, akkor elgondolkodhat a VPN-hez és az asztali számítógéphez való csatlakozáson (Ethernet-en keresztül).
Figyelembe véve, hogy a vezetékes és vezeték nélküli kapcsolatok idővel egyre kevésbé biztonságosak (
Szoftver telepítése
A WireGuard biztosítja
A legújabb Fedora Linux 31-et használom, és túl lusta voltam, hogy elolvassam a kézikönyvet a telepítés előtt. Most találtam meg a csomagokat wireguard-tools
, telepítette őket, majd nem sikerült rájönni, miért nem működik semmi. A további vizsgálat során kiderült, hogy nem telepítettem a csomagot wireguard-dkms
(hálózati meghajtóval), és nem volt a disztribúcióm tárolójában.
Ha elolvastam volna az utasításokat, a megfelelő lépéseket tettem volna:
$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools
A Raspbian Buster disztribúció telepítve van a Raspberry Pi-mre, már van csomag wireguard
, telepítse:
$ sudo apt install wireguard
Feltelepítettem az alkalmazást androidos telefonomra
Kulcsok telepítése
A csomópontok hitelesítéséhez a Wireguard egy egyszerű privát/nyilvános kulcs sémát használ a VPN-csomópontok hitelesítésére. A következő paranccsal egyszerűen létrehozhat VPN-kulcsokat:
$ 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
Így három kulcspárt kapunk (hat fájlt). A konfigurációkban nem hivatkozunk a fájlokra, hanem ide másoljuk a tartalmat: minden kulcs egy sor a base64-ben.
Konfigurációs fájl létrehozása VPN-kiszolgálóhoz (Raspberry Pi)
A konfiguráció meglehetősen egyszerű, létrehoztam a következő fájlt /etc/wireguard/wg0.conf
:
[Interface]
Address = 10.200.200.1/24
ListenPort = 51820
PrivateKey = <copy private key from wg-server-private.key>
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 = <copy public key from wg-laptop-public.key>
AllowedIPs = 10.200.200.2/32
[Peer]
# mobile phone
PublicKey = <copy public key from wg-mobile-public.key>
AllowedIPs = 10.200.200.3/32
Pár megjegyzés:
- A megfelelő helyekre be kell szúrni a sorokat a fájlokból a gombokkal
- A VPN-em belső tartományt használ
10.200.200.0/24
- Csapatoknak
PostUp
/PostDown
Van egy wwan0 külső hálózati interfészem, lehet, hogy neked más (például eth0)
A VPN hálózat könnyen előhívható a következő paranccsal:
$ sudo wg-quick up wg0
Egy apró részlet: DNS szerverként használtam dnsmasq
hálózati interfészhez csatlakozik br0
, eszközöket is hozzáadtam wg0
az engedélyezett eszközök listájához. A dnsmasq-ban ez úgy történik, hogy a konfigurációs fájlhoz adunk egy új sort 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, amely lehetővé teszi a forgalmat a figyelő UDP-porthoz (51280):
$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPT
Most, hogy minden működik, regisztrálhatjuk a VPN alagút automatikus elindítását:
$ sudo systemctl enable [email protected]
Laptop kliens konfiguráció
A laptopon hozzon létre egy konfigurációs fájlt /etc/wireguard/wg0.conf
ugyanazokkal a beállításokkal:
[Interface]
Address = 10.200.200.2/24
PrivateKey = <copy private key from wg-laptop-private.key>
[Peer]
PublicKey = <copy public key from wg-server-public.key>
AllowedIPs = 10.200.200.0/24
Endpoint = edgewalker:51820
Megjegyzések:
- Az edgewalker helyett nyilvános IP- vagy VPN-kiszolgáló gazdagépet kell megadnia
- Beállításával
AllowedIPs
on10.200.200.0/24
, csak a VPN-t használjuk a belső hálózat eléréséhez. Az összes többi IP-címre/szerverre irányuló forgalom továbbra is „szokásos” nyitott csatornákon keresztül fog haladni. A laptopon előre konfigurált DNS-kiszolgálót is használni fogja.
A teszteléshez és az automatikus indításhoz ugyanazokat a parancsokat használjuk wg-quick
и systemd
:
$ sudo wg-quick up wg0
$ sudo systemctl enable [email protected]
Ügyfél beállítása Android telefonon
Androidos telefonokhoz nagyon hasonló konfigurációs fájlt készítünk (nevezzük mobile.conf
):
[Interface]
Address = 10.200.200.3/24
PrivateKey = <copy private key from wg-mobile-private.key>
DNS = 10.200.200.1
[Peer]
PublicKey = <copy public key from wg-server-public.key>
AllowedIPs = 0.0.0.0/0
Endpoint = edgewalker:51820
A laptop konfigurációjától eltérően a telefonnak a VPN-kiszolgálónkat kell használnia DNS-kiszolgálóként (string DNS
), valamint átengedi az összes forgalmat a VPN-alagúton (AllowedIPs = 0.0.0.0/0
).
A fájl mobileszközre másolása helyett QR-kóddá alakíthatja:
$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.conf
A QR-kód ASCII-ként jelenik meg a konzolon. Beolvasható az Android VPN alkalmazásból, és automatikusan beállíthat egy VPN alagutat.
Teljesítmény
A WireGuard beállítása varázslatos az OpenVPN-hez képest.
Forrás: will.com