Cara membuat VPN di Ubuntu 20.04 Menggunakan Wireguard
- 1908
- 266
- Clarence Powlowski
Wireguard adalah moden dan sangat mudah untuk disediakan VPN yang terdapat di pelbagai sistem operasi. Permohonan ini tersedia di Ubuntu 20.04 repositori rasmi, jadi ia juga sangat mudah dipasang. Tidak seperti perisian lain seperti OpenVPN yang berdasarkan penggunaan sijil SSL, Wireguard berdasarkan penggunaan pasangan utama. Dalam tutorial ini, kita akan melihat cara mengkonfigurasi, dalam beberapa langkah mudah, pelayan VPN dan rakan sebaya pelanggan pada versi stabil terkini Ubuntu.
Dalam tutorial ini anda akan belajar:
- Cara Memasang Wireguard di Ubuntu 20.04 Focal Fossa
- Cara membuat pasangan kunci awam dan swasta
- Cara mengkonfigurasi pelayan dan rakan sebaya pelanggan
- Cara mengalihkan semua lalu lintas masuk ke VPN
Keperluan perisian dan konvensyen yang digunakan
Kategori | Keperluan, konvensyen atau versi perisian yang digunakan |
---|---|
Sistem | Ubuntu 20.04 Focal Fossa |
Perisian | wireguard |
Yang lain | Keistimewaan akar |
Konvensyen | # - Memerlukan arahan Linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah$ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak |
Pemasangan
Wireguard boleh didapati secara rasmi di repositori "Universe" Ubuntu 20.04, oleh itu kita boleh memasangnya melalui Apt
. Versi yang ada, pada masa penulisan adalah 1.0.20200319-1UBUNTU1
:
$ sudo apt memasang wireguard
Sistem ini akan meminta kami mengesahkan kami ingin memasang program dan kebergantungannya, dan akan menyelesaikan operasi dalam beberapa saat.
Menjana kunci
Kami mesti menjana kunci awam dan peribadi untuk setiap mesin yang ingin kami gunakan di VPN kami. Kunci peribadi harus dirahsiakan pada mesin, orang awam digunakan untuk mengakses mesin dari rakan sebaya yang lain.
Untuk menjana kunci kita boleh menggunakan WG
utiliti. Di dalam fail konfigurasi wireguard kita perlu merujuk kunci peribadi mesin, sementara orang awam akan digunakan pada rakan sebaya lain. Perhatikan bahawa kita akan merujuk kunci secara langsung, jadi secara teorinya kita tidak perlu menyimpannya ke fail. Kami akan melakukannya, hanya untuk kemudahan.
Untuk menjana kunci peribadi untuk pelayan kami, kami mesti menggunakan Genkey
Subcommand of WG
. Arahan mengeluarkan kekunci yang dibuat untuk stdout
; Untuk menulis kunci ke fail, kita boleh menggunakan kuasa pengalihan shell:
$ wg Genkey> server_private_key
Perintah akan menghasilkan kunci dan menyimpannya ke server_private_key
fail, tetapi akan menaikkan amaran berikut:
AMARAN: Menulis ke fail yang boleh diakses oleh dunia. Pertimbangkan untuk menetapkan Umask ke 077 dan cuba lagi.
Ini kerana dengan pengguna lalai Umask (002
) Fail dibuat dengan mod 664
, begitu juga dengan dunia, yang tidak disyorkan. Untuk menyelesaikan masalah ini, kita boleh menukar Umask yang digunakan dalam sesi shell semasa sebelum membuat fail:
$ UMASK 077
Atau menukar kebenaran fail ke 600
selepas penciptaan. Di sini kita akan pergi untuk penyelesaian yang terakhir.
Setelah kunci peribadi kami sudah siap, kami dapat menjana awam satu yang berdasarkannya. Untuk melaksanakan tugas kami menggunakan Pubkey
Subcommand of WG
. Sama seperti sebelum kita menggunakan pengalihan shell: pertama untuk lulus kandungan server_private_key
fail ke stdin
perintah itu, dan kemudian dan untuk mengalihkan kunci yang dihasilkan ke server_public_key
Fail:
$ wg pubkey server_public_key
Untuk melepaskan beberapa menaip kita dapat menjana kedua -dua kunci, dengan hanya satu arahan, yang melibatkan penggunaan cangkang |
(paip) pengendali dan tee
Perintah:
$ wg Genkey | TEE SERVER_PRIVATE_KEY | wg pubkey> server_public_key
Output arahan di sebelah kiri pengendali paip (|
) diserahkan kepada input standard program di sebelah kanannya. The tee
Perintah, sebaliknya biarkan kami mengalihkan output perintah ke kedua -dua fail dan output standard (lebih lanjut mengenai pengalihan shell di sini).
Setelah kunci kami siap, kami dapat membuat fail konfigurasi pelayan.
Fail konfigurasi pelayan
Untuk mengkonfigurasi pemasangan wayar kami, kami boleh membuat fail konfigurasi yang dipanggil WG0.Conf
dengan kandungan berikut:
[Antara muka] privateKey = alamat = 10.0.0.1/24 Listenport = 51820
Perhatikan bahawa nama fail itu sewenang -wenangnya, tetapi ia harus berdasarkan nama yang akan kami gunakan untuk antara muka kami, WG0
Dalam kes ini. Nama ini akan dirujuk apabila memulakan perkhidmatan, seperti yang akan kita lihat di bawah.
Dalam contoh kami. The [antara muka]
Bahagian fail konfigurasi mengandungi medan berikut:
- PrivateKey
- Alamat
- Listenport
The PrivateKey Nilai medan tidak lebih daripada kekunci peribadi pelayan yang kami hasilkan sebelumnya.
Di dalam Alamat medan kami menetapkan alamat untuk diberikan kepada antara muka di VPN bersama -sama dengan topeng subnet menggunakan Cidr notasi. Dalam kes ini kita gunakan 10.0.0.1/24
, Jadi alamat "pelayan" wayar kami di dalam VPN akan menjadi 10.0.0.1
, yang terdapat dalam julat alamat yang ada 10.0.0.1
ke 10.0.0.254
.
Akhirnya, di Listenport medan, kami menentukan apa yang akan didengar oleh Port Wireguard untuk trafik yang masuk. Peraturan untuk membenarkan lalu lintas tersebut juga mesti ditambah ke firewall kami. Kami akan melakukan ini di bahagian seterusnya.
Sekarang kita dapat mengubah kebenaran fail dan memindahkannya ke /etc/wireguard
Direktori:
$ chmod 600 server_public_key server_private_key wg0.conf $ sudo mv server_private_key server_public_key wg0.conf /etc /wireguard
Kita sekarang boleh memulakan WG-Quick
perkhidmatan yang menyatakan nama antara muka wireguard selepas @
dalam nama unit. Apa notasi ini? Ini adalah ciri sistemd: dengan itu kita dapat menjana pelbagai fail unit di dasar "templat" yang lulus nilai yang akan digantikan dalam templat, setelah @
simbol atas nama unit. Ini adalah kandungan [email protected]
Unit:
[Unit] Description = Wireguard melalui WG-Quick (8) untuk %i selepas = Rangkaian-Online.Sasaran NSS-Lookup.sasaran mahu = rangkaian dalam rangkaian.Sasaran NSS-Lookup.Dokumentasi Sasaran = Man: WG-Quick (8) Dokumentasi = Man: WG (8) Dokumentasi = https: // www.wireguard.com/dokumentasi = https: // www.wireguard.com/QuickStart/Documentation = https: // git.ZX2C4.com/wireguard-tools/about/src/man/wg-quick.8 Dokumentasi = https: // git.ZX2C4.com/wireguard-tools/about/src/man/wg.8 [Service] Type = Oneshot RemainAfterExit = Yes Execstart =/usr/bin/Wg-quick Up %i execstop =/usr/bin/wg-quick down %i Environment = wg_endpoint_resolution_retries = Infinity [install] Wanteby = Multi-User.sasaran
Nilai yang akan kami tentukan selepas @
dalam nama unit semasa memulakan atau menghentikannya, akan menggantikannya %i
di dalam Execstart
dan Execstop
garis. Dalam kes ini kita akan menggunakan WG0
:
$ sudo systemctl enable --now wg-quick@wg0
Dengan arahan di atas kami memulakan perkhidmatan dan juga membuat sehingga secara automatik dimulakan di Boot. Untuk mengesahkan konfigurasi kami telah digunakan, kami dapat menjalankan WG
perintah. Output yang dihasilkan harus memaparkan maklumat mengenai WG0
antara muka:
$ sudo WG Interface: WG0 Kunci Awam: NNX3ZPCV9D2DTGHDSOYGBNR64ZG5JTJ4Z4T2SE759V4 = Kunci Persendirian: (Tersembunyi) Port Mendengarkan: 51820
Sekarang, mari kita teruskan dan konfigurasikan firewall dan penghantaran paket kami.
Persediaan Firewall dan Rangkaian
Dalam tutorial ini saya akan menganggap penggunaannya ufw
. Seperti yang kita katakan sebelum ini, kita mesti menambah peraturan untuk membenarkan trafik masuk melalui pelabuhan yang kami tentukan dalam fail konfigurasi, 51820
. Kami melakukannya dengan menjalankan arahan yang sangat mudah:
$ sudo ufw membenarkan 51820/udp
Kami juga perlu membenarkan pemajuan paket pada sistem kami. Untuk melaksanakan tugas kita untuk membuang komen dari baris 28
daripada /etc/sysctl.Conf
fail, supaya kelihatan seperti ini:
# Uncomment baris seterusnya untuk membolehkan pemajuan paket untuk bersih IPv4.IPv4.ip_forward = 1
Untuk membuat perubahan berkesan tanpa menghidupkan semula sistem, kita perlu menjalankan arahan berikut:
$ sudo sysctl -p
Dalam langkah seterusnya kami akan mengkonfigurasi pelanggan.
Generasi utama pelanggan
Mari kita bergerak ke sistem yang ingin kita gunakan sebagai pelanggan. Kita perlu memasang Wireguard di atasnya; Setelah selesai, kita boleh menjana pasangan utama seperti yang kita lakukan di pelayan:
$ wg Genkey | tee client_private_key | WG Pubkey> client_public_key
Sama seperti kami membuat pelayan kami membuat WG0.Conf
fail konfigurasi. Kali ini dengan kandungan ini:
[Antara muka] privateKey = alamat = 10.0.0.2/24 [Peer] PublicKey = endpoint =: 51820 dibenarkan = 0.0.0.0/0
Kami sudah melihat makna bidang yang terkandung di dalam Antara muka
bahagian, semasa kami menjana konfigurasi pelayan. Di sini kami hanya menyesuaikan nilai kepada pelanggan kami (ia akan mempunyai 10.0.0.2
alamat di VPN).
Dalam konfigurasi ini, kami menggunakan bahagian baru, [Rakan sebaya]
. Di dalamnya, kita dapat menentukan maklumat yang berkaitan dengan rakan sebaya, dalam hal ini yang kita gunakan sebagai "pelayan". Bidang yang kami gunakan adalah:
- Publickey
- Titik akhir
- Dibenarkan
Di dalam Publickey medan, kami menentukan awam Kunci rakan sebaya, jadi, dalam kes ini, kunci awam yang kami hasilkan di pelayan.
The Titik akhir adalah alamat IP awam atau nama hos rakan sebaya yang diikuti oleh kolon dan nombor pelabuhan rakan sebaya mendengar (dalam kes kami 51820
).
Akhirnya, nilai yang dihantar ke Dibenarkan medan, adalah senarai alamat IP yang dipisahkan koma dan topeng subnet dengan notasi CIDR. Hanya lalu lintas yang diarahkan kepada rakan sebaya yang datang dari alamat yang ditentukan akan dibenarkan. Dalam kes ini kita gunakan 0.0.0.0/0
Sebagai nilai: ia berfungsi sebagai nilai "tangkapan", jadi semua lalu lintas akan dihantar ke rakan sebaya VPN (pelayan).
Sama seperti kami melakukan pelayan, kami menetapkan keizinan yang sesuai dan memindahkan kunci dan fail konfigurasi ke /etc/wireguard
Direktori:
$ chmod 600 client_public_key client_private_key wg0.conf $ sudo mv client_public_key client_private_key wg0.conf /etc /wireguard
Dengan fail konfigurasi, kita boleh memulakan perkhidmatan:
$ sudo systemctl enable --now wg-quick@wg0
Akhirnya, [Rakan sebaya]
seksyen berbanding dengan pelanggan kami, mesti ditambah ke fail konfigurasi yang kami buat sebelum ini pelayan. Kita tambah Kandungan berikut untuknya:
[Rakan sebaya] PublicKey = dibenarkan = 10.0.0.2/32
Pada ketika ini kami memulakan semula perkhidmatan:
$ sudo systemctl mulakan semula wg-quick@wg0
Maklumat mengenai rakan sebaya yang berkaitan sekarang harus dilaporkan dalam output WG
Perintah:
$ sudo wg antara muka: wg0 kunci awam: nnx3zpcv9d2dtghdsoygbnr64zg5jtj4z4t2se759v4 = Kunci peribadi: (Tersembunyi).0.0.2/32
Pada ketika ini, dari sistem "klien", kita harus dapat ping pelayan di 10.0.0.1
Alamat:
$ ping -c 3 10.0.0.1 ping 10.0.0.1 (10.0.0.1) 56 (84) bait data. 64 bait dari 10.0.0.1: icmp_seq = 1 ttl = 64 time = 2.82 ms 64 bait dari 10.0.0.1: icmp_seq = 2 ttl = 64 masa = 38.0 ms 64 bait dari 10.0.0.1: icmp_seq = 3 ttl = 64 masa = 3.02 ms --- 10.0.0.1 statistik ping --- 3 paket dihantar, 3 diterima, 0% kehilangan paket, masa 2003ms rtt min/avg/max/mdev = 2.819/14.613/37.999/16.536 ms
Kesimpulan
Dalam tutorial ini kita melihat cara membuat VPN menggunakan wireguard pada versi stabil Ubuntu terkini: 20.04 Focal Fossa. Perisian ini sangat mudah dipasang dan dikonfigurasikan, terutamanya jika dibandingkan dengan penyelesaian lain, sebagai contoh OpenVPN.
Kami melihat bagaimana untuk menjana kunci awam dan peribadi yang digunakan untuk persediaan kami, dan bagaimana untuk mengkonfigurasi kedua -dua pelayan dan klien supaya semua lalu lintas diarahkan ke VPN. Mengikuti arahan yang diberikan, anda akan mempunyai persediaan kerja. Untuk maklumat lanjut, sila lihat halaman projek.
Tutorial Linux Berkaitan:
- Perkara yang hendak dipasang di Ubuntu 20.04
- Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
- Cara Menyiapkan Pelayan OpenVPN di Ubuntu 20.04
- Asas Ubuntu 22.04 Persediaan Sambungan Pelanggan/Pelayan OpenVPN
- Ubuntu 20.04 Trik dan Perkara yang Anda Tidak Tahu
- Ubuntu 20.04 Panduan
- Perkara yang perlu dipasang di Ubuntu 22.04
- Senarai dan Pemasangan Pelanggan FTP di Ubuntu 20.04 Linux ..
- Ubuntu 20.04: WordPress dengan pemasangan nginx
- 8 persekitaran desktop Ubuntu terbaik (20.04 Focal Fossa ..
- « Cara memasang desktop lubuntu di ubuntu 20.04 Focal Fossa Linux
- Kegagalan sementara menyelesaikan ralat di Ubuntu 20.04 Focal Fossa Linux »