WireGuardista lähtien
Оборудование
- Raspberry Pi 3 LTE-moduulilla ja julkisella IP-osoitteella. Siellä on VPN-palvelin (jäljempänä ns reunakävelijä)
- Android-puhelin, jonka on käytettävä VPN:ää kaikkeen viestintään
- Linux-kannettava, jonka on käytettävä 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ä (
Ohjelmistojen asennus
WireGuard tarjoaa
Minulla on uusin Fedora Linux 31 ja olin liian laiska lukemaan käyttöohjetta ennen asennusta. Löysin juuri 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
Asensin sovelluksen Android-puhelimeesi
Avainten asennus
Solmujen todentamiseen Wireguard käyttää yksinkertaista yksityisen/julkisen avaimen mallia 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 [email protected]
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ää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 [email protected]
Asiakkaan määrittäminen Android-puhelimeen
Android-puhelimelle luomme hyvin samanlaisen määritystiedoston (kutsutaanko sitä 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 tulostetaan konsoliin ASCII-muodossa. Se voidaan skannata Android VPN -sovelluksesta ja määrittää VPN-tunnelin automaattisesti.
johtopäätös
WireGuardin määrittäminen on vain maaginen verrattuna OpenVPN:ään.
Lähde: will.com