Nyetel VPN prasaja nganggo WireGuard lan Raspberry Pi minangka server

Wiwit WireGuard bakal dadi bagean inti mangsa ngarep Linux 5.6, aku mutusake kanggo ndeleng kepiye carane nggabungake VPN iki karo LTE router / titik akses ing Raspberry Pi.

Peralatan

  • Raspberry Pi 3 kanthi modul LTE lan alamat IP umum. Bakal ana server VPN ing kene (sabanjure ing teks kasebut diarani edgewalker)
  • Telpon aktif Android, sing kudu nggunakake VPN kanggo kabeh komunikasi
  • Laptop Linux, sing mung kudune nggunakake VPN ing njero jaringan

Saben piranti sing nyambung menyang VPN kudu bisa nyambung menyang kabeh piranti liyane. Contone, telpon kudu bisa nyambung menyang server web ing laptop yen piranti loro-lorone minangka bagean saka jaringan VPN. Yen persiyapan dadi cukup prasaja, sampeyan bisa mikir babagan nyambungake desktop menyang VPN (liwat Ethernet).

Ngelingi yen sambungan kabel lan nirkabel saya suwe saya kurang aman (serangan diangkah, serangan cracking KRACK WPA2 и Serangan Dragonblood marang WPA3), aku lagi nimbang-nimbang tenan kanggo nggunakake WireGuard kanggo kabeh pirantiku, ora preduli ing lingkungan apa piranti kasebut digunakake.

Instalasi piranti lunak

WireGuard nyedhiyakake paket precompiled kanggo umume distribusi Linux, Windows и macOSAplikasi kanggo Android lan iOS dikirim liwat toko aplikasi.

Aku duwe Fedora paling anyar Linux 31, lan sadurunge nginstal aku kesed maca manual. Aku nembe nemokake paket-paket kasebut. wireguard-tools, diinstal, banjur ora bisa ngerti apa ora ana apa-apa. Penyelidikan luwih lanjut nyatakake yen aku ora duwe paket sing diinstal wireguard-dkms (karo driver jaringan), nanging ora ana ing gudang distribusi sandi.

Yen aku wis maca instruksi, aku bakal njupuk langkah sing bener:

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

Aku duwe distribusi Raspbian Buster diinstal ing Raspberry Pi, wis ana paket wireguard, nginstal:

$ sudo apt install wireguard

Ing telpon Android Aku wis nginstal aplikasi kasebut WireGuard VPN saka katalog Google App Store resmi.

Panginstalan tombol

Kanggo ngotentikasi node Wireguard Nggunakake skema kunci pribadi/publik sing prasaja kanggo ngotentikasi simpul VPN. Sampeyan bisa kanthi gampang nggawe kunci VPN nganggo printah ing ngisor iki:

$ 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

Iki menehi telung pasangan kunci (enem file). Kita ora bakal ngrujuk menyang file ing configs, nanging nyalin isi kene: saben tombol siji baris ing base64.

Nggawe file konfigurasi kanggo server VPN (Raspberry Pi)

Konfigurasi cukup prasaja, aku nggawe file ing ngisor iki /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

Cathetan sawetara:

  • Ing panggonan sing cocog sampeyan kudu nglebokake baris saka file kanthi tombol
  • VPNku nggunakake pita internal 10.200.200.0/24
  • Kanggo tim PostUp/PostDown Aku duwe antarmuka jaringan eksternal wwan0, sampeyan bisa uga duwe antarmuka sing beda (contone, eth0)

Jaringan VPN gampang diangkat kanthi prentah ing ngisor iki:

$ sudo wg-quick up wg0

Siji rinci cilik: minangka server DNS sing digunakake dnsmasq disambungake menyang antarmuka jaringan br0, Aku uga nambah piranti wg0 menyang dhaptar piranti sing diidini. Ing dnsmasq iki rampung kanthi nambah baris antarmuka jaringan anyar kanggo file konfigurasi /etc/dnsmasq.conf, contone:

interface=br0
interface=wg0

Kajaba iku, aku nambahake aturan iptable kanggo ngidini lalu lintas menyang port ngrungokake UDP (51280):

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

Saiki kabeh bisa digunakake, kita bisa nyiyapake peluncuran otomatis terowongan VPN:

$ sudo systemctl enable wg-quick@wg0.service

Konfigurasi klien ing laptop

Nggawe file konfigurasi ing laptop /etc/wireguard/wg0.conf kanthi setelan sing padha:

[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

Cathetan:

  • Tinimbang edgewalker sampeyan kudu nemtokake IP umum utawa host server VPN
  • Kanthi nyetel AllowedIPs ing 10.200.200.0/24, kita mung nggunakake VPN kanggo ngakses jaringan internal. Lalu lintas menyang kabeh alamat / server IP liyane bakal terus liwat saluran mbukak "normal". Uga bakal nggunakake server DNS sing wis dikonfigurasi ing laptop.

Kanggo testing lan Bukak otomatis kita nggunakake printah padha wg-quick и systemd:

$ sudo wg-quick up wg0
$ sudo systemctl enable wg-quick@wg0.service

Nyetel klien kanggo Android-telpon

Kanggo telpon Android Kita nggawe file konfigurasi sing meh padha (sebut wae 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

Ora kaya konfigurasi ing laptop, telpon kudu nggunakake server VPN minangka server DNS (line DNS), lan uga ngliwati kabeh lalu lintas liwat trowongan VPN (AllowedIPs = 0.0.0.0/0).

Tinimbang nyalin file menyang piranti seluler, sampeyan bisa ngowahi dadi kode QR:

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

Kode QR bakal ditampilake ing konsol minangka ASCII. Kode iki bisa dipindai saka aplikasi. Android VPN lan ngonfigurasi trowongan VPN kanthi otomatis.

kesimpulan

imbuhan WireGuard mung magis dibandhingake karo OpenVPN.

Source: www.habr.com

Tuku hosting sing dipercaya kanggo situs kanthi proteksi DDoS, server VPS VDS 🔥 Tuku hosting situs web sing bisa dipercaya nganggo proteksi DDoS, server VPS VDS | ProHoster