Yksinkertaisen VPN:n asentaminen WireGuard ja Raspberry Pi palvelimena

Koska WireGuard tulla osaksi tuleva ydin Linux 5.6, päätin selvittää, miten tämä VPN parhaiten integroidaan omaan LTE-reititin/tukiasema Raspberry Pi:ssä.

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

  • Raspberry Pi 3 LTE-moduulilla ja julkisella IP-osoitteella. Siellä on VPN-palvelin (jäljempänä ns reunakävelijä)
  • Puhelin päällä Android, jonka on käytettävä VPN:ää kaikessa viestinnässä
  • muistikirja Linux, jonka tulisi käyttää VPN:ää vain verkon sisällä

Jokaisen VPN:ään yhdistävän laitteen on voitava muodostaa yhteys kaikkiin muihin laitteisiin. Esimerkiksi puhelimen pitäisi pystyä muodostamaan yhteys kannettavan tietokoneen verkkopalvelimeen, jos molemmat laitteet ovat osa VPN-verkkoa. Jos asennus on tarpeeksi yksinkertainen, voit harkita yhteyden muodostamista VPN-verkkoon ja työpöytään (Ethernet-yhteyden kautta).

Ottaen huomioon, että langalliset ja langattomat yhteydet heikkenevät ajan myötä (kohdistettuja hyökkäyksiä, KRACK WPA2 hakkerointihyökkäys и Dragonblood-hyökkäys WPA3:a vastaan), harkitsen vakavasti sen käyttöä WireGuard kaikille laitteilleni, riippumatta siitä, missä ympäristössä ne toimivat.

Ohjelmistojen asennus

WireGuard tarjoaa valmiiksi kootut paketit useimmissa jakeluissa Linux, Windows и macOSHakemukset Android ja iOS toimitetaan sovelluskauppojen kautta.

Minulla on uusin Fedora Linux 31, ja ennen asennusta olin liian laiska lukemaan käyttöohjetta. Löysin vain paketit. wireguard-tools, asensin ne, enkä sitten voinut selvittää, miksi mikään ei toiminut. Lisätutkimukset paljastivat, että minulla ei ollut pakettia asennettuna wireguard-dkms (verkkoohjaimella), eikä se ollut jakeluni arkistossa.

Jos olisin lukenut ohjeet, olisin tehnyt oikeat toimenpiteet:

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

Minulla on Raspbian Buster -jakelu asennettuna Raspberry Pi -laitteeseen, paketti on jo olemassa wireguard, asenna se:

$ sudo apt install wireguard

Puhelimessa Android Asensin sovelluksen WireGuard VPN Google App Storen virallisesta luettelosta.

Avainten asennus

Solmujen todentamiseksi Wireguard Käyttää yksinkertaista yksityisen/julkisen avaimen järjestelmää VPN-solmujen todentamiseen. Voit helposti luoda VPN-avaimia seuraavalla komennolla:

$ 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

Tämä antaa meille kolme avainparia (kuusi tiedostoa). Emme viittaa tiedostoihin asetuksissa, vaan kopioimme sisällön tähän: jokainen avain on yksi rivi base64:ssä.

Määritystiedoston luominen VPN-palvelimelle (Raspberry Pi)

Kokoonpano on melko yksinkertainen, loin seuraavan tiedoston /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

Pari huomautusta:

  • Asianmukaisiin paikkoihin sinun on lisättävä rivit tiedostoista avaimilla
  • VPN-verkkoni käyttää sisäistä kantamaa 10.200.200.0/24
  • Joukkueille PostUp/PostDown Minulla on ulkoinen verkkoliitäntä wwan0, sinulla voi olla erilainen (esimerkiksi eth0)

VPN-verkko saadaan helposti esiin seuraavalla komennolla:

$ sudo wg-quick up wg0

Yksi pieni yksityiskohta: käytin DNS-palvelimena dnsmasq kytketty verkkoliitäntään br0, Lisäsin myös laitteita wg0 sallittujen laitteiden luetteloon. Dnsmasqissa tämä tehdään lisäämällä määritystiedostoon uusi rivi verkkoliitännällä /etc/dnsmasq.conf, esimerkiksi:

interface=br0
interface=wg0

Lisäsin myös iptable-säännön sallimaan liikenteen kuuntelevaan UDP-porttiin (51280):

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

Nyt kun kaikki toimii, voimme rekisteröidä VPN-tunnelin automaattisen käynnistyksen:

$ sudo systemctl enable wg-quick@wg0.service

Kannettavan tietokoneen asiakasasetukset

Luo määritystiedosto kannettavassa tietokoneessa /etc/wireguard/wg0.conf samoilla asetuksilla:

[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

Huomautuksia:

  • Edgewalkerin sijaan sinun on määritettävä julkinen IP- tai VPN-palvelinisäntä
  • Asettamalla AllowedIPs päälle 10.200.200.0/24, käytämme vain VPN:ää päästäksemme sisäverkkoon. Liikenne kaikkiin muihin IP-osoitteisiin/palvelimiin kulkee edelleen "tavallisten" avoimien kanavien kautta. Myös kannettavan tietokoneen esikonfiguroitua DNS-palvelinta käytetään.

Testaukseen ja automaattiseen käynnistykseen käytämme samoja komentoja wg-quick и systemd:

$ sudo wg-quick up wg0
$ sudo systemctl enable wg-quick@wg0.service

Asiakkaan määrittäminen Android-puhelin

Puhelimelle Android Luomme hyvin samankaltaisen asetustiedoston (kutsutaan sitä vaikka 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

Toisin kuin kannettavan tietokoneen kokoonpanossa, puhelimen tulisi käyttää VPN-palvelinta DNS-palvelimena (merkkijono DNS), sekä ohjata kaikki liikenne VPN-tunnelin läpi (AllowedIPs = 0.0.0.0/0).

Sen sijaan, että kopioit tiedoston mobiililaitteeseen, voit muuntaa sen QR-koodiksi:

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

QR-koodi näytetään konsolissa ASCII-muodossa. Se voidaan skannata sovelluksesta. Android VPN ja määrittää VPN-tunnelin automaattisesti.

johtopäätös

säätö WireGuard yksinkertaisesti maaginen verrattuna OpenVPN.

Lähde: will.com

Osta luotettava isännöinti sivustoille, joissa on DDoS-suojaus, VPS VDS -palvelimet 🔥 Osta luotettavaa verkkosivustojen hostingia DDoS-suojauksella, VPS VDS -palvelimilla | ProHoster