Wiwit WireGuard inti mangsa ngarep Linux 5.6, aku mutusake kanggo ndeleng kepiye carane nggabungake VPN iki karo .
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 (, и ), aku lagi nimbang-nimbang tenan kanggo nggunakake WireGuard kanggo kabeh pirantiku, ora preduli ing lingkungan apa piranti kasebut digunakake.
Instalasi piranti lunak
WireGuard nyedhiyakake 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 wireguardIng telpon Android Aku wis nginstal aplikasi kasebut 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.keyIki 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/32Cathetan 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/PostDownAku 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=wg0Kajaba iku, aku nambahake aturan iptable kanggo ngidini lalu lintas menyang port ngrungokake UDP (51280):
$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPTSaiki kabeh bisa digunakake, kita bisa nyiyapake peluncuran otomatis terowongan VPN:
$ sudo systemctl enable wg-quick@wg0.serviceKonfigurasi 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:51820Cathetan:
- Tinimbang edgewalker sampeyan kudu nemtokake IP umum utawa host server VPN
- Kanthi nyetel
AllowedIPsing10.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.serviceNyetel 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.confKode 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
