Konfigurasi VPN awam berhenti berfungsi? Baca peringkat kegagalan
Profil yang dimuat turun menerangkan satu hos pada satu hari. Baca dakwaan mana yang gagal, periksa sijil yang dikemukakan pihak lawan, dan jangan sekali-kali lumpuhkan pengesahan.
Profil itu berfungsi pada hari Selasa, dan pada hari Jumaat klien berputar selama tiga puluh saat lalu mengalah. Tiada apa pun berubah pada mesin anda. Itulah titiknya: konfigurasi yang dimuat turun menerangkan satu hos pada satu ketika, dan pengendali di hujung sana tidak terikat untuk mengekalkan penerangan itu benar. Godaan ialah mula menyunting tetapan keselamatan sehingga terowong kembali naik. Dorongan itulah sebabnya orang akhirnya menjalankan profil dengan pengesahan sijil dimatikan, yang lebih buruk daripada tiada terowong sama sekali.
Fail itu menerangkan satu ketika, bukan kontrak
Fail konfigurasi ialah satu set dakwaan: nama hos ini mendengar pada port ini dengan protokol ini, mengemukakan sijil yang sepadan dengan nama ini, dan menerima kelayakan ini. Apabila mana-mana satu daripadanya tidak lagi benar, fail itu sudah lapuk dan pembaikan terletak pada pihak pengendali di sempadan, bukan pada tetapan anda.
Senarai nod awam menjadikannya jelas secara semula jadi. Nod dikendalikan oleh sukarelawan, ia muncul dan hilang, alamat dikitar semula dan port disekat oleh rangkaian di belakangnya. Senarai itu ialah petikan yang dijana semula, dan salinan pada cakera anda ialah gambar bagi petikan yang lebih lama.
Perkhidmatan komersial berubah lebih perlahan, tetapi bukan tidak pernah. Pihak berkuasa sijil bergilir, pendengar berpindah dari alamat kongsi ke alamat khusus, protokol lama dipersarakan dan senarai sifer baharu tiba. Setiap satunya tidak kelihatan sehingga klien anda cuba menyambung dan menerima jawapan berbeza daripada yang dijangka fail.
Baca peringkat kegagalan sebelum menyentuh tetapan
Mesej ralat memberitahu dakwaan mana yang gagal, dan setiap dakwaan mempunyai pembaikan yang sama sekali berbeza. Menyunting sifer apabila nama hos tidak lagi diselesaikan membuang satu petang dan tidak mengajar sesiapa apa-apa.
| What happens | The assertion that broke | Supported response |
|---|---|---|
| Name never resolves | The host still exists under that name | Get a current endpoint from the operator |
| TCP connect times out | The listener is on that port and reachable | Check the current published port, then the local network |
| TLS or key exchange fails | The peer presents the expected identity | Compare the certificate, not the cipher list |
| Authentication rejected | The account is still valid | Get 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/nullBaris tengah memisahkan laluan yang disekat daripada jabat tangan yang rosak, dan baris ketiga menunjukkan pengeluar serta tarikh sah sijil yang benar-benar dikemukakan. Jika pengeluar itu bukan yang dipinkan oleh profil, sijil telah berubah, dan tiada pilihan di pihak klien akan menjadikan pin lama betul semula.
Perubahan sijil dan identiti ialah yang senyap
Kebanyakan kegagalan mengumumkan diri. Perubahan identiti tidak, kerana klien yang memin nama sijil akan menolak sijil baharu yang sempurna baik dengan mesej yang ramai baca sebagai pepijat. Terowong itu baik. Pin itu lapuk.
Cari pilihan identiti sebelum membuat apa-apa kesimpulan:
grep -nE '^(remote|proto|auth|verify-x509-name|tls-crypt|key-direction|ca) ' profile.ovpn
openssl x509 -in profile-ca.crt -noout -subject -datesJika profil membawa CA terbenam dan pengendali telah beralih kepada pihak berkuasa baharu, fail lama tidak dapat mengesahkan pelayan baharu. Menggantikan blok CA dengan yang diterbitkan pengendali ialah pembaikan yang sah. Menghapuskan arahan pengesahan bukan, dan itu ketukan kekunci yang sama dengan hasil yang sangat berbeza.
Naik taraf klien boleh menghasilkan gejala yang sama tanpa apa-apa perubahan daripada pengendali. Pilihan yang dahulunya ditoleransi secara senyap kini ditolak, atau protokol lapuk dikeluarkan. Itu had keserasian dalam perisian anda, dan wajar mencuba profil kedua dengan klien yang sama sebelum menyalahkan pelayan.
Hanya pengendali boleh menerbitkan pengganti yang sah
Apabila nod hilang, penggantinya mesti datang dari sumber yang sama yang menerbitkan asalnya. Profil yang tiba dalam mesej langsung kerana «menggunakan nama pelayan yang sama» ialah konfigurasi yang tidak disahkan daripada pihak yang tidak dikenali, dan mengimportnya memberikan pihak itu kawalan ke atas penghalaan anda.
Pemeriksaan itu murah. Ambil fail semasa dari lokasi yang diterbitkan, bandingkan titik akhir dan protokol dengan senarai, dan sahkan cap jari bahan CA dan bukannya mempercayai nama fail:
curl -sS -o current.ovpn https://example.org/nodes/current.ovpn
sha256sum current.ovpn profile.ovpn
grep -nE '^(remote|proto) ' current.ovpnJika dua cincangan hanya berbeza pada ruang putih, anda mempunyai perubahan format. Jika ia berbeza pada titik akhir, pengendali telah memindahkan sesuatu dan fail yang diterbitkan ialah pihak berkuasa. Jika fail yang diterbitkan lebih lama daripada yang anda pegang, anda mungkin melihat cache, dan jawapan lapuk akan menghantar anda ke arah yang salah.
Persarakan entri lama dan catat apa yang berlaku
Sebaik sahaja pengganti yang berfungsi disahkan, hapuskan profil lama dan bukannya menyimpannya sebagai sandaran. Entri lapuk yang bersambung separuh ialah perangkap: ia akan dipilih semasa gangguan, ia akan gagal dengan perlahan, dan orang yang menyahpepijat akan menghabiskan sepuluh minit pertama pada fail yang salah.
Simpan catatan ringkas di luar konfigurasi: tarikh, titik akhir lama, peringkat kegagalan dan apa yang menggantikannya. Nod awam bergilir, dan enam minggu kemudian soalan yang sama datang dengan orang yang berbeza. Satu baris dalam fail nota menjawabnya dalam beberapa saat.
Jika dari satu rangkaian setiap nod gagal dengan cara yang sama dan dari rangkaian lain tiada yang gagal, berhenti menyunting profil dan lihat laluan setempat. Portal tawanan, julat port yang ditapis atau proksi yang memintas akan menghasilkan ralat yang serupa pada penyedia yang tidak berkaitan, dan corak itulah satu-satunya isyarat bahawa masalahnya tidak pernah fail itu.