Nyetél VPN basajan sareng WireGuard sareng Raspberry Pi salaku server

Kusabab WireGuard bakal jadi bagian tina kernel Linux Ubuntu upcoming 5.6, Kuring mutuskeun ningali kumaha pangalusna pikeun ngahijikeun VPN ieu sareng abdi LTE router / titik aksés dina buah prambus Pi.

pakakas

  • Raspberry Pi 3 kalayan modul LTE sareng alamat IP umum. Bakal aya server VPN di dieu (saterusna dina téks disebut edgewalker)
  • Telepon Android anu kedah nganggo VPN pikeun sadaya komunikasi
  • Laptop Linux anu kedahna ngan nganggo VPN dina jaringan

Unggal alat anu nyambung ka VPN kedah tiasa nyambung ka sadaya alat anu sanés. Salaku conto, telepon kedah tiasa nyambung ka pangladén wéb dina laptop upami kadua alat éta bagian tina jaringan VPN. Upami setelanna rada saderhana, maka anjeun tiasa mikir ngeunaan nyambungkeun desktop kana VPN (via Ethernet).

Nganggap yén sambungan kabel sareng nirkabel janten kirang aman dina waktosna (serangan sasaran, serangan cracking KRACK WPA2 и serangan Dragonblood ngalawan WPA3), Kuring serius mertimbangkeun ngagunakeun WireGuard pikeun sakabéh alat kuring, euweuh urusan naon lingkungan aranjeunna.

Pamasangan parangkat lunak

WireGuard nyadiakeun bungkusan precompiled pikeun kalolobaan distribusi Linux, Windows sareng macOS. Aplikasi Android sareng ios dikirimkeun ngaliwatan diréktori aplikasi.

Abdi gaduh Fedora Linux 31 panganyarna, sareng kuring puguh maca manual sateuacan dipasang. Kakara manggihan bungkusan wireguard-tools, dipasang aranjeunna, lajeng teu bisa angka kaluar naha nanaon ieu jalan. Panaliti salajengna ngungkabkeun yén kuring henteu gaduh pakét dipasang wireguard-dkms (kalayan supir jaringan), tapi teu aya dina gudang distribusi kuring.

Upami kuring parantos maca petunjukna, kuring bakal nyandak léngkah anu leres:

$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools

Abdi gaduh distribusi Raspbian Buster anu dipasang dina Raspberry Pi kuring, parantos aya pakét wireguard, pasang:

$ sudo apt install wireguard

Dina telepon Android kuring dipasang aplikasi WireGuardVPN ti katalog Google App Store resmi.

Pamasangan konci

Pikeun auténtikasi peer, Wireguard ngagunakeun skéma konci swasta/publik basajan pikeun nga-asténtikasi peers VPN. Anjeun tiasa sacara gampil nyiptakeun konci VPN nganggo paréntah ieu:

$ 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

Ieu masihan urang tilu pasangan konci (genep file). Kami moal ngarujuk kana file dina konfigurasi, tapi nyalin eusina di dieu: unggal konci mangrupikeun hiji garis dina base64.

Nyiptakeun file konfigurasi pikeun server VPN (Raspberry Pi)

Konfigurasi anu cukup basajan, Kuring dijieun file handap /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

Sababaraha catetan:

  • Di tempat anu pas anjeun kedah nyelapkeun garis tina file nganggo konci
  • VPN abdi nganggo pita internal 10.200.200.0/24
  • Pikeun tim PostUp/PostDown Abdi gaduh antarmuka jaringan éksternal wwan0, anjeun tiasa gaduh anu béda (contona, eth0)

Jaringan VPN gampang diangkat ku paréntah di handap ieu:

$ sudo wg-quick up wg0

Hiji jéntré leutik: salaku server DNS I dipaké dnsmasq dihijikeun ka panganteur jaringan br0, Kuring ogé ditambahkeun alat wg0 kana daptar alat anu diidinan. Dina dnsmasq ieu dilakukeun ku nambahkeun garis panganteur jaringan anyar kana file konfigurasi /etc/dnsmasq.confContona:

interface=br0
interface=wg0

Salaku tambahan, kuring nambihan aturan iptable pikeun ngijinkeun lalu lintas kana port déngékeun UDP (51280):

$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPT

Ayeuna sadayana berpungsi, urang tiasa nyetél peluncuran otomatis torowongan VPN:

$ sudo systemctl enable [email protected]

Konfigurasi klien dina laptop

Jieun file konfigurasi dina laptop /etc/wireguard/wg0.conf kalayan setélan anu sami:

[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

Katerangan:

  • Gantina edgewalker anjeun kedah netepkeun IP umum atanapi host server VPN
  • Sanggeus dipasang AllowedIPs dina 10.200.200.0/24, urang ngan ngagunakeun VPN pikeun ngakses jaringan internal. Lalu lintas ka sadaya alamat / server IP anu sanés bakal terus ngalangkungan saluran terbuka "normal". Éta ogé bakal nganggo server DNS anu tos dikonpigurasi dina laptop.

Pikeun nguji sareng peluncuran otomatis kami nganggo paréntah anu sami wg-quick и systemd:

$ sudo wg-quick up wg0
$ sudo systemctl enable [email protected]

Nyetél klien dina telepon Android

Pikeun telepon Android kami nyiptakeun file konfigurasi anu sami (nyaéta 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

Beda sareng konfigurasi dina laptop, telepon kedah nganggo server VPN kami salaku pangladén DNS (line DNS), sareng ogé ngalangkungan sadaya lalu lintas ngalangkungan torowongan VPN (AllowedIPs = 0.0.0.0/0).

Gantina nyalin file kana alat sélulér anjeun, anjeun tiasa ngarobih kana kode QR:

$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.conf

Kode QR bakal kaluaran kana konsol salaku ASCII. Éta tiasa diseken tina aplikasi Android VPN sareng bakal otomatis nyetél torowongan VPN.

kacindekan

Nyetél WireGuard ngan saukur magis dibandingkeun OpenVPN.

sumber: www.habr.com

Tambahkeun komentar