Apa yang Sebenarnya Terjadi Saat Anda Menjalankan VPN di Linux
Menjalankan VPN di Linux membuat antarmuka, memasang rute, dan mengubah resolver. Mengetahui layanan mana yang memiliki setiap langkah menjelaskan sebagian besar kegagalan penyiapan.
Tekan sambungkan dan tiga hal berubah di mesin Linux: sebuah antarmuka muncul, rute dipasang, dan resolver mulai menjawab dengan cara berbeda. Sebagian besar kegagalan penyiapan berasal dari salah satu dari ketiganya terjadi tanpa yang lain, atau dari dua program yang tidak sepakat tentang siapa pemiliknya. Memahami urutannya menjelaskan kegagalan lebih cepat daripada membaca keluaran log klien.
Antarmuka muncul sebelum apa pun berfungsi
Klien terowongan membuka antarmuka virtual dan menyerahkan paket kepadanya. Perangkat TUN membawa paket IP, yang dibutuhkan VPN terutek; perangkat TAP membawa bingkai Ethernet, yang dibutuhkan desain dijembatani. Modul kernel menyediakan perangkat, dan klien memilikinya selama sesi berlangsung.
Antarmuka naik bukan berarti terowongan berfungsi. Antarmuka bisa ada dengan alamat sementara peer tidak dapat dijangkau, dan itulah sebabnya daftar antarmuka adalah pemeriksaan pertama, bukan yang terakhir. Perangkat yang melaporkan dirinya naik menggambarkan pandangan kernel tentang tautan virtual, bukan kesediaan peer untuk menjawab.
Biarkan mode antarmuka yang diberikan apa adanya. Mengubah profil TUN menjadi TAP tidak membuat server terutek menjadi dijembatani, dan biasanya menghasilkan koneksi yang terbentuk dan tidak meneruskan apa pun.
Rute dipasang oleh siapa pun yang memiliki terowongan
Rute adalah perubahan kedua, dan kepemilikannya lebih penting daripada isinya. Profil NetworkManager, unit systemd, dan klien yang dijalankan manual semuanya dapat memasang rute, dan dua di antaranya melakukannya sekaligus menghasilkan tabel yang tidak dapat dijelaskan siapa pun nanti.
ip -br addr show ip route show ip -6 route show
Profil terowongan penuh menggantikan rute default; profil terowongan terpisah menambahkan rute yang lebih spesifik dan membiarkan rute default apa adanya. Keduanya normal, dan yang kedua adalah alasan mengapa menghapus rute default adalah uji pertama yang buruk pada mesin yang Anda kelola dari jarak jauh. Menghapusnya juga cara tercepat kehilangan sesi yang Anda gunakan untuk memperbaiki masalah.
Baca tabelnya alih-alih berasumsi. Rute yang lebih spesifik atau aturan kebijakan dapat mengirim lalu lintas ke terowongan sementara rute default masih menunjuk ke antarmuka fisik, yang tampak bertentangan sampai Anda membaca seluruh tabel. Kombinasi itu normal untuk terowongan terpisah dan membingungkan bagi siapa pun yang mengharapkan satu baris menjelaskan desainnya. Cari rute yang cocok dengan tujuan Anda yang sebenarnya, bukan yang cocok dengan diagram.
Resolver berpindah tangan
DNS adalah perubahan ketiga dan yang paling mungkin dikelola di tempat yang tidak Anda lihat. Di desktop, NetworkManager dapat mendorong pengaturan resolver per koneksi. Pada sistem yang menggunakan systemd-resolved, pengaturan diterapkan per tautan dan /etc/resolv.conf mungkin berupa stub atau tautan simbolik, bukan berkas yang seharusnya Anda sunting.
resolvectl status readlink -f /etc/resolv.conf cat /etc/resolv.conf
Jika suntingan manual pada berkas resolver menghilang setelah menyambung ulang, itu tanda untuk menemukan komponen yang memeliharanya dan mengubah profil sebagai gantinya. Menyunting berkas yang dihasilkan adalah perubahan yang akan dihapus oleh penyambungan ulang.
Nama privat biasanya membutuhkan resolver internal dan domain pencarian yang disediakan operator. Menggantinya dengan resolver publik dapat merusak justru sumber daya yang menjadi alasan VPN ada, dan gejalanya tampak seperti kegagalan perutean, bukan kegagalan DNS. Uji nama dan alamat secara terpisah, karena satu bekerja dan yang lain gagal memberi tahu Anda persis ke mana harus melihat. Perbandingan tunggal itu menghemat satu jam penelusuran masalah rute.
Satu pengelola per koneksi
Format profil menentukan program mana yang dapat menggunakannya. Profil OpenVPN membutuhkan OpenVPN atau plugin yang kompatibel, dan konfigurasi WireGuard memiliki formatnya sendiri dengan kunci peer dan prefiks yang diizinkan. Dialog impor tidak menerjemahkan yang satu ke yang lain, apa pun yang disiratkan ekstensi berkas.
Pilih satu pengelola dan biarkan ia memiliki koneksinya. Mengangkat terowongan yang sama melalui dua alat membuat tabel rute dan perilaku penyambungan ulang menjadi ambigu, dan yang kedua dimulai biasanya menang dengan cara yang sulit direproduksi.
Pasang paket yang didukung distribusi Anda dan dapatkan profil dari operator. Perlakukan sebagai kredensial, karena biasanya berisi kunci privat atau materi setara, dan simpan di tempat rahasia Anda yang lain berada. Profil yang dibiarkan di folder unduhan adalah kunci yang dibiarkan di meja.
Apa yang harus diperiksa ketika sudah naik tetapi tidak berfungsi
Dengan antarmuka naik dan klien melaporkan keberhasilan, bekerjalah ke arah luar: apakah tabel rute memilih terowongan untuk tujuan, apakah resolver menjawab untuk nama privat, dan apakah sisi jauh memiliki jalur kembali. Masing-masing punya perintah terpisah dan pemilik terpisah.
nmcli connection show --active nmcli device status wg show
Referensi nmcli mendokumentasikan perintah status dan koneksi jika Anda membutuhkan kumpulan lengkap. Yang penting di sini adalah perbedaan antara profil yang aktif dan perangkat yang membawa lalu lintas, karena keduanya bisa tidak sependapat.
Sambungkan ulang sekali melalui pengelola yang sama sebelum Anda menyebut penyiapan selesai, dan periksa bahwa DNS masih berfungsi setelah terputus. Konfigurasi yang hanya berfungsi sampai perubahan jaringan pertama belum selesai, ia hanya berfungsi saat ini.