Panduan
Cara menyiapkan VPN di Linux
Klien penyedia dari repositorinya sendiri, alternatif berkas konfigurasi dengan alat bawaan sistem, detail DNS yang lebih sering bocor di Linux daripada di tempat lain, serta pemeriksaan dari terminal. Ditulis untuk Ubuntu 26.04 LTS dan NetworkManager.
Sebelum memulai
Panduan ini tidak memilihkan penyedia untuk Anda
Setiap langkah di bawah ini sama, apa pun penyedia yang Anda gunakan, sehingga tidak ada penyedia yang disebutkan di sini. Memilih penyedia adalah tugas terpisah dan dilakukan di daftar, tempat pilihan dibuat berdasarkan skor yang dipublikasikan, bukan berdasarkan halaman unduhan.
Pasang klien dari repositori milik penyedia sendiri, dengan kunci penandatanganan dari instruksi milik penyedia sendiri. Jangan pernah menempelkan perintah pemasangan satu baris dari forum atau blog ke terminal: perintah itu berjalan sebagai root, dan Anda tidak tahu apa yang diambilnya. Paket dari repositori yang ditandatangani dapat diperiksa; skrip yang dialirkan ke shell tidak.
Pasang klien
Di Linux ada dua cara dan keduanya jelas. Klien milik penyedia sendiri adalah cara pertama; klien ini menyediakan kill switch, pemilih server, dan pengelolaan DNS. Berkas konfigurasi dengan alat bawaan sistem adalah cara kedua, dan bagian akhir panduan ini menjelaskan konsekuensinya.
- Masuk ke situs web penyedia dan buka instruksi Linux dari area akun. Instruksi tersebut mencantumkan repositori, kunci, dan paket; ikuti itu dan jangan yang lain.
- Tambahkan repositori beserta kuncinya, lalu pasang paket dengan pengelola paket distribusi. Kunci itulah yang memungkinkan pengelola paket menolak paket yang telah diutak-atik, jadi repositori yang ditambahkan tanpa kunci berarti repositori yang Anda percayai begitu saja.
- Aktifkan layanan klien agar klien berjalan saat boot. Klien biasanya terdiri dari daemon root dan aplikasi desktop yang berkomunikasi dengannya; daemon mengelola tunnel, dan kill switch yang harus aktif sejak boot memerlukannya berjalan sejak boot.
- Masuk ke klien — dari aplikasi, atau dari baris perintah menggunakan token yang diberikan area akun — lalu beri nama perangkat yang tidak mengidentifikasi Anda.
- Jangan terhubung dulu. Buka pengaturan terlebih dahulu. Dua dari tiga pengaturan di bawah ini biasanya nonaktif secara bawaan di sebagian besar klien.
Tiga pengaturan yang perlu diperiksa
Menu klien berbeda-beda, tetapi pengaturannya tidak. Ketiga pengaturan ini memiliki entri di glosarium jika namanya tidak Anda kenali.
Kill switch
Memblokir semua lalu lintas jika tunnel terputus, alih-alih diam-diam membiarkan koneksi kembali ke jaringan biasa. Di Linux, fitur ini berupa seperangkat aturan firewall yang ditulis klien: semua hal selain antarmuka tunnel dan titik akhir tunnel itu sendiri akan dibuang. Aktifkan fitur ini, dan gunakan bentuk always-on atau lockdown jika klien menyediakannya, agar aturan berlaku sejak boot, bukan hanya saat terhubung. Penjelasan fungsi switch ini tersedia di halaman khususnya.
DNS di dalam tunnel
Pencarian nama dapat keluar dari mesin melalui jalur di luar tunnel meskipun hal lainnya berada di dalam tunnel, dan di Linux inilah kebocoran yang paling sering terjadi karena resolver merupakan komponen yang berubah-ubah. Di Ubuntu, komponen tersebut adalah systemd-resolved: setiap antarmuka memiliki resolver sendiri, dan resolver dengan rute default untuk DNS akan menjawab semua hal yang tidak cocok dengan domain yang lebih spesifik. Klien seharusnya mengarahkan rute default tersebut ke resolver milik penyedia melalui antarmuka tunnel. Atur DNS klien ke DNS milik penyedia sendiri, bukan milik pihak ketiga; pihak kedua yang hanya melihat pencarian tersebut berarti ada satu pihak tambahan. Penjelasan tentang terjadinya kebocoran tersedia di halaman kebocoran DNS.
Protokol
Biarkan pada pilihan modern bawaan kecuali ada yang rusak — halaman protokol mencantumkan mana yang masih berlaku dan mana yang sudah lama. Jika klien menawarkan pilihan yang lebih lama untuk memperbaiki masalah koneksi, itu adalah kompromi yang harus dibuat dengan sadar lalu dibatalkan: daftar menandai protokol terlemah yang masih ditawarkan penyedia, dan memilihnya secara manual berarti memilih tanda tersebut untuk diri Anda sendiri.
Pastikan koneksi benar-benar berfungsi
Hubungkan, lalu periksa, jangan berasumsi. Tiga pemeriksaan dari terminal, dalam urutan berikut:
- Alamat Anda berubah. Jalankan
curlke layanan apa pun yang menjawab pertanyaan “apa IP saya”, atau buka salah satunya di browser, lalu pastikan negaranya sesuai dengan titik keluar yang Anda pilih.ip route getke alamat publik seharusnya menyebut antarmuka tunnel, bukan antarmuka Wi-Fi atau Ethernet. - Pencarian berlangsung di dalam tunnel. Jalankan
resolvectl status: antarmuka tunnel seharusnya membawa resolver penyedia dan rute default DNS; resolver antarmuka fisik seharusnya tidak digunakan. Tes kebocoran DNS di browser adalah pemeriksaan kedua, dan apa pun yang terkait dengan penyedia internet Anda berarti pengaturan DNS belum diterapkan. - Kill switch menjalankan fungsinya. Saat unduhan berjalan, hentikan layanan klien dengan
systemctl stop, atau matikan antarmuka tunnel denganip link set … down, sehingga tunnel terputus tanpa diminta oleh klien. Transfer seharusnya langsung berhenti. Jika terus berjalan, switch tersebut hanya hiasan.
Rangkaian tes yang lebih panjang, serta hal-hal yang dapat dan tidak dapat ditunjukkan oleh masing-masing tes, tersedia di panduan khususnya.
Hal yang dibuktikan oleh pemeriksaan tersebut
+Lalu lintas Anda keluar melalui server titik keluar, di negara yang Anda pilih
+Resolver yang menjawab pencarian Anda adalah milik penyedia dan berada di dalam tunnel
+Tunnel yang terputus gagal secara tertutup, bukan diam-diam kembali ke koneksi biasa
Hal yang tidak dibuktikannya
−Pemeriksaan tersebut tidak mengatakan apa pun tentang data yang disimpan penyedia — itu adalah pertanyaan tentang dokumen, yang dijawab di halaman retensi
−Pemeriksaan tersebut tidak membuat Anda anonim: browser dan login Anda tidak berubah, lihat hal-hal yang tidak dilindungi VPN
−Tes yang berhasil hari ini bukan janji tentang pembaruan paket berikutnya atau kernel berikutnya
Cara menggunakan berkas konfigurasi dan konsekuensinya
Sebagian besar penyedia mempublikasikan berkas konfigurasi untuk dua protokol umum dari area akun. Berkas WireGuard dapat diimpor ke NetworkManager dari editor koneksi atau dengan nmcli connection import, dan juga berjalan dengan baik di bawah wg-quick; berkas OpenVPN diimpor dengan cara yang sama menggunakan plugin OpenVPN. Anda mendapatkan tunnel, sakelar antarmuka bawaan sistem, dan tidak ada fitur lain yang tidak dimasukkan penyedia ke dalam berkas tersebut.
Yang hilang adalah bagian lain dari klien. Tidak ada kill switch kecuali Anda menulis sendiri aturan firewall; berkas yang diimpor ke NetworkManager lalu terputus hanya akan mengembalikan lalu lintas ke jaringan biasa. Tidak ada pengelolaan DNS selain baris DNS dalam berkas, dan berkas tanpa baris tersebut merupakan kebocoran yang harus diperiksa terlebih dahulu saat melakukan pemecahan masalah. Tidak ada pemilih server: setiap berkas adalah satu titik keluar, dan mengganti titik keluar berarti menggunakan berkas lain. Buat berkas dari area akun dan simpan secara pribadi: berkas WireGuard berisi kunci privat yang menjadi identitas Anda bagi penyedia.
Cara ini sesuai untuk server, mesin tanpa antarmuka pengguna, atau distribusi yang tidak didukung klien. Pada laptop, utamakan klien; switch yang disediakannya adalah hal yang tidak dapat diberikan oleh berkas konfigurasi.
Jika tidak berfungsi
Tunnel aktif, tetapi DNS masih menuju penyedia internet saya
Ini adalah kebocoran Linux yang klasik. Berkas konfigurasi yang tidak mengatur DNS membuat systemd-resolved tetap menggunakan resolver yang diberikan oleh jaringan, di luar tunnel. Jalankan resolvectl status: antarmuka tunnel seharusnya mencantumkan resolver penyedia dan membawa rute default untuk DNS, yang ditandai dengan tanda plus.
Tambahkan baris DNS ke konfigurasi, atau atur DNS pada koneksi di NetworkManager, lalu hubungkan kembali. Klien milik penyedia sendiri mengaturnya secara otomatis, dan itu adalah salah satu alasan untuk mengutamakannya.
Semuanya berhenti berfungsi saat tunnel terputus, dan itu mengganggu
Itulah kill switch yang menjalankan tugasnya: tunnel yang terputus menjadi koneksi mati, bukan diam-diam kembali ke jaringan biasa. Hubungkan kembali, jangan matikan switch.
Jika tunnel sering terputus di satu jaringan tetapi jarang di tempat lain, ganti protokol sekali dan coba titik keluar yang lebih dekat. Jika tidak ada protokol yang dapat bertahan di jaringan tersebut, jaringan itu memblokir lalu lintas VPN, dan panduan ini berakhir di sini.
Klien meminta sudo atau kata sandi setiap kali
Membuat antarmuka jaringan adalah operasi yang memerlukan hak istimewa, dan klien yang tidak memasang layanan latar belakang harus memintanya setiap kali. Sebagian besar klien memasang layanan tersebut — daemon yang berjalan sebagai root dan aplikasi desktop yang berkomunikasi dengannya — sehingga permintaan yang berulang berarti layanan tidak berjalan atau belum diaktifkan.
Periksa dengan systemctl status dan nama layanan dari instruksi penyedia, lalu aktifkan agar layanan berjalan saat boot.
Alamat IPv6 muncul di halaman tes
Tunnel membawa IPv4, tetapi mesin masih memiliki rute IPv6 di luar tunnel, sehingga apa pun yang memprioritaskan IPv6 akan melewati VPN. Penyedia yang tidak meneruskan IPv6 melalui tunnel seharusnya menonaktifkannya pada antarmuka; klien yang lebih baik melakukannya.
Jika Anda membuat koneksi dari berkas, nonaktifkan IPv6 pada koneksi di NetworkManager, atau matikan dengan sysctl, lalu lakukan tes lagi. Tunnel yang membiarkan keluarga alamat kedua tetap terbuka berarti tunnel tersebut hanya setengah berfungsi.
Langkah yang sama, perangkat lain
Platform lainnya
Setiap platform memiliki panduannya sendiri, bukan sekadar tab pada panduan ini. Langkah-langkahnya menyimpang begitu installer dibuka, dan sebuah halaman yang menjawab tiga platform sekaligus tidak menjawab satu pun dengan benar.