Sejak WireGuard teras masa depan Linux 5.6, saya memutuskan untuk melihat cara terbaik untuk mengintegrasikan VPN ini dengan .
Оборудование
- Raspberry Pi 3 dengan modul LTE dan alamat IP awam. Akan ada pelayan VPN di sini (selepas ini dalam teks ia dipanggil edgewalker)
- Telefon dihidupkan Android, yang mesti menggunakan VPN untuk semua komunikasi
- notebook Linux, yang hanya sepatutnya menggunakan VPN dalam rangkaian
Setiap peranti yang bersambung ke VPN mesti boleh menyambung ke semua peranti lain. Sebagai contoh, telefon sepatutnya boleh menyambung ke pelayan web pada komputer riba jika kedua-dua peranti adalah sebahagian daripada rangkaian VPN. Jika persediaan ternyata agak mudah, maka anda boleh memikirkan tentang menyambungkan desktop ke VPN (melalui Ethernet).
Memandangkan sambungan berwayar dan wayarles menjadi semakin kurang selamat dari semasa ke semasa (, и ), saya sedang mempertimbangkan dengan serius untuk menggunakan WireGuard untuk semua peranti saya, tidak kira persekitaran apa ia beroperasi.
Pemasangan perisian
WireGuard menyediakan untuk kebanyakan pengedaran Linux, Windows и macOSPermohonan untuk Android dan iOS dihantar melalui gedung aplikasi.
Saya ada Fedora terkini Linux 31, dan sebelum memasang saya terlalu malas untuk membaca manual. Saya baru sahaja menemui pakej-pakej tersebut. wireguard-tools, memasangnya, dan kemudian tidak dapat mengetahui sebab tiada apa yang berfungsi. Siasatan lanjut mendedahkan bahawa saya tidak memasang pakej tersebut wireguard-dkms (dengan pemacu rangkaian), tetapi ia tidak ada dalam repositori pengedaran saya.
Jika saya telah membaca arahan, saya akan mengambil langkah yang betul:
$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools Saya mempunyai pengedaran Raspbian Buster yang dipasang pada Raspberry Pi saya, sudah ada pakej di sana wireguard, pasangkannya:
$ sudo apt install wireguardDi telefon Android Saya telah memasang aplikasi tersebut daripada katalog rasmi Google App Store.
Pemasangan kunci
Untuk mengesahkan nod Wireguard Menggunakan skema kunci persendirian/awam yang mudah untuk mengesahkan nod VPN. Anda boleh menjana kunci VPN dengan mudah dengan arahan berikut:
$ 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.keyIni memberi kita tiga pasangan kunci (enam fail). Kami tidak akan merujuk kepada fail dalam konfigurasi, tetapi menyalin kandungan di sini: setiap kunci adalah satu baris dalam base64.
Mencipta fail konfigurasi untuk pelayan VPN (Raspberry Pi)
Konfigurasinya agak mudah, saya mencipta fail berikut /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/32Beberapa nota:
- Di tempat yang sesuai anda perlu memasukkan baris dari fail dengan kekunci
- VPN saya menggunakan jalur dalaman
10.200.200.0/24 - Untuk pasukan
PostUp/PostDownSaya mempunyai antara muka rangkaian luaran wwan0, anda mungkin mempunyai antara muka yang berbeza (contohnya, eth0)
Rangkaian VPN mudah dibangkitkan dengan arahan berikut:
$ sudo wg-quick up wg0 Satu butiran kecil: sebagai pelayan DNS yang saya gunakan dnsmasq terikat pada antara muka rangkaian br0, saya turut menambah peranti wg0 ke senarai peranti yang dibenarkan. Dalam dnsmasq ini dilakukan dengan menambah baris antara muka rangkaian baharu pada fail konfigurasi /etc/dnsmasq.conf, sebagai contoh:
interface=br0
interface=wg0Selain itu, saya menambah peraturan iptable untuk membenarkan trafik ke port mendengar UDP (51280):
$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPTKini setelah semuanya berfungsi, kami boleh menyediakan pelancaran automatik terowong VPN:
$ sudo systemctl enable wg-quick@wg0.serviceKonfigurasi pelanggan pada komputer riba
Buat fail konfigurasi pada komputer riba /etc/wireguard/wg0.conf dengan tetapan yang sama:
[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:51820Nota:
- Daripada edgewalker anda perlu menentukan IP awam atau hos pelayan VPN
- Dengan menetapkan
AllowedIPspada10.200.200.0/24, kami hanya menggunakan VPN untuk mengakses rangkaian dalaman. Trafik ke semua alamat/pelayan IP lain akan terus melalui saluran terbuka "biasa". Ia juga akan menggunakan pelayan DNS prakonfigurasi pada komputer riba.
Untuk ujian dan pelancaran automatik kami menggunakan arahan yang sama wg-quick и systemd:
$ sudo wg-quick up wg0
$ sudo systemctl enable wg-quick@wg0.serviceMenyediakan klien untuk Android-telefon
Untuk telefon Android Kita mencipta fail konfigurasi yang sangat serupa (mari kita panggil ia 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 Tidak seperti konfigurasi pada komputer riba, telefon mesti menggunakan pelayan VPN kami sebagai pelayan DNS (line DNS), dan juga melepasi semua trafik melalui terowong VPN (AllowedIPs = 0.0.0.0/0).
Daripada menyalin fail ke peranti mudah alih anda, anda boleh menukarnya kepada kod QR:
$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.confKod QR akan dikeluarkan ke konsol sebagai ASCII. Ia boleh diimbas daripada aplikasi. Android VPN dan konfigurasikan terowong VPN secara automatik.
Output
pelarasan WireGuard hanya ajaib berbanding dengan OpenVPN.
Sumber: www.habr.com
