Urteaz geroztik WireGuard etorkizuneko nukleoa Linux 5.6an, VPN hau nirearekin nola integratu ikustea erabaki nuen .
Оборудование
- Raspberry Pi 3 LTE moduluarekin eta IP helbide publikoarekin. Hemen VPN zerbitzari bat egongo da (aurrerantzean deitzen zaio testuan ertz-ibiltaria)
- Telefonoa piztuta Android, komunikazio guztietarako VPN bat erabili behar duena
- koaderno Linux, sare barruan VPN bat bakarrik erabili beharko lukeena
VPNra konektatzen den gailu guztiek beste gailu guztietara konektatu ahal izan behar dute. Adibidez, telefono batek ordenagailu eramangarri batean web zerbitzari batera konektatu ahal izan beharko luke bi gailuak VPN sare baten parte badira. Konfigurazioa nahiko erraza suertatzen bada, mahaigaina VPNra konektatzea pentsa dezakezu (Ethernet bidez).
Kontuan izanda hari gabeko eta kable bidezko konexioak gero eta seguruagoak direla denborarekin (, и ), erabiltzea serio pentsatzen ari naiz WireGuard nire gailu guztientzat, edozein ingurunetan exekutatzen diren kontuan hartu gabe.
Softwarearen instalazioa
WireGuard It eskaintzen banaketa gehienentzat. Linux, Windows и macOSEskaerak Android eta iOS aplikazio-dendetan banatzen dira.
Fedora berriena daukat. Linux 31, eta instalatu aurretik alferregia nintzen eskuliburua irakurtzeko. Paketeak aurkitu berri ditut. wireguard-tools, instalatu zituzten, eta orduan ezin izan zuten asmatu zergatik ez zegoen ezer funtzionatzen. Ikerketa gehiagok agerian utzi du ez dudala paketea instalatuta wireguard-dkms (sareko kontrolatzaile batekin), baina ez zegoen nire banaketaren biltegian.
Argibideak irakurri izan banu, urrats zuzenak hartuko nituzke:
$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools Raspbian Buster banaketa instalatuta daukat nire Raspberry Pi-n, dagoeneko pakete bat dago wireguard, instalatu:
$ sudo apt install wireguardTelefonoan Android Aplikazioa instalatu dut. Google App Store katalogo ofizialetik.
Giltzak instalatzea
Nodoak autentifikatzeko Wireguard VPN nodoak autentifikatzeko gako pribatu/publiko eskema sinple bat erabiltzen du. Erraz sor ditzakezu VPN gakoak komando honekin:
$ 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.keyHonek hiru gako-pare (sei fitxategi) ematen dizkigu. Ez ditugu konfigurazioetako fitxategiak aipatuko, baina kopiatu hemen edukia: gako bakoitza lerro bat da base64-n.
VPN zerbitzarirako konfigurazio fitxategi bat sortzea (Raspberry Pi)
Konfigurazioa nahiko erraza da, ondorengo fitxategia sortu dut /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/32Ohar pare bat:
- Leku egokietan fitxategietako lerroak txertatu behar dituzu teklen bidez
- Nire VPN barneko banda erabiltzen ari da
10.200.200.0/24 - Taldeentzat
PostUp/PostDownKanpoko sareko interfazea wwan0 dut, baliteke beste bat izatea (adibidez, eth0)
VPN sarea erraz planteatzen da komando honekin:
$ sudo wg-quick up wg0 Xehetasun txiki bat: erabili nuen DNS zerbitzari gisa dnsmasq sareko interfaze bati lotuta br0, gailuak ere gehitu ditut wg0 baimendutako gailuen zerrendara. Dnsmasq-en hau konfigurazio fitxategiari sare-interfaze lerro berri bat gehituz egiten da /etc/dnsmasq.conf, adibidez:
interface=br0
interface=wg0Gainera, iptable arau bat gehitu dut UDP entzuteko ataka (51280) trafikoa baimentzeko:
$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPTOrain dena funtzionatzen ari denez, VPN tunelaren abiarazte automatikoa konfigura dezakegu:
$ sudo systemctl enable wg-quick@wg0.serviceBezeroaren konfigurazioa ordenagailu eramangarrian
Sortu konfigurazio fitxategi bat ordenagailu eramangarri batean /etc/wireguard/wg0.conf ezarpen berdinekin:
[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:51820Oharrak:
- Edgewalker-en ordez IP publikoa edo VPN zerbitzariaren ostalaria zehaztu behar duzu
- Ezarriz
AllowedIPson10.200.200.0/24, VPN barne sarera sartzeko bakarrik erabiltzen dugu. Beste IP helbide/zerbitzari guztietarako trafikoak kanal ireki "normal"etatik igarotzen jarraituko du. Aurrez konfiguratutako DNS zerbitzaria ere erabiliko du ordenagailu eramangarrian.
Proba egiteko eta abiarazte automatikorako komando berdinak erabiltzen ditugu wg-quick и systemd:
$ sudo wg-quick up wg0
$ sudo systemctl enable wg-quick@wg0.serviceBezeroa konfiguratzen Android-telefonoa
Telefonoz Android Oso antzeko konfigurazio fitxategi bat sortzen dugu (deituko diogu 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 Ordenagailu eramangarriaren konfigurazioa ez bezala, telefonoak gure VPN zerbitzaria erabili behar du DNS zerbitzari gisa (linea DNS), eta trafiko guztia VPN tuneletik pasatzea ere (AllowedIPs = 0.0.0.0/0).
Fitxategia zure gailu mugikorrean kopiatu beharrean, QR kode batera bihur dezakezu:
$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.confQR kodea ASCII gisa bidaliko da kontsolara. Aplikaziotik eskaneatu daiteke. Android VPN eta automatikoki konfiguratu VPN tunela.
Irteera
doikuntza WireGuard besterik gabe magikoa da, honekin alderatuta OpenVPN.
Iturria: www.habr.com
