Dahil sa WireGuard hinaharap na core Linux 5.6, napagpasyahan kong tingnan kung paano pinakamahusay na maisama ang VPN na ito sa aking .
Оборудование
- Raspberry Pi 3 na may LTE module at pampublikong IP address. Magkakaroon ng VPN server dito (simula dito sa text na ito ay tinatawag edgewalker)
- Naka-on ang telepono Android, na dapat gumamit ng VPN para sa lahat ng komunikasyon
- Laptop Linux, na dapat gumamit lamang ng VPN sa loob ng network
Ang bawat device na kumokonekta sa VPN ay dapat na makakonekta sa lahat ng iba pang device. Halimbawa, ang isang telepono ay dapat na makakonekta sa isang web server sa isang laptop kung ang parehong mga aparato ay bahagi ng isang VPN network. Kung ang pag-setup ay naging medyo simple, maaari mong isipin ang tungkol sa pagkonekta sa desktop sa VPN (sa pamamagitan ng Ethernet).
Isinasaalang-alang na ang mga wired at wireless na koneksyon ay nagiging mas ligtas sa paglipas ng panahon (, и ), seryoso kong pinag-iisipan ang paggamit ng WireGuard para sa lahat ng aking mga device, kahit saang kapaligiran pa man sila ginagamit.
Pag-install ng software
WireGuard nagbibigay para sa karamihan ng mga distribusyon Linux, Windows и macOSMga aplikasyon para sa Android at ang iOS ay inihahatid sa pamamagitan ng mga app store.
Mayroon akong pinakabagong Fedora Linux 31, at bago ko i-install ay tinatamad akong basahin ang manwal. Natagpuan ko na lang ang mga pakete. wireguard-tools, na-install ang mga ito, at pagkatapos ay hindi malaman kung bakit walang gumagana. Ang karagdagang pagsisiyasat ay nagsiwalat na hindi ko naka-install ang package wireguard-dkms (na may isang driver ng network), ngunit wala ito sa imbakan ng aking pamamahagi.
Kung nabasa ko ang mga tagubilin, ginawa ko ang mga tamang hakbang:
$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools Mayroon akong pamamahagi ng Raspbian Buster na naka-install sa aking Raspberry Pi, mayroon nang isang pakete doon wireguard, i-install ito:
$ sudo apt install wireguardSa telepono Android Na-install ko na ang application mula sa opisyal na katalogo ng Google App Store.
Pag-install ng mga susi
Para patunayan ang mga node Wireguard Gumagamit ng simpleng private/public key scheme para patunayan ang mga VPN node. Madali kang makakabuo ng mga VPN key gamit ang sumusunod na command:
$ 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.keyNagbibigay ito sa amin ng tatlong key pares (anim na file). Hindi kami magre-refer sa mga file sa mga config, ngunit kopyahin ang mga nilalaman dito: bawat key ay isang linya sa base64.
Paglikha ng configuration file para sa VPN server (Raspberry Pi)
Ang pagsasaayos ay medyo simple, nilikha ko ang sumusunod na 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/32Isang pares ng mga tala:
- Sa naaangkop na mga lugar kailangan mong magpasok ng mga linya mula sa mga file na may mga susi
- Ang aking VPN ay gumagamit ng panloob na banda
10.200.200.0/24 - Para sa mga koponan
PostUp/PostDownMayroon akong panlabas na interface ng network na wwan0, maaaring mayroon kang iba (halimbawa, eth0)
Ang VPN network ay madaling itataas gamit ang sumusunod na command:
$ sudo wg-quick up wg0 Isang maliit na detalye: bilang DNS server na ginamit ko dnsmasq nakatali sa isang interface ng network br0, nagdagdag din ako ng mga device wg0 sa listahan ng mga pinapayagang device. Sa dnsmasq ito ay ginagawa sa pamamagitan ng pagdaragdag ng bagong network interface line sa configuration file /etc/dnsmasq.conf, halimbawa:
interface=br0
interface=wg0Bukod pa rito, nagdagdag ako ng iptable na panuntunan upang payagan ang trapiko sa UDP listening port (51280):
$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPTNgayon na gumagana na ang lahat, maaari naming i-set up ang awtomatikong paglulunsad ng VPN tunnel:
$ sudo systemctl enable wg-quick@wg0.serviceConfiguration ng kliyente sa laptop
Gumawa ng configuration file sa isang laptop /etc/wireguard/wg0.conf na may parehong 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:51820remarks:
- Sa halip na edgewalker kailangan mong tukuyin ang pampublikong IP o VPN server host
- Sa pamamagitan ng pagtatakda
AllowedIPssa10.200.200.0/24, gumagamit lang kami ng VPN para ma-access ang panloob na network. Ang trapiko sa lahat ng iba pang mga IP address/server ay patuloy na dadaan sa "normal" na mga bukas na channel. Gagamitin din nito ang paunang na-configure na DNS server sa laptop.
Para sa pagsubok at awtomatikong paglulunsad, ginagamit namin ang parehong mga utos wg-quick и systemd:
$ sudo wg-quick up wg0
$ sudo systemctl enable wg-quick@wg0.servicePag-set up ng kliyente para sa Android-telepono
Para sa telepono Android Gumagawa tayo ng halos kaparehong configuration file (tawagin natin itong 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 Hindi tulad ng configuration sa laptop, dapat gamitin ng telepono ang aming VPN server bilang DNS server (line DNS), at ipasa din ang lahat ng trapiko sa VPN tunnel (AllowedIPs = 0.0.0.0/0).
Sa halip na kopyahin ang file sa iyong mobile device, maaari mo itong i-convert sa isang QR code:
$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.confAng QR code ay ilalabas sa console bilang ASCII. Maaari itong i-scan mula sa app. Android VPN at awtomatikong i-configure ang VPN tunnel.
Pagbubuhos
pag-aayos WireGuard mahiwagang lamang kumpara sa OpenVPN.
Pinagmulan: www.habr.com
