GNU/Linux >> Belajar Linux >  >> Ubuntu

Siapkan Server VPN WireGuard Anda Sendiri di Ubuntu 20.04/18.04

Tutorial ini akan menunjukkan kepada Anda cara mengatur server VPN WireGuard Anda sendiri di Ubuntu. WireGuard dibuat khusus untuk kernel Linux. Ini berjalan di dalam kernel Linux dan memungkinkan Anda membuat terowongan VPN yang cepat, modern, dan aman.

Fitur VPN WireGuard

  • Ringan dan kecepatan super cepat, membuat OpenVPN tersingkir.
  • Cross-platform. WireGuard dapat berjalan di Linux, BSD, macOS, Windows, Android, iOS, dan OpenWRT.
  • Autentikasi pengguna dilakukan dengan menukar kunci publik, mirip dengan kunci SSH.
  • Ini memberikan alamat IP terowongan statis ke klien VPN. Beberapa orang mungkin tidak menyukainya, tetapi dalam beberapa kasus bisa sangat berguna.
  • Perangkat seluler dapat beralih antara Wi-Fi dan jaringan seluler dengan mulus tanpa kehilangan konektivitas apa pun.
  • Ini bertujuan untuk menggantikan OpenVPN dan IPSec di sebagian besar kasus penggunaan.

WireGuard adalah protokol VPN pilihan saya untuk menghilangkan kebutuhan untuk menyiapkan enkripsi TLS untuk jaringan pribadi saya.

Persyaratan

Untuk mengikuti tutorial ini, Anda memerlukan VPS (Virtual Private Server) yang dapat mengakses situs web yang diblokir secara bebas (Di luar negara Anda atau sistem penyaringan Internet). Saya merekomendasikan Kamatera VPS, yang memiliki fitur:

  • Uji coba gratis 30 hari.
  • Mulai dari $4/bulan (RAM 1 GB)
  • VPS berbasis KVM berperforma tinggi
  • 9 pusat data di seluruh dunia, termasuk Amerika Serikat, Kanada, Inggris Raya, Jerman, Belanda, Hong Kong, dan Israel.

Ikuti tutorial yang ditautkan di bawah ini untuk membuat server VPS Linux Anda di Kamatera.

  • Cara Membuat Server VPS Linux di Kamatera

Setelah Anda memiliki VPS yang menjalankan Ubuntu, ikuti petunjuk di bawah ini.

Tutorial ini mengasumsikan bahwa server VPN dan klien VPN keduanya menjalankan Ubuntu sistem operasi.

Langkah 1:Instal WireGuard di Server dan Desktop Ubuntu

Masuk ke server Ubuntu Anda, lalu jalankan perintah berikut untuk menginstal WireGuard.

Ubuntu 20.04

Ubuntu 20.04 dikirimkan dengan kernel Linux 5.4, yang memiliki modul wireguard bawaan.

sudo apt updatesudo apt install wireguard wireguard-tools

Ubuntu 18.04

Ubuntu 18.04 dikirimkan dengan kernel Linux 4.15, jadi pengguna harus menginstal kernel yang mendukung perangkat keras terlebih dahulu (HWE), yang akan menginstal kernel 5.4 di sistem Anda.

sudo apt updatesudo apt install linux-generic-hwe-18.04-edge

Mulai ulang server Ubuntu 18.04 Anda dan instal WireGuard.

sudo shutdown -r nowsudo apt install wireguard wireguard-tools wireguard-dkms

Kemudian gunakan perintah yang sama untuk menginstal WireGuard di komputer Ubuntu lokal Anda (klien VPN). Perhatikan bahwa Anda juga perlu menginstal openresolv paket pada klien untuk mengkonfigurasi server DNS.

sudo apt install openresolv

Langkah 2:Buat Pasangan Kunci Publik/Pribadi

Server

Jalankan perintah berikut di server Ubuntu untuk membuat pasangan kunci publik/pribadi, yang akan disimpan di bawah /etc/wireguard/ direktori.

wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key

Klien

Jalankan perintah berikut untuk membuat pasangan kunci publik/pribadi di komputer Ubuntu lokal (klien VPN).

wg genkey | sudo tee /etc/wireguard/client_private.key | wg pubkey | sudo tee /etc/wireguard/client_public.key

Langkah 3:Buat File Konfigurasi WireGuard

Server

