Sûnt WireGuard
Wetter - Agrarwetter
- Raspberry Pi 3 mei LTE-module en iepenbiere IP. D'r sil in VPN-tsjinner wêze (hjirnei oantsjutten as edgewalker)
- In Android-tillefoan dy't in VPN moat brûke foar alle kommunikaasje
- Linux-laptop dy't VPN allinich yn it netwurk moat brûke
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 (
Ynstallaasje fan software
WireGuard jout
Ik haw de lêste Fedora Linux 31 en ik wie te lui om de hantlieding te lêzen foardat jo ynstallearje. Krekt fûn 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 wireguard
Ik ynstallearre de app op myn android telefoan
Ynstallaasje fan kaaien
Om knooppunten te ferifiearjen, brûkt Wireguard in ienfâldich privee/iepenbiere kaaiskema om VPN-knooppunten te autentisearjen. Jo kinne maklik VPN-kaaien oanmeitsje 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.key
Dit 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/32
In 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
/PostDown
Ik 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.conf
bygelyks:
interface=br0
interface=wg0
Ek 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 ACCEPT
No't alles wurket, kinne wy de automatyske lansearring fan 'e VPN-tunnel registrearje:
$ sudo systemctl enable [email protected]
Laptop 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:51820
Notes:
- Ynstee fan edgewalker moatte jo in iepenbiere IP- as VPN-tsjinnerhost oantsjutte
- Troch ynstelling
AllowedIPs
op10.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 [email protected]
It ynstellen fan in kliïnt op in Android-tillefoan
Foar in Android-tillefoan meitsje wy in heul 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.conf
De QR-koade sil wurde útstjoerd nei de konsole as ASCII. It kin wurde skansearre fanút de Android VPN-app en automatysk in VPN-tunnel ynstelle.
konklúzje
It ynstellen fan WireGuard is gewoan magysk yn ferliking mei OpenVPN.
Boarne: www.habr.com