Koska WireGuard tuleva ydin Linux 5.6, päätin selvittää, miten tämä VPN parhaiten integroidaan omaan .
Оборудование
- 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ä (, и ), harkitsen vakavasti sen käyttöä WireGuard kaikille laitteilleni, riippumatta siitä, missä ympäristössä ne toimivat.
Ohjelmistojen asennus
WireGuard tarjoaa 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 wireguardPuhelimessa Android Asensin sovelluksen 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.keyTä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/32Pari 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/PostDownMinulla 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=wg0Lisäsin myös iptable-säännön sallimaan liikenteen kuuntelevaan UDP-porttiin (51280):
$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPTNyt kun kaikki toimii, voimme rekisteröidä VPN-tunnelin automaattisen käynnistyksen:
$ sudo systemctl enable wg-quick@wg0.serviceKannettavan 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:51820Huomautuksia:
- Edgewalkerin sijaan sinun on määritettävä julkinen IP- tai VPN-palvelinisäntä
- Asettamalla
AllowedIPspäälle10.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.serviceAsiakkaan 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.confQR-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