Gunakan editor teks baris perintah seperti Nano untuk membuat file konfigurasi WireGuard di server Ubuntu. wg0 akan menjadi nama antarmuka jaringan.

sudo nano /etc/wireguard/wg0.conf

Salin teks berikut dan tempel ke file konfigurasi Anda. Anda perlu menggunakan kunci pribadi server dan kunci publik klien Anda sendiri.

[Antarmuka]Alamat =10.10.10.1/24ListenPort =51820PrivateKey =cD+ZjXiVIX+0iSX1PNijl4a+88lCbDgw7kO78oXXLEc=[Peer]PublicKey =AYQJf6HbkQ0XMZ0Xyt+c. 

Dimana:

  • Alamat :Tentukan alamat IP pribadi server VPN. Di sini saya menggunakan jangkauan jaringan 10.10.10.0/24, sehingga tidak akan bertentangan dengan jangkauan jaringan rumah Anda. (Kebanyakan router rumah menggunakan 192.168.0.0/24 atau 192.168.1.0/24). 10.10.10.1 adalah alamat IP pribadi untuk server VPN.
  • PrivateKey :Kunci pribadi server VPN, yang dapat ditemukan di /etc/wireguard/server_private.key file di server.
  • DengarkanPort :Server VPN WireGuard akan mendengarkan pada port UDP 51820, yang merupakan default.
  • PublicKey :Kunci publik klien VPN, yang dapat ditemukan di /etc/wireguard/client_public.key file di komputer klien.
  • IP yang Diizinkan :Alamat IP yang diizinkan untuk digunakan oleh klien VPN. Dalam contoh ini, klien hanya dapat menggunakan alamat IP 10.10.10.2 di dalam terowongan VPN.

Simpan dan tutup file. (Untuk menyimpan file di editor teks Nano, tekan Ctrl+O , lalu tekan Enter untuk mengonfirmasi. Tekan Ctrl+X untuk keluar.)

Ubah mode izin file sehingga hanya pengguna root yang dapat membaca file.

sudo chmod 600 /etc/wireguard/ -R

Klien

Gunakan editor teks baris perintah seperti Nano untuk membuat file konfigurasi WireGuard di komputer Ubuntu lokal Anda. wg-client0 akan menjadi nama antarmuka jaringan.

sudo nano /etc/wireguard/wg-client0.conf

Salin teks berikut dan tempel ke file konfigurasi Anda. Anda perlu menggunakan kunci pribadi klien dan kunci publik server Anda sendiri.

[Antarmuka]Alamat =10.10.10.2/24DNS =10.10.10.1PrivateKey =cOFA+x5UvHF+a3xJ6enLatG+DoE3I5PhMgKrMKkUyXI=[Peer]PublicKey =RaoAdsIEIwgV9DHNSubx. 56.78:51820PersistentKeepalive =25

Dimana:

  • Alamat :Tentukan alamat IP pribadi klien VPN.
  • DNS :tentukan 10.10.10.1 (server VPN) sebagai server DNS. Ini akan dikonfigurasi melalui resolvconf memerintah. Anda juga dapat menentukan beberapa server DNS untuk redundansi seperti ini:DNS = 10.10.10.1 8.8.8.8
  • PrivateKey :Kunci pribadi klien, yang dapat ditemukan di /etc/wireguard/client_private.key file di komputer klien.
  • PublicKey :Kunci publik server, yang dapat ditemukan di /etc/wireguard/server_public.key file di server.
  • IP yang Diizinkan :0.0.0.0/0 mewakili seluruh Internet, yang berarti semua lalu lintas ke Internet harus dirutekan melalui VPN.
  • Titik akhir :Alamat IP publik dan nomor port server VPN. Ganti 12.34.56.78 dengan alamat IP publik asli server Anda.
  • PersistentKeepalive :Kirim paket kosong yang diautentikasi ke peer setiap 25 detik untuk menjaga koneksi tetap hidup. Jika PersistentKeepalive tidak diaktifkan, server VPN mungkin tidak dapat melakukan ping ke klien VPN.

Simpan dan tutup file.

Ubah mode file sehingga hanya pengguna root yang dapat membaca file.

sudo chmod 600 /etc/wireguard/ -R

Langkah 4:Aktifkan Penerusan IP di Server

Agar server VPN dapat merutekan paket antara klien VPN dan Internet, kita perlu mengaktifkan penerusan IP. Edit sysctl.conf berkas.

sudo nano /etc/sysctl.conf

Tambahkan baris berikut di akhir file ini.

