Sûnt de WireGuard takomstige kearn Linux 5.6, ik besleat om te sjen hoe't ik dizze VPN it bêste mei myn yntegrearje koe .
Wetter - Agrarwetter
- Raspberry Pi 3 mei LTE-module en iepenbiere IP. D'r sil in VPN-tsjinner wêze (hjirnei oantsjutten as edgewalker)
- Telefoan oan Android, dy't in VPN brûke moat foar alle kommunikaasje
- Laptop Linux, dy't allinich VPN binnen it netwurk brûke moat
Elk apparaat dat ferbynt mei in VPN moat kinne ferbine mei elk oar apparaat. Bygelyks, in tillefoan soe kinne ferbine mei in webserver op in laptop as beide apparaten diel útmeitsje fan in VPN-netwurk. As de opset ienfâldich genôch is, dan kinne jo tinke oan ferbining mei in VPN en in buroblêd (fia Ethernet).
Yn betinken nommen dat bedrade en draadloze ferbiningen mei de tiid minder feilich wurde (, и ), Ik tink serieus oer it brûken fan WireGuard foar al myn apparaten, nettsjinsteande yn hokker omjouwing se rinne.
Ynstallaasje fan software
WireGuard levert foar de measte distribúsjes Linux, Windows и macOSApplikaasjes foar Android en iOS wurde levere fia appwinkels.
Ik haw de nijste Fedora Linux 31, en foar it ynstallearjen wie ik te lui om de hantlieding te lêzen. Ik fûn krekt de pakketten. wireguard-tools, ynstallearre se, en dan koe net útfine wêrom neat wurke. Fierder ûndersyk die bliken dat ik it pakket net ynstalleare hie wireguard-dkms (mei in netwurk stjoerprogramma), en it wie net yn it depot fan myn distribúsje.
As ik de ynstruksjes hie lêzen, soe ik de goede stappen nommen hawwe:
$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools Ik haw de Raspbian Buster-distribúsje ynstalleare op myn Raspberry Pi, d'r is al in pakket wireguard, ynstallearje it:
$ sudo apt install wireguardOan 'e tillefoan Android Ik haw de applikaasje ynstalleare út 'e offisjele katalogus fan' e Google App Store.
Ynstallaasje fan kaaien
Om knooppunten te autentisearjen Wireguard Brûkt in ienfâldich privee/iepenbier kaaiskema om VPN-knooppunten te autentisearjen. Jo kinne maklik VPN-kaaien generearje mei it folgjende kommando:
$ 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 jout ús trije kaai pearen (seis triemmen). Wy sille net ferwize nei triemmen yn configs, mar kopiearje de ynhâld hjir: elke kaai is ien rigel yn base64.
In konfiguraasjetriem oanmeitsje foar in VPN-tsjinner (Raspberry Pi)
De konfiguraasje is frij simpel, ik makke de folgjende triem /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/32In pear notysjes:
- Op de passende plakken moatte jo de rigels fan 'e bestannen ynfoegje mei de kaaien
- Myn VPN brûkt ynterne berik
10.200.200.0/24 - Foar teams
PostUp/PostDownIk haw in eksterne netwurkynterface wwan0, jo kinne in oare hawwe (bygelyks eth0)
It VPN-netwurk wurdt maklik opbrocht mei it folgjende kommando:
$ sudo wg-quick up wg0 Ien lyts detail: as DNS-tsjinner haw ik brûkt dnsmasq ferbûn mei netwurk ynterface br0, Ik haw ek apparaten tafoege wg0 nei de list mei tastiene apparaten. Yn dnsmasq wurdt dit dien troch in nije rigel ta te foegjen mei de netwurkynterface oan it konfiguraasjetriem /etc/dnsmasq.confbygelyks:
interface=br0
interface=wg0Ek haw ik in iptable-regel tafoege om ferkear te tastean nei de harkjende UDP-poarte (51280):
$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPTNo't alles wurket, kinne wy de automatyske lansearring fan 'e VPN-tunnel registrearje:
$ sudo systemctl enable wg-quick@wg0.serviceLaptop client konfiguraasje
Op 'e laptop meitsje in konfiguraasjetriem /etc/wireguard/wg0.conf mei deselde ynstellings:
[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:51820Notes:
- Ynstee fan edgewalker moatte jo in iepenbiere IP- as VPN-tsjinnerhost oantsjutte
- Troch ynstelling
AllowedIPsop10.200.200.0/24, wy brûke allinich de VPN om tagong te krijen ta it ynterne netwurk. Ferkear nei alle oare IP-adressen/servers sil trochgean troch "gewoane" iepen kanalen. De foarôf ynstelde DNS-tsjinner op 'e laptop sil ek brûkt wurde.
Foar testen en automatyske lansearring brûke wy deselde kommando's wg-quick и systemd:
$ sudo wg-quick up wg0
$ sudo systemctl enable wg-quick@wg0.serviceIt ynstellen fan de kliïnt foar Android-tillefoan
Foar telefoan Android Wy meitsje in tige ferlykber konfiguraasjebestân (lit ús it neame 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 Oars as de laptopkonfiguraasje, moat de tillefoan ús VPN-tsjinner brûke as syn DNS-tsjinner (string DNS), lykas ek alle ferkear troch de VPN-tunnel trochjaan (AllowedIPs = 0.0.0.0/0).
Ynstee fan it kopiearjen fan it bestân nei jo mobyl apparaat, kinne jo it konvertearje nei in QR-koade:
$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.confDe QR-koade wurdt as ASCII nei de konsole útfierd. It kin fanút de app scanne wurde. Android VPN en konfigurearje de VPN-tunnel automatysk.
konklúzje
oanpassing WireGuard gewoan magysk yn ferliking mei OpenVPN.
Boarne: www.habr.com
