Sukad sa WireGuard
Kagamitan
- Raspberry Pi 3 nga adunay LTE module ug public IP. Adunay usa ka VPN server (gitawag nga edgewalker)
- Usa ka Android phone nga kinahanglang mogamit ug VPN para sa tanang komunikasyon
- Ang Linux laptop nga kinahanglan mogamit VPN lamang sa sulod sa network
Ang matag device nga nagkonektar sa usa ka VPN kinahanglang makakonektar sa matag laing device. Pananglitan, ang usa ka telepono kinahanglan nga makakonektar sa usa ka web server sa usa ka laptop kung ang duha nga mga aparato bahin sa usa ka VPN network. Kung ang pag-setup yano ra, nan mahimo nimong hunahunaon ang bahin sa pagkonekta sa usa ka VPN ug usa ka desktop (pinaagi sa Ethernet).
Gikonsiderar nga ang mga wired ug wireless nga koneksyon nahimong dili kaayo luwas sa paglabay sa panahon (
Pag-instalar sa software
Naghatag ang WireGuard
Ako adunay pinakabag-o nga Fedora Linux 31 ug ako tapulan kaayo sa pagbasa sa manwal sa wala pa i-install. Bag-o lang nakit-an ang mga pakete wireguard-tools
, gi-install kini, ug unya wala mahibal-an kung ngano nga walaβy nagtrabaho. Ang dugang nga imbestigasyon nagpadayag nga wala nako ma-install ang package wireguard-dkms
(uban sa usa ka drayber sa network), ug wala kini sa tipiganan sa akong pag-apod-apod.
Kung gibasa pa nako ang mga panudlo, gihimo nako ang husto nga mga lakang:
$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools
Naa koy na-install nga Raspbian Buster distribution sa akong Raspberry Pi, naa nay package wireguard
, i-install kini:
$ sudo apt install wireguard
Gi-install nako ang app sa akong android phone
Pag-instalar sa mga yawe
Aron ma-authenticate ang mga node, ang Wireguard naggamit sa usa ka yano nga pribado/publiko nga yawe nga pamaagi aron mapamatud-an ang mga VPN node. Dali ka makahimo og mga yawe sa VPN gamit ang mosunod nga sugo:
$ 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
Naghatag kini kanamo og tulo ka yawe nga pares (unom ka mga file). Dili kami maghisgot sa mga file sa mga config, apan kopyaha ang mga sulud dinhi: ang matag yawe usa ka linya sa base64.
Paghimo og Configuration File para sa VPN Server (Raspberry Pi)
Ang pag-configure yano ra, gibuhat nako ang mosunud nga file /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
Pipila ka mga nota:
- Sa angay nga mga lugar kinahanglan nimo nga isulud ang mga linya gikan sa mga file nga adunay mga yawe
- Ang akong VPN naggamit sa internal range
10.200.200.0/24
- Para sa mga team
PostUp
/PostDown
Naa koy external nga interface sa network nga wwan0, mahimo nga lahi ka (pananglitan, eth0)
Ang VPN network dali nga gidala sa mosunod nga sugo:
$ sudo wg-quick up wg0
Usa ka gamay nga detalye: isip DNS server, akong gigamit dnsmasq
konektado sa interface sa network br0
, gidugang ko usab ang mga aparato wg0
sa lista sa gitugotan nga mga aparato. Sa dnsmasq, kini gihimo pinaagi sa pagdugang sa usa ka bag-ong linya sa network interface sa configuration file /etc/dnsmasq.conf
sama pananglit:
interface=br0
interface=wg0
Usab, nagdugang ako usa ka iptable nga lagda aron tugutan ang trapiko sa pagpaminaw sa UDP port (51280):
$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPT
Karon nga ang tanan nagtrabaho, mahimo namong irehistro ang awtomatikong paglansad sa VPN tunnel:
$ sudo systemctl enable [email protected]
Konfigurasyon sa kliyente sa laptop
Sa laptop, paghimo og configuration file /etc/wireguard/wg0.conf
nga adunay parehas nga mga setting:
[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
Mahinumduman:
- Imbis nga edgewalker, kinahanglan nimo nga ipiho ang usa ka publiko nga IP o VPN server host
- Pinaagi sa setting
AllowedIPs
sa10.200.200.0/24
, gigamit ra namo ang VPN aron ma-access ang internal nga network. Ang trapiko sa tanan nga uban pang mga IP adres/server magpadayon sa pag-agi sa "regular" nga bukas nga mga agianan. Ang pre-configured DNS server sa laptop gamiton usab.
Alang sa pagsulay ug awtomatik nga paglansad, gigamit namon ang parehas nga mga mando wg-quick
ΠΈ systemd
:
$ sudo wg-quick up wg0
$ sudo systemctl enable [email protected]
Pag-set up sa usa ka kliyente sa usa ka Android nga telepono
Alang sa usa ka Android nga telepono, naghimo kami usa ka parehas nga file sa pag-configure (tawagon naton kini 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
Dili sama sa pag-configure sa laptop, kinahanglan gamiton sa telepono ang among VPN server ingon nga DNS server (string DNS
), ingon man ipasa ang tanan nga trapiko pinaagi sa VPN tunnel (AllowedIPs = 0.0.0.0/0
).
Imbis nga kopyahon ang file sa imong mobile device, mahimo nimo kini i-convert sa QR code:
$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.conf
Ang QR code ipagawas sa console isip ASCII. Mahimo kini ma-scan gikan sa Android VPN app ug awtomatikong mag-set up og VPN tunnel.
konklusyon
Ang pag-set up sa WireGuard usa ka mahika kon itandi sa OpenVPN.
Source: www.habr.com