Profil itu berfungsi pada hari Selasa, dan pada hari Jumat klien berputar selama tiga puluh detik lalu menyerah. Tidak ada yang berubah di mesin Anda. Justru itulah intinya: konfigurasi yang diunduh menggambarkan satu host pada satu saat, dan operator di ujung sana tidak berkewajiban menjaga deskripsi itu tetap benar. Godaannya adalah mulai menyunting pengaturan keamanan sampai terowongan kembali menyala. Dorongan itulah sebabnya orang akhirnya menjalankan profil dengan verifikasi sertifikat dimatikan, yang lebih buruk daripada tidak punya terowongan sama sekali.

Berkas itu menggambarkan satu saat, bukan kontrak

Berkas konfigurasi adalah kumpulan asersi: nama host ini mendengarkan di porta ini dengan protokol ini, menyajikan sertifikat yang cocok dengan nama ini, dan menerima kredensial ini. Begitu salah satunya tidak lagi benar, berkas itu kedaluwarsa dan perbaikannya ada di sisi operator dari batas itu, bukan di pengaturan Anda.

Daftar node publik membuat hal itu jelas dengan sendirinya. Node dijalankan oleh sukarelawan, muncul dan hilang, alamat didaur ulang, dan porta diblokir oleh jaringan tempat node itu berada. Daftar tersebut adalah cuplikan yang dibuat ulang, dan salinan di disk Anda adalah foto dari cuplikan yang lebih lama.

Layanan komersial berubah lebih lambat, tetapi bukan berarti tidak pernah. Otoritas sertifikat berganti, pendengar pindah dari alamat bersama ke alamat khusus, protokol lama dipensiunkan dan daftar cipher baru muncul. Semuanya tidak terlihat sampai klien Anda mencoba terhubung dan mendapat jawaban berbeda dari yang diharapkan berkas.

Baca tahap kegagalan sebelum menyentuh pengaturan

Pesan galat memberi tahu asersi mana yang gagal, dan setiap asersi punya perbaikan yang sama sekali berbeda. Menyunting cipher saat nama host tidak lagi terurai hanya membuang satu sore dan tidak mengajarkan apa pun.

What happensThe assertion that brokeSupported response
Name never resolvesThe host still exists under that nameGet a current endpoint from the operator
TCP connect times outThe listener is on that port and reachableCheck the current published port, then the local network
TLS or key exchange failsThe peer presents the expected identityCompare the certificate, not the cipher list
Authentication rejectedThe account is still validGet credentials reissued or stop using the service
dig +short vpn.example.net
curl -sS -o /dev/null -w 'connect=%{time_connect} tls=%{time_appconnect}\n' --max-time 8 https://vpn.example.net:443/
openssl s_client -connect vpn.example.net:443 -servername vpn.example.net -brief </dev/null

Baris tengah memisahkan jalur yang diblokir dari jabat tangan yang rusak, dan baris ketiga menunjukkan penerbit serta tanggal berlaku sertifikat yang benar-benar disajikan. Jika penerbit itu bukan yang disematkan profil, sertifikatnya berubah, dan tidak ada opsi di sisi klien yang akan membuat sematan lama benar lagi.

Perubahan sertifikat dan identitas adalah yang senyap

Sebagian besar kegagalan mengumumkan dirinya. Perubahan identitas tidak, karena klien yang menyematkan nama sertifikat akan menolak sertifikat baru yang sepenuhnya baik dengan pesan yang banyak orang baca sebagai bug. Terowongannya baik-baik saja. Sematannya kedaluwarsa.

Cari opsi identitas sebelum menyimpulkan apa pun:

grep -nE '^(remote|proto|auth|verify-x509-name|tls-crypt|key-direction|ca) ' profile.ovpn
openssl x509 -in profile-ca.crt -noout -subject -dates

Jika profil membawa CA tersemat dan operator telah beralih ke otoritas baru, berkas lama tidak dapat memvalidasi server baru. Mengganti blok CA dengan yang diterbitkan operator adalah perbaikan yang sah. Menghapus direktif verifikasi bukan, dan itu ketukan tombol yang sama dengan hasil yang sangat berbeda.

Peningkatan klien dapat menghasilkan gejala yang sama tanpa perubahan apa pun dari operator. Opsi yang dulu ditoleransi diam-diam kini ditolak, atau protokol usang dihapus. Itu batas kompatibilitas di perangkat lunak Anda, dan ada baiknya mencoba profil kedua dengan klien yang sama sebelum menyalahkan server.

Hanya operator yang dapat menerbitkan pengganti yang sah

Ketika node hilang, penggantinya harus datang dari sumber yang sama yang menerbitkan aslinya. Profil yang tiba lewat pesan langsung karena «memakai nama server yang sama» adalah konfigurasi yang belum diverifikasi dari pihak tak dikenal, dan mengimpornya memberi pihak itu kendali atas perutean Anda.

Pemeriksaannya murah. Ambil berkas terkini dari lokasi terbitan, bandingkan titik akhir dan protokol dengan daftar, dan konfirmasi sidik jari materi CA alih-alih percaya pada nama berkas:

curl -sS -o current.ovpn https://example.org/nodes/current.ovpn
sha256sum current.ovpn profile.ovpn
grep -nE '^(remote|proto) ' current.ovpn

Jika kedua hash hanya berbeda pada spasi, Anda punya perubahan format. Jika berbeda pada titik akhir, operator memindahkan sesuatu dan berkas terbitan adalah otoritasnya. Jika berkas terbitan lebih tua daripada yang Anda pegang, Anda mungkin melihat cache, dan jawaban usang akan mengirim Anda ke arah yang salah.

Pensiunkan entri lama dan catat apa yang terjadi

Setelah pengganti yang berfungsi terverifikasi, hapus profil lama alih-alih menyimpannya sebagai cadangan. Entri usang yang setengah tersambung adalah jebakan: ia akan dipilih saat gangguan, gagal perlahan, dan orang yang mendiagnosis akan menghabiskan sepuluh menit pertama pada berkas yang salah.

Simpan catatan singkat di luar konfigurasi: tanggal, titik akhir lama, tahap kegagalan, dan apa yang menggantikannya. Node publik berganti, dan enam minggu kemudian pertanyaan yang sama datang dengan orang yang berbeda. Satu baris di berkas catatan menjawabnya dalam hitungan detik.

Jika dari satu jaringan setiap node gagal dengan cara yang sama dan dari jaringan lain tidak ada yang gagal, berhentilah menyunting profil dan lihat jalur lokal. Portal tawanan, rentang porta yang difilter, atau proksi penyadap akan menghasilkan galat identik pada penyedia yang tidak terkait, dan pola itulah satu-satunya tanda bahwa masalahnya tidak pernah ada di berkas.

Artikel terkait