Sedert WireGuard toekomstige kern Linux 5.6, het ek besluit om te kyk hoe om hierdie VPN die beste met my te integreer .
Оборудование
- Raspberry Pi 3 met LTE-module en openbare IP. Daar sal 'n VPN-bediener wees (hierna genoem randloper)
- Foon aan Android, wat 'n VPN vir alle kommunikasie moet gebruik
- notebook Linux, wat slegs VPN binne die netwerk moet gebruik
Elke toestel wat aan 'n VPN koppel, moet aan elke ander toestel kan koppel. Byvoorbeeld, 'n foon moet in staat wees om aan 'n webbediener op 'n skootrekenaar te koppel as beide toestelle deel is van 'n VPN-netwerk. As die opstelling eenvoudig genoeg is, kan u daaraan dink om aan 'n VPN en 'n rekenaar (via Ethernet) te koppel.
As in ag geneem word dat bedrade en draadlose verbindings mettertyd minder veilig word (, и ), Ek oorweeg dit ernstig om dit te gebruik WireGuard vir al my toestelle, ongeag in watter omgewing hulle loop.
Sagteware installasie
WireGuard bied vir die meeste verspreidings Linux, Windows и macOSAansoeke vir Android en iOS word deur appwinkels afgelewer.
Ek het die nuutste Fedora Linux 31, en voor die installering was ek te lui om die handleiding te lees. Ek het net die pakkette gevind. wireguard-tools, het hulle geïnstalleer en kon toe nie agterkom hoekom niks werk nie. Verdere ondersoek het aan die lig gebring dat ek nie die pakket geïnstalleer het nie wireguard-dkms (met 'n netwerkbestuurder), en dit was nie in die bewaarplek van my verspreiding nie.
As ek die instruksies gelees het, sou ek die regte stappe geneem het:
$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools Ek het die Raspbian Buster-verspreiding op my Raspberry Pi geïnstalleer, daar is reeds 'n pakket wireguard, installeer dit:
$ sudo apt install wireguardOp die foon Android Ek het die toepassing geïnstalleer uit die amptelike katalogus van die Google App Store.
Installeer sleutels
Om nodusse te verifieer Wireguard Gebruik 'n eenvoudige privaat/publieke sleutelskema om VPN-nodusse te verifieer. Jy kan maklik VPN-sleutels genereer met die volgende opdrag:
$ 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.keyDit gee ons drie sleutelpare (ses lêers). Ons sal nie verwys na lêers in configs nie, maar kopieer die inhoud hier: elke sleutel is een reël in base64.
Skep 'n konfigurasielêer vir 'n VPN-bediener (Raspberry Pi)
Die konfigurasie is redelik eenvoudig, ek het die volgende lêer geskep /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'n Paar notas:
- Op die toepaslike plekke moet u die lyne van die lêers met die sleutels invoeg
- My VPN gebruik interne reeks
10.200.200.0/24 - Vir spanne
PostUp/PostDownEk het 'n eksterne netwerk koppelvlak wwan0, jy kan 'n ander een hê (byvoorbeeld, eth0)
Die VPN-netwerk word maklik opgevoed met die volgende opdrag:
$ sudo wg-quick up wg0 Een klein detail: as 'n DNS-bediener het ek gebruik dnsmasq gekoppel aan 'n netwerkkoppelvlak br0, Ek het ook toestelle bygevoeg wg0 na die lys van toegelate toestelle. In dnsmasq word dit gedoen deur 'n nuwe reël met die netwerkkoppelvlak by die konfigurasielêer by te voeg /etc/dnsmasq.conf, byvoorbeeld:
interface=br0
interface=wg0Ek het ook 'n iptable-reël bygevoeg om verkeer na die luisterende UDP-poort (51280) toe te laat:
$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPTNoudat alles werk, kan ons die outomatiese bekendstelling van die VPN-tonnel registreer:
$ sudo systemctl enable wg-quick@wg0.serviceSkootrekenaar kliënt konfigurasie
Skep 'n konfigurasielêer op die skootrekenaar /etc/wireguard/wg0.conf met dieselfde instellings:
[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:51820Notas:
- In plaas van edgewalker, moet u 'n openbare IP- of VPN-bedienergasheer spesifiseer
- Deur instelling
AllowedIPsop10.200.200.0/24, gebruik ons slegs die VPN om toegang tot die interne netwerk te verkry. Verkeer na alle ander IP-adresse/bedieners sal voortgaan om deur "gewone" oop kanale te gaan. Die vooraf gekonfigureerde DNS-bediener op die skootrekenaar sal ook gebruik word.
Vir toetsing en outomatiese bekendstelling gebruik ons dieselfde opdragte wg-quick и systemd:
$ sudo wg-quick up wg0
$ sudo systemctl enable wg-quick@wg0.serviceDie kliënt opstel vir Android-foon
Vir telefoon Android Ons skep 'n baie soortgelyke konfigurasielêer (kom ons noem dit 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 Anders as die skootrekenaarkonfigurasie, moet die telefoon ons VPN-bediener as sy DNS-bediener (string DNS), asook alle verkeer deur die VPN-tonnel (AllowedIPs = 0.0.0.0/0).
In plaas daarvan om die lêer na jou mobiele toestel te kopieer, kan jy dit na 'n QR-kode omskakel:
$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.confDie QR-kode sal as ASCII na die konsole uitgevoer word. Dit kan vanaf die toepassing geskandeer word. Android VPN en konfigureer die VPN-tonnel outomaties.
Output
aanpassing WireGuard eenvoudig magies in vergelyking met OpenVPN.
Bron: will.com