net.ipv4.ip_forward =1

Simpan dan tutup file. Kemudian terapkan perubahan dengan perintah di bawah ini. -p opsi akan memuat pengaturan sysctl dari /etc/sysctl.conf mengajukan. Perintah ini akan mempertahankan perubahan kami di seluruh reboot sistem.

sudo sysctl -p

Langkah 5:Konfigurasi Penyamaran IP di Server

Kita perlu mengatur penyamaran IP di firewall server, sehingga server menjadi router virtual untuk klien VPN. Saya akan menggunakan UFW, yang merupakan ujung depan dari firewall iptables. Instal UFW di Ubuntu dengan:

sudo apt install ufw

Pertama, Anda harus mengizinkan lalu lintas SSH.

sudo ufw allow 22/tcp

Selanjutnya, temukan nama antarmuka jaringan utama server Anda.

ip -c a

Seperti yang Anda lihat, namanya enp3s0 di server Ubuntu saya.

Untuk mengkonfigurasi penyamaran IP, kita harus menambahkan perintah iptables dalam file konfigurasi UFW.

sudo nano /etc/ufw/before.rules

Secara default, ada beberapa aturan untuk filter meja. Tambahkan baris berikut di akhir file ini. Ganti enp3s0 dengan nama antarmuka jaringan Anda sendiri.

# Aturan tabel NAT*nat:POSTROUTING ACCEPT [0:0]-A POSTROUTING -s 10.10.10.0/24 -o enp3s0 -j ​​MASQUERADE# Akhiri setiap tabel dengan baris 'COMMIT' atau aturan ini tidak akan berlaku diprosesCOMMIT

Di editor teks Nano, Anda dapat pergi ke akhir file dengan menekan Ctrl+W , lalu tekan Ctrl+V .

Baris di atas akan ditambahkan (-A ) aturan hingga akhir POSTROUTING rantai nat meja. Ini akan menghubungkan jaringan pribadi virtual Anda dengan Internet. Dan juga menyembunyikan jaringan Anda dari dunia luar. Jadi Internet hanya dapat melihat IP server VPN Anda, tetapi tidak dapat melihat IP klien VPN Anda, sama seperti router rumah Anda menyembunyikan jaringan rumah pribadi Anda.

Pastikan tidak ada spasi di awal setiap baris.

Secara default, UFW melarang penerusan paket. Kami dapat mengizinkan penerusan untuk jaringan pribadi kami. Temukan ufw-before-forward rantai dalam file ini dan tambahkan 3 baris berikut, yang akan menerima penerusan paket jika IP sumber atau IP tujuan ada di 10.10.10.0/24 jangkauan.

# izinkan penerusan untuk jaringan tepercaya-A ufw-before-forward -s 10.10.10.0/24 -j ACCEPT-A ufw-before-forward -d 10.10.10.0/24 -j ACCEPT

Simpan dan tutup file. Kemudian aktifkan UFW.

sudo ufw aktifkan

Jika Anda telah mengaktifkan UFW sebelumnya, Anda dapat menggunakan systemctl untuk memulai ulang UFW.

sudo systemctl restart ufw

Sekarang jika Anda membuat daftar aturan dalam rantai POSTROUTING tabel NAT dengan menggunakan perintah berikut:

sudo iptables -t nat -L POSTROUTING

Anda dapat melihat aturan Masquerade.

UFW memerlukan waktu untuk memproses aturan firewall. Jika aturan penyamaran tidak muncul, maka mulai ulang UFW lagi (sudo systemctl restart ufw ).

Langkah 6:Instal DNS Resolver di Server

Karena kami menetapkan server VPN sebagai server DNS untuk klien, kami perlu menjalankan resolver DNS di server VPN. Kita dapat menginstal server DNS bind9.

sudo apt install bind9

Setelah terinstal, BIND akan otomatis dimulai. Anda dapat memeriksa statusnya dengan:

systemctl status bind9

Contoh keluaran:

● Named.service - Server Nama Domain BIND Dimuat:dimuat (/lib/systemd/system/named.service; diaktifkan; preset vendor:diaktifkan) Aktif:aktif (berjalan) sejak Minggu 17-05-2020 08:11 :26 UTC; 37 detik yang lalu Dokumen:man:named(8) PID Utama:13820 (named) Tugas:5 (batas:1074) Memori:14.3M CGroup:/system.slice/named.service 13820 /usr/sbin/named -f -u mengikat

