Állítson be egy egyszerű VPN-t a WireGuard és a Raspberry Pi segítségével szerverként

A WireGuard óta részévé válni a jövőbeli Linux 5.6-os kernel esetében úgy döntöttem, hogy megnézem, hogyan lehet a legjobban integrálni ezt a VPN-t a sajátommal LTE útválasztó/hozzáférési pont a Raspberry Pi-n.

Оборудование

  • 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 (célzott támadások, KRACK WPA2 hackertámadás и Dragonblood támadás a WPA3 ellen), 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 biztosítja előre összeállított csomagok a legtöbb Linux, Windows és macOS disztribúcióhoz. Az Android- és iOS-alkalmazásokat alkalmazáskatalógusokon keresztül szállítjuk.

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 WireGuardVPN a Google App Store hivatalos katalógusából.

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 on 10.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

Hozzászólás