GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengatur VPN WireGuard di Linux

Jika Anda menggunakan lebih dari satu komputer di kantor atau di rumah, Anda mungkin ingin memiliki beberapa cara untuk mengakses jaringan internal Anda dari masing-masing komputer tersebut. Kabar baiknya adalah WireGuard VPN memecahkan masalah ini.

Dalam tutorial ini, Anda akan mempelajari cara menyiapkan WireGuard VPN untuk menjalankan VPN lengkap guna menghubungkan komputer Anda, memberi Anda akses dengan aman.

Siap mengotori tangan Anda? Saatnya menyelam!

Prasyarat

Tutorial ini akan menjadi demonstrasi langsung. Jika Anda ingin mengikuti, pastikan Anda memiliki yang berikut:

  • Sistem Linux – Tutorial ini menggunakan Ubuntu 20.04 LTS, tetapi semua distro Debian dapat digunakan untuk demo.
  • Komputer lokal – Demo ini menggunakan klien Windows 10 64-bit untuk terhubung ke server VPN WireGuard. Jika Anda menggunakan server jarak jauh, pastikan Anda memiliki izin untuk terhubung ke server tersebut dari mesin lokal Anda.
  • Pengguna non-root dengan [sudo]() hak istimewa.

Menginstal WireGuard

Secara default, WireGuard tidak diinstal pada distribusi Linux Ubuntu Anda. Jadi, pertama-tama Anda akan menginstal WireGuard dengan pengelola paket APT.

Anda juga dapat mengunduh dan mengkompilasi WireGuard dari sumbernya, tetapi pengaturan minimal tidak masalah untuk demo ini.

Jalankan perintah berikut ke update database paket sistem.

sudo apt update -y

Sekarang, jalankan perintah berikut untuk menginstal wireguard kemasan. wireguard package menyediakan modul kernel minimalis untuk mendukung jaringan dan protokol pribadi yang aman.

Protokol WireGuard melibatkan kunci publik, didistribusikan dalam skema otentikasi yang mirip dengan SSH, yang dikombinasikan dengan kunci enkripsi simetris untuk membuat koneksi point-to-point atau situs-ke-situs pribadi.

sudo apt install wireguard -y

Setelah menginstal, WireGuard berjalan sebagai modul kernel. WireGuard berjalan di ruang kernel karena WireGuard membutuhkan akses langsung ke antarmuka jaringan Anda untuk membuat koneksi VPN.

Membuat Pasangan Kunci

Sekarang setelah Anda menginstal WireGuard, saatnya untuk membuat pasangan kunci (kunci publik dan kunci pribadi) dengan menjalankan wg genkey memerintah. Kunci publik adalah "identitas" WireGuard Anda. Setiap orang yang ingin terhubung ke VPN Anda akan memerlukan akses ke kunci publik ini. Sebaliknya, kunci pribadi adalah yang Anda gunakan untuk membuat koneksi yang aman.

Simpan kunci pribadi sebagai rahasia. Siapa pun yang mendapatkan akses ke kunci pribadi Anda dapat menggunakannya untuk terhubung ke VPN Anda.

1. Jalankan umask perintah di bawah ini untuk membuat keypair Anda dapat dibaca. umask perintah menentukan topeng pembuatan mode file dan menentukan izin yang diberikan ke file yang baru dibuat.

Anda akan menggunakan umasks nilai 077 sehingga semua file yang baru dibuat dapat dibaca oleh semua orang tetapi hanya dapat ditulis oleh pemiliknya. Langkah ini memastikan kunci WireGuard Anda tidak dapat diedit dunia.

umask 077

2. Selanjutnya, jalankan perintah di bawah ini untuk menghasilkan (wg genkey ) pasangan kunci.

Perintah menulis kunci pribadi ke /etc/wireguard/privatekey file dan kunci publik (wg pubkey | sudo tee ) ke /etc/wireguard/publickey mengajukan.

wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey

Setelah menjalankan perintah, Anda akan mendapatkan nilai di terminal Anda, yang merupakan kunci publik Anda, seperti yang ditunjukkan di bawah ini. Output di bawah ini mengonfirmasi bahwa Anda telah berhasil membuat kunci publik Anda.

Salin dan simpan kunci publik ini ke tempat lain karena rekan Anda akan menggunakan kunci publikasi ini untuk terhubung ke VPN WireGuard Anda. VPN WireGuard Anda seperti terowongan di antara rekan-rekan.

3. Terakhir, jalankan cat perintah di bawah ini untuk memverifikasi bahwa Anda telah berhasil membuat kunci pribadi.

cat /etc/wireguard/privatekey