Jika tidak berjalan, mulai dengan:

sudo systemctl start bind9

Edit file konfigurasi server DNS BIND.

sudo nano /etc/bind/named.conf.options

Tambahkan baris berikut untuk mengizinkan klien VPN mengirim kueri DNS rekursif.

izinkan-rekursi { 127.0.0.1; 10.10.10.0/24; };

Simpan dan tutup file. Mulai ulang BIND9 agar perubahan diterapkan.

sudo systemctl restart bind9

Kemudian Anda perlu menjalankan perintah berikut untuk mengizinkan klien VPN terhubung ke port 53.

sudo ufw insert 1 izinkan masuk dari 10.10.10.0/24

Langkah 7:Buka Port WireGuard di Firewall

Jalankan perintah berikut untuk membuka port UDP 51820 di server.

sudo ufw allow 51820/udp

Langkah 8:Mulai WireGuard

server

Jalankan perintah berikut di server untuk memulai WireGuard.

sudo systemctl start [dilindungi email]

Aktifkan mulai otomatis pada waktu boot sistem.

sudo systemctl aktifkan [dilindungi email]

Periksa statusnya dengan perintah berikut. Statusnya harus active (exited) .

status systemctl [dilindungi email]

Sekarang server WireGuard siap menerima koneksi klien.

Klien

Mulai WireGuard.

sudo systemctl start [dilindungi email]

Aktifkan mulai otomatis pada waktu boot sistem.

sudo systemctl aktifkan [dilindungi email]

Periksa statusnya:

status systemctl [dilindungi email]

Sekarang buka situs web ini:https://icanhazip.com/ untuk memeriksa alamat IP publik Anda. Jika semuanya berjalan dengan baik, alamat IP publik server VPN Anda akan ditampilkan, bukan alamat IP publik komputer klien Anda.

Anda juga dapat menjalankan perintah berikut untuk mendapatkan alamat IP publik saat ini.

curl https://icanhazip.com

Kiat Pemecahan Masalah

Tidak bisa melakukan ping

Anda dapat melakukan ping dari server VPN ke klien VPN (ping 10.10.10.2 ) untuk melihat apakah terowongan berfungsi. Jika Anda melihat pesan kesalahan berikut di ping,

ping:sendmsg:Kunci yang diperlukan tidak tersedia

mungkin AllowedIPs parameter salah, seperti salah ketik. Setelah memperbaiki kesalahan ketik, mulai ulang server VPN dan klien VPN.

Alasan lain mungkin karena Anda lupa menambahkan ListenPort = 51820 dalam file konfigurasi server.

IP Publik Tidak Berubah

Jika terowongan VPN berhasil dibuat, tetapi alamat IP publik klien tidak berubah, itu karena aturan penyamaran atau penerusan dalam file konfigurasi UFW Anda tidak berfungsi. Saya pernah salah ketik di /etc/ufw/before.rules file, yang menyebabkan komputer saya tidak dapat menjelajahi Internet.

Perhatikan bahwa saya tidak menyarankan menggunakan SaveConfig=true di [Interface] bagian dari file konfigurasi WireGuard. SaveConfig memberitahu WireGuard untuk menyimpan konfigurasi runtime saat shutdown. Jadi jika Anda menambahkan [Peer] additional tambahan di file konfigurasi dan kemudian restart WireGuard, konfigurasi Anda yang baru ditambahkan akan ditimpa.

Aktifkan logging Debug di Kernel Linux

Jika Anda menggunakan kernel Linux 5.6+, Anda dapat mengaktifkan logging debug untuk WireGuard dengan perintah berikut.

sudo su -echo module wireguard +p>
 /sys/kernel/debug/dynamic_debug/control

Kemudian Anda dapat melihat log debug dengan

sudo dmesg -wH

atau

sudo journalctl -kf

Mulai ulang

Jika VPN Anda masih tidak berfungsi, coba mulai ulang server VPN.

sudo systemctl restart [dilindungi email]

Kemudian hentikan klien VPN.

sudo systemctl stop [dilindungi email]

Dan tingkatkan paket perangkat lunak pada klien VPN.

sudo apt update; sudo apt upgrade

Selanjutnya, reboot klien VPN.

sudo shutdown -r nowsudo systemctl start [dilindungi email]

Jika VPN WireGuard Anda hanya dapat berfungsi setelah dimulai ulang, pertimbangkan untuk menambahkan tugas cron untuk memulai ulang layanan secara otomatis.

sudo crontab -e

Tambahkan baris berikut dalam file ini.

@daily systemctl restart [dilindungi email]

Perbandingan Kecepatan antara WireGuard &OpenConnect

Di salah satu server VPS saya, saya menginstal server WireGuard dan OpenConnect VPN. Tes kecepatan adalah sebagai berikut. Mungkin tidak terlihat cepat bagi Anda, karena koneksi antara komputer saya dan server VPN sangat buruk. Seberapa cepat Anda bisa mendapatkan bergantung pada latensi dan tingkat kehilangan paket antara klien VPN dan server VPN.

  • WireGuard adalah pemenangnya. Ini hampir 3 kali lebih cepat dari OpenConnect.
  • OpenConnect melalui TCP lebih cepat daripada OpenConnect melalui UDP. Kejutan?

WireGuard mampu mencapai 52296 Kbps (sekitar 51 Mbit/s) saat memutar video YouTube.

OpenConnect (TLS dengan algoritma TCP BBR) mampu mencapai 16504 Kbps (sekitar 16 Mbit/s) saat memutar video YouTube.

OpenConnect (TLS pada UDP) mampu mencapai 12997 Kbps (sekitar 12,7 Mbit/s) saat memutar video YouTube.

Menambahkan Klien VPN Tambahan

WireGuard dirancang untuk mengaitkan satu alamat IP dengan satu klien VPN. Untuk menambahkan lebih banyak klien VPN, Anda perlu membuat pasangan kunci privat/publik yang unik untuk setiap klien, lalu menambahkan kunci publik setiap klien VPN di file konfigurasi server (/etc/wireguard/wg0.conf ) seperti ini:

[Alamat]Alamat =10.10.10.1/24PrivateKey =UIFH+XXjJ0g0uAZJ6vPqsbb/o68SYVQdmYJpy/FlGFA=ListenPort =51820[Peer]PublicKey =75VNV7HqFh+3QIT5OHZkcjWf. 1Z/3rtl0i7cJorcinB7T4UOIzScifPNEIESFD8=AllowedIPs =10.10.10.3/32[Peer]PublicKey =EVstHZc6QamzPgefDGPLFEjGyedJk6SZbCJttpzcvC8=10.pre10.10.4/32.

Setiap klien VPN akan memiliki alamat IP pribadi statis (10.10.10.2, 10.10.10.3, 10.10.10.4, dll). Mulai ulang server WireGuard agar perubahan diterapkan.

sudo systemctl restart [dilindungi email]

Kemudian tambahkan konfigurasi WireGuard pada setiap klien VPN seperti biasa.

Mulai Ulang Otomatis Saat Koneksi VPN Putus

Terkadang koneksi VPN terputus karena berbagai alasan. Anda dapat menjalankan perintah berikut untuk memeriksa apakah klien VPN dapat melakukan ping ke alamat IP pribadi server VPN (10.10.10.1). Jika ping tidak berhasil, maka perintah di sebelah kanan akan dijalankan untuk me-restart klien VPN. || adalah operator OR di Bash. Itu mengeksekusi perintah di sebelah kanan hanya jika perintah di sebelah kiri menghasilkan kesalahan.

ping -c9 10.10.10.1> /dev/null || systemctl restart [dilindungi email]

Ping akan dilakukan 9 kali, yaitu 9 detik. Anda dapat menggunakan untuk loop di shell Bash untuk membuat seluruh perintah berjalan 6 kali, yaitu 54 detik.

untuk ((i=1; i<=6; i++)) lakukan (ping -c9 10.10.10.1> /dev/null || systemctl restart [dilindungi email]) selesai 

Sekarang kita dapat membuat pekerjaan Cron untuk mengotomatisasi tugas ini. Edit file crontab pengguna root pada klien VPN.

sudo crontab -e

Bass bukan shell default di Cron. Anda dapat menambahkan baris berikut di awal file Crontab untuk menjadikannya default.

SHELL=/bin/bash

Kemudian tambahkan baris berikut di akhir file ini.

* * * * * untuk ((i=1; i<=6; i++)) lakukan (ping -c9 10.10.10.1> /dev/null || systemctl restart [dilindungi email]) selesai 

Cron job ini akan berjalan setiap menit, dan akan ada 6 cek setiap menitnya. Simpan dan tutup file.

Penggunaan Lanjutan

Sekarang saya akan menunjukkan cara menggunakan perutean kebijakan , penerowongan terpisah , dan tombol pemutus VPN dengan WireGuard VPN. Catatan bahwa tidak disarankan untuk menggunakannya bersama satu sama lain. Jika Anda menggunakan perutean kebijakan, maka Anda tidak boleh mengaktifkan tunneling terpisah atau sakelar pemutus VPN, dan sebaliknya. Bagian ini untuk pengguna tingkat lanjut. Jika Anda seorang pemula WireGuard dan tidak tahu kegunaannya, maka jangan terapkan petunjuk di bagian ini.

Perutean Kebijakan

Secara default, semua lalu lintas pada klien VPN akan dialihkan melalui server VPN. Terkadang Anda mungkin hanya ingin merutekan jenis lalu lintas tertentu, berdasarkan protokol lapisan transport dan port tujuan. Ini dikenal sebagai perutean kebijakan.

Perutean kebijakan dikonfigurasi di komputer klien, dan kita harus menghentikan koneksi VPN terlebih dahulu.

sudo systemctl stop [dilindungi email]

Kemudian edit file konfigurasi klien.

sudo nano /etc/wireguard/wg-client0.conf

Misalnya, jika Anda menambahkan 3 baris berikut di [interface] bagian, maka WireGuard akan membuat tabel perutean bernama "1234" dan menambahkan aturan ip ke dalam tabel perutean. Dalam contoh ini, lalu lintas akan dirutekan melalui server VPN hanya ketika TCP digunakan sebagai protokol lapisan transport dan port tujuan adalah 25, yaitu ketika komputer klien mengirim email.

Tabel =1234PostUp =aturan ip tambahkan tabel ipproto tcp dport 25 1234PreDown =aturan ip hapus tabel ipproto tcp dport 25 1234

Catatan :Klien harus menjalankan Ubuntu 20.04 atau lebih tinggi untuk mengonfigurasi perutean kebijakan. ip utilitas di Ubuntu 18.04 tidak mendukung ipproto dan dport argumen.

Simpan dan tutup file. Kemudian mulai klien WireGuard.

sudo systemctl start [dilindungi email]

Jika Anda ingin merutekan lalu lintas untuk TCP port 80 dan 443, gunakan sintaks berikut.

Tabel =1234PostUp =aturan ip tambahkan ipproto tcp dport 80 tabel 1234; aturan ip tambahkan tabel ipproto tcp dport 443 1234PreDown =aturan ip hapus tabel ipproto tcp dport 80 1234; aturan ip hapus tabel ipproto tcp dport 443 1234

Ingatlah bahwa Anda harus menghentikan koneksi WireGuard VPN sebelum mengubah aturan perutean kebijakan.

Anda juga dapat menentukan rentang port seperti di bawah ini (port TCP 26 ke port TCP 10240).

Tabel =1234PostUp =aturan ip tambahkan ipproto tcp dport 26-10240 tabel 1234PreDown =aturan ip hapus ipproto tcp dport 26-10240 tabel 1234

Jika Anda ingin menentukan port TCP dan UDP, hapus ipproto tcp .

Tabel =1234PostUp =aturan ip tambahkan tabel dport 26-10240 1234PreDown =aturan ip hapus tabel dport 26-10240 1234

Anda mungkin ingin mengonfigurasi klien VPN untuk menggunakan terowongan VPN hanya ketika lalu lintas ditujukan ke alamat IP tertentu. Anda dapat melakukannya dengan to pilihan.

Tabel =1234PostUp =aturan ip tambahkan ke 10.0.0.0/24 tabel 1234PreDown =aturan ip hapus ke tabel 10.0.0.0/24 1234

Terowongan Terpisah

Secara default, semua lalu lintas pada klien VPN akan dialihkan melalui server VPN. Berikut cara mengaktifkan tunneling terpisah, jadi hanya traffic ke 10.10.10.0/24 Rentang IP akan disalurkan melalui WireGuard VPN. Ini berguna ketika Anda ingin membangun jaringan pribadi untuk beberapa server awan, karena klien VPN akan berjalan di server awan dan jika Anda menggunakan terowongan VPN penuh, maka Anda mungkin akan kehilangan koneksi ke server awan.

Edit file konfigurasi klien.

sudo nano /etc/wireguard/wg-client0.conf

Ubah

IP yang Diizinkan =0.0.0.0/0

Untuk

IP yang Diizinkan =10.10.10.0/24

