Egy egyszerű VPN beállítása a következővel: WireGuard és a Raspberry Pi, mint szerver

Óta WireGuard részévé válni jövőbeli mag Linux 5.6-os verzióban úgy döntöttem, hogy megnézem, hogyan lehetne ezt a VPN-t a legjobban integrálni 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ó)
  • Telefon bekapcsolva Android, amelynek minden kommunikációhoz VPN-t kell használnia
  • jegyzetfüzet Linux, amelynek csak a hálózaton belül szabad 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 használatát WireGuard minden eszközömön, függetlenül attól, hogy milyen környezetben futnak.

Szoftver telepítése

WireGuard biztosítja előre összeállított csomagok a legtöbb disztribúcióhoz Linux, Windows и macOSJelentkezések Android és az iOS alkalmazásboltokon keresztül érhető el.

A legújabb Fedorám van. Linux 31-es verzió, és telepítés előtt túl lusta voltam elolvasni a kézikönyvet. Csak a csomagokat találtam meg. 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

A telefonon Android Telepítettem az alkalmazást WireGuard VPN a Google App Store hivatalos katalógusából.

Kulcsok telepítése

Csomópontok hitelesítéséhez Wireguard Egyszerű privát/nyilvános kulcsú sémát használ a VPN-csomópontok hitelesítéséhez. VPN-kulcsokat könnyedén generálhat a következő paranccsal:

$ 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 wg-quick@wg0.service

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 wg-quick@wg0.service

Az ügyfél beállítása a következőhöz: Android-telefon

Telefonhoz Android Létrehozunk egy nagyon hasonló konfigurációs fájlt (nevezzük el 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 formátumban jelenik meg a konzolon. Az alkalmazásból beolvasható. Android VPN-t használ, és automatikusan konfigurálja a VPN-alagutat.

Teljesítmény

beállítás WireGuard egyszerűen varázslatos ahhoz képest, OpenVPN.

Forrás: will.com

Vásároljon megbízható tárhelyet DDoS védelemmel, VPS VDS szerverekkel rendelkező webhelyekhez 🔥 Vásároljon megbízható weboldal tárhelyet DDoS védelemmel, VPS VDS szerverekkel | ProHoster