Catat kunci pribadi Anda, seperti pada output di bawah ini, karena Anda akan mendefinisikannya di konfigurasi server VPN WireGuard Anda.

Mengonfigurasi Server VPN WireGuard

Sekarang setelah Anda membuat pasangan kunci untuk koneksi server yang aman, langkah selanjutnya yang harus dilakukan adalah mengonfigurasi server VPN WireGuard.

1. Buat file baru bernama wg0.conf dengan editor teks favorit Anda, dan isi wg0.conf file dengan isi sebagai berikut. Pastikan Anda mengganti eth0 setelah POSTROUTING -o dengan antarmuka jaringan Anda .

Penamaan file konfigurasi terserah Anda, tetapi agar nama lebih mudah diingat, pilih nama seperti wg0, wg1 (wg singkatan dari WireGuard), atau tun0, tun1 (tun singkatan tunneling), dan seterusnya.

2. Isi wg0.conf file dengan isi sebagai berikut. Pastikan Anda mengganti eth0 setelah POSTROUTING -o dengan antarmuka jaringan Anda, simpan perubahan dan keluar dari editor.

wg0.conf file berisi semua parameter jaringan dan keamanan antarmuka WireGuard Anda. Tanpa itu, antarmuka WireGuard Anda dan rekan-rekan Anda tidak dapat membuat koneksi yang aman.

# Defines your WireGuard interface name
[Interface]
# Sets the server's Public IP Address. This network is routed to your server's 
# eth0 interface. This is an IP range of private IPv4 that you will use 
# for your peers to connect to the broader internet using your VPN server. 
# Your peer can use any private IPs from 10.8.0.1 to 10.8.0.255.
Address = 10.0.0.1/24
# Set the value to "true" to save your server's config file automatically 
# after a connection is established or when you shut down your VPN server.
SaveConfig = true
# Sets the port that your VPN server listens on. This port should be open on your router
# so that your peers can access this port to connect to your VPN
ListenPort = 51820
# Replace  with your private key generated earlier.
PrivateKey = 
# Sets WireGuard to automatically accept new connections, which allows your peers 
# to access your server with their own public IP address. Your VPN server forwards 
# your peers’ connection through your private network to make it seem 
# like they are coming directly from the peers.
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Reverses the PostUp values when there's a disconnection 
# to make the network settings return to original state
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

3. Jalankan perintah di bawah ini untuk mengaktifkan wg0 antarmuka.

sudo wg-quick up wg0 

4. Terakhir, jalankan perintah di bawah ini untuk memeriksa wg0 status antarmuka.

sudo wg show wg0 

Anda dapat melihat wg0 antarmuka sedang berjalan dan mendengarkan koneksi pada port 51820.

Mengonfigurasi Jaringan Server dan Firewall

Dari mengonfigurasi server WireGuard Anda, Anda juga perlu mengonfigurasi jaringan lokal dan firewall Anda. Melakukannya memberi Anda lebih banyak kontrol atas siapa yang dapat terhubung ke server Anda.

Anda akan meneruskan port UDP 51820 sehingga rekan Anda dapat terhubung ke server VPN Anda, tetapi Anda tidak dapat membiarkan port ini tetap terbuka sepanjang waktu. Jadi, Anda akan mengonfigurasi fungsi NAT router Anda untuk meneruskan lalu lintas pada port 51820 melalui server VPN Anda.

1. Buka etc/sysctl.conf file menggunakan editor favorit Anda.

2. Cari dan batalkan komentar pada #net.ipv4.ip_forward=1 baris dengan menghapus “# ” untuk mengaktifkan penerusan IP IPv4 dan menyimpan perubahan.

3. Selanjutnya, jalankan sysctl berikut ini perintah untuk menerapkan dan membuat perubahan permanen (-p ).

sudo sysctl -p

Server WireGuard Anda sekarang akan meneruskan lalu lintas masuk dari klien rekan WireGuard Anda ke internet yang lebih luas. Setelah diteruskan, WireGuard kemudian meneruskan data kembali ke rekan-rekan melalui antarmuka ethernet VPN eth0.

Namun, lalu lintas apa pun yang datang dari internet yang lebih luas dan ditujukan ke server WireGuard lokal Anda akan turun oleh firewall jaringan Linux default. Jika Anda menggunakan UFW sebagai firewall, Anda perlu menambahkan beberapa aturan lagi.

4. Jalankan perintah di bawah ini untuk mengizinkan udp koneksi pada port 51820 diri.

sudo ufw allow 51820/udp

5. Sekarang, jalankan perintah di bawah ini untuk memeriksa status firewall Anda. sudo ufw status command

sudo ufw status command

Firewall UFW Anda sekarang akan terlihat seperti di bawah ini:

Mengonfigurasi Klien WireGuard