Jadi lalu lintas akan dialihkan melalui VPN hanya ketika alamat tujuan berada dalam rentang IP 10.10.10.0/24. Simpan dan tutup file. Kemudian restart klien WireGuard.

sudo systemctl restart [dilindungi email]

Anda juga dapat mengizinkan beberapa rentang IP. Katakanlah server VPN juga mengelola 10.10.20.0/24 jaringan, maka Anda dapat mengonfigurasi AllowedIPs pada klien VPN seperti ini:

IP yang Diizinkan =10.10.10.0/24, 10.10.20.0/24

Jadi klien VPN dapat mencapai 10.10.20.0/24 jaringan melalui server VPN, dan sebaliknya.

Untuk menambahkan satu alamat IP, gunakan sintaks berikut.

IP yang Diizinkan =10.10.10.0/24, 10.10.20.0/24, 8.8.8.8/32

Ini memberitahu klien untuk menggunakan server VPN saat berkomunikasi dengan 8.8.8.8.

Sakelar Pembunuh VPN

Secara default, komputer Anda dapat mengakses Internet melalui gateway normal ketika koneksi VPN terganggu. Anda mungkin ingin mengaktifkan fitur sakelar pemutus, yang mencegah aliran paket tidak terenkripsi melalui antarmuka non-WireGuard.

Hentikan proses klien WireGuard.

sudo systemctl stop [dilindungi email]

Edit file konfigurasi klien.

sudo nano /etc/wireguard/wg-client0.conf

Tambahkan dua baris berikut di [interface] bagian.

PostUp =iptables -I OUTPUT ! -o %i -m tandai ! --mark $(wg tampilkan %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECTPreDown =iptables -D OUTPUT ! -o %i -m tandai ! --mark $(wg tampilkan %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT

Seperti ini:

[Antarmuka]Alamat =10.10.10.2/24DNS =10.10.10.1PrivateKey =cOFA+x5UvHF+a3xJ6enLatG+DoE3I5PhMgKrMKkUyXI=PostUp =iptables -I OUTPUT ! -o %i -m tandai ! --mark $(wg tampilkan %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECTPreDown =iptables -D OUTPUT ! -o %i -m tandai ! --mark $(wg tampilkan %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT[Peer]PublicKey =RaoAdsIEIwgV9DHNSSubxWVG+nZ1GP/c3OU6A/efBJ0I=AllowedIPs =0.0.0.0/0Endpoint =12.34.56.78:51820PersistentKeepalive =25

Simpan dan tutup file. Kemudian mulai klien WireGuard.

sudo systemctl start [dilindungi email]

Beberapa Alamat di Antarmuka WireGuard

Antarmuka WireGuard dapat memiliki beberapa alamat IP. Misalnya, Anda dapat memiliki dua alamat IP pada klien VPN.

[Antarmuka]Alamat =10.10.10.2/24Alamat =10.10.10.3/24....

Dalam hal ini, Anda perlu mengizinkan beberapa alamat IP pada server VPN untuk klien tertentu ini, atau klien VPN mungkin tidak dapat terhubung ke server VPN.

[Peer]...AllowedIPs =10.10.10.2/32, 10.10.10.3/32

Anda dapat menggunakan perintah berikut untuk memeriksa alamat IP milik antarmuka jaringan.

ip -c a

Catatan

  • ifconfig perintah hanya dapat menampilkan alamat IP untuk antarmuka jaringan.
  • Jika Anda menyiapkan antarmuka WireGuard lain di .conf baru file, maka perlu mengikat ke port selain 51820, atau Anda akan melihat kesalahan ” Alamat sudah digunakan”.

Ubuntu
  1. Cara Mengatur VPN WireGuard di Ubuntu 20.04

  2. Cara Mengatur VPN WireGuard di Ubuntu (Panduan Langkah-demi-Langkah)

  3. Cara Mengatur WireGuard di Ubuntu 22.04

  1. Siapkan server VPN di PC Linux Anda

  2. Cara Mengatur Server OpenVPN di Ubuntu 18.04

  3. Cara Mengatur VPN WireGuard di Ubuntu 18.04

  1. Cara Mengatur VPN WireGuard di Ubuntu 20.04

  2. Instal Ubuntu Server 16.04 Untuk Menyiapkan Server Media Anda Sendiri

  3. Siapkan Server VPN WireGuard Anda Sendiri di Debian 11 &Debian 10