Server VPN WireGuard Anda berjalan dengan sempurna, jadi Anda selanjutnya akan mengonfigurasi klien untuk menguji koneksi dengan server VPN WireGuard Anda. Klien Anda dapat berupa Windows, MAC OS, Linux, atau BSD, tetapi demo ini menggunakan klien Windows 10 64-bit.

Klien WireGuard adalah perangkat yang terhubung ke server VPN dengan kunci publik (ID) uniknya sendiri. Server WireGuard mengautentikasi klien dan mengenkripsi semua lalu lintas antara dirinya dan klien.

Perhatikan bahwa langkah-langkah berikut harus dilakukan pada semua perangkat klien WireGuard.

1. Navigasikan ke halaman unduh resmi WireGuard untuk mengunduh penginstal klien WireGuard untuk OS Anda dan jalankan. Demo ini menggunakan klien untuk Windows.

2. Buka aplikasi klien WireGuard, klik Add Tunnel (kiri bawah) —> Tambahkan terowongan kosong untuk membuat terowongan kosong. Anda akan mendapatkan jendela popup untuk mengkonfigurasi koneksi jaringan VPN (langkah ketiga).

Konfigurasikan koneksi jaringan VPN dengan yang berikut ini:

  • Masukkan nama koneksi jaringan VPN Anda, seperti gambar di bawah ini. Tetapi untuk demo ini, namanya disetel ke ubuntu .
  • Biarkan PrivateKey yang dihasilkan default , tambahkan baris baru di bawah ini, dan ketik Address =. Ganti dengan IP statis klien WireGuard Anda.
  • Tambahkan [Rekan] baru blok, dan di bawahnya, tambahkan PublicKey = baru garis. Ganti dengan kunci publik server VPN yang Anda simpan di bagian “Membuat Pasangan Kunci” (langkah kedua).
  • Tambahkan Endpoint baru =:51820 , di mana 51820 adalah port yang didengarkan oleh server WireGuard Anda. Ganti dengan IP publik server VPN Anda.
  • Tambahkan IP yang Diizinkan – 0.0.0.0/0 . baru garis. Baris ini memungkinkan klien WireGuard untuk mengakses semua alamat IPv4 dan IPv6 di jaringan.
  • Klik Simpan untuk menyimpan konfigurasi koneksi jaringan VPN.

4. Terakhir, kembali ke terminal server VPN Anda, dan jalankan perintah di bawah ini untuk menambahkan kunci publik dan alamat IP klien ke server VPN.

Pastikan untuk mengganti yang berikut ini:

  • – dengan kunci publik klien Anda.
  • 10.0.0.2 – dengan alamat IP perangkat klien Anda sehingga server VPN Anda dapat berkomunikasi dengan perangkat klien Anda.sudo wg set wg0 peer allowed-ips 10.0.0.2

Menguji apakah Terowongan VPN Berfungsi

Sekarang, Anda sudah memiliki server dan klien WireGuard yang berfungsi. Sekarang saatnya menguji koneksi di antara mereka dan melihat apakah terowongan VPN berfungsi.

1. Buka aplikasi klien WireGuard Anda dan klik ubuntu koneksi (terowongan VPN) yang Anda buat.

2. Klik tombol Aktifkan tombol untuk mengaktifkan terowongan VPN.

3. Setelah mengaktifkan terowongan VPN, Anda akan melihat Status ubah ke Aktif , seperti yang ditunjukkan di bawah ini. Itu dia! Anda sekarang memiliki koneksi yang berhasil ke server VPN Anda.

Kesimpulan

Sepanjang tutorial ini, Anda telah mempelajari cara mengonfigurasi server VPN WireGuard. Anda juga telah mengonfigurasi klien untuk menguji apakah koneksi antara server VPN WireGuard dan klien berfungsi dengan membuat terowongan VPN.

Pada tahap ini, Anda sekarang dapat mengonfigurasi beberapa server dan klien WireGuard untuk jaringan pribadi terenkripsi tanpa kontrol otoritas terpusat.

Bagaimana Anda akan membangun pengetahuan yang baru ditemukan ini? Mungkin mencoba Menjelajahi Ansible melalui Menyiapkan VPN WireGuard?


Linux
  1. Cara mengatur VPN Wireguard di CentOS 8

  2. Cara Mengatur VPN WireGuard di Ubuntu 20.04

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

  1. Cara Mengatur Kunci SSH

  2. Cara Mengatur VPN WireGuard di CentOS 8

  3. Cara Mengatur Variabel $Path di Linux

  1. Cara mengatur printer Anda di Linux

  2. Siapkan server VPN di PC Linux Anda

  3. Cara Mengatur Pekerjaan Cron di Linux