Cara mengesahkan pelayan profil OpenVPN sebelum mengimportnya
Baca dahulu entri remote, lapisan pengangkutan dan pin kepercayaan dalam editor teks; penyelesaian nama membuktikan ketercapaian, bukan pemilikan.
Seseorang menghantar profil kepada anda, anda mengimportnya, dan tiga puluh saat kemudian klien mendail destinasi yang tidak diperiksa sesiapa. Baca fail itu dahulu dalam editor teks, kerana semua yang penting terletak dalam segenggam arahan: remote, proto, port, ca, cert, tls-crypt dan verify-x509-name. Selebihnya ialah nilai lalai, dan di situlah terletaknya kejutan.
Senaraikan setiap titik akhir yang boleh digunakan oleh fail
Mulakan dengan titik akhir, kerana satu profil boleh mengandungi beberapa. grep -nE '^[[:space:]]*(remote|proto|port|remote-random|connection)' profile.ovpn mencetak setiap calon mengikut susunan fail, termasuk yang bersarang dalam blok <connection> sebaris.
Apabila sesuatu arahan meninggalkan port, klien kembali kepada nilai lalai pendengar, jadi remote vpn.example.com sahaja bermaksud port 1194 dengan proto apa pun yang muncul kemudian dalam fail. Beberapa baris remote biasa ialah alternatif: klien mencubanya mengikut susunan kecuali remote-random mengacaukannya, dan ia tidak pernah menggantikan hos pengendali lain secara senyap. Dua baris remote pada domain tidak berkaitan ialah titik apabila anda berhenti dan bertanya yang mana dimaksudkan.
Perhatikan juga ejaan proto. tcp diterima sebagai sinonim bagi tcp-client di sisi klien, tetapi tcp-server dalam profil klien ialah ralat konfigurasi yang cenderung tergantung daripada gagal dengan bersih.
Sahkan nama dahulu, kemudian port
dig +short vpn.example.com memberitahu anda sama ada nama itu wujud dan alamat apa yang dikembalikannya, dan titik akhir berbilang alamat atau di belakang proksi boleh mengembalikan beberapa secara sah. Penyelesaian nama ialah prasyarat, bukan bukti pemilikan; sesiapa boleh menghalakan nama ke alamat, dan satu alamat boleh menjawab bagi banyak nama.
Kemudian periksa pendengar pada port yang anda temui, sepadan dengan pengangkutan. Melalui TCP, openssl s_client -connect vpn.example.com:1194 -servername vpn.example.com mencetak rantai yang dikemukakan pelayan. Melalui UDP anda perlukan DTLS: openssl s_client -dtls1_2 -connect vpn.example.com:1194 menjalankan jabat tangan yang sama merentas datagram. Jabat tangan yang selesai membuktikan sesuatu sedang mendengar dan memegang sijil, yang lebih daripada apa yang ditunjukkan ping dan kurang daripada apa yang dituntut oleh tetapan kepercayaan profil itu sendiri.
Apabila jabat tangan gagal dan hos menjawab ping, port itu mungkin salah atau ditapis. Anggapnya sebagai sebab untuk meminta port yang betul, bukan jemputan untuk menyapu port berdekatan. nc -vzu juga melaporkan kejayaan pada sesetengah tindanan tanpa apa-apa mendengar, jadi siasatan UDP kosong tidak bermakna apa-apa tanpa jabat tangan di belakangnya.
Baca pin kepercayaan berasingan daripada alamat
Alamat menentukan ke mana klien pergi; blok kepercayaan menentukan siapa yang dipercayainya apabila tiba. verify-x509-name "vpn.example.com" name menyematkan nama umum subjek, dan remote-cert-tls server memerlukan penggunaan kunci lanjutan untuk pengesahan pelayan. Profil yang diberikan pengendali kepada anda sepatutnya membawa kedua-duanya.
Cari ca, blok <ca> sebaris, dan sama ada tls-crypt atau tls-auth. Profil yang menggunakan tls-auth memerlukan key-direction 1 pada klien apabila sisi pelayan menggunakan arah 0, dan ketakpadanan menggagalkan jabat tangan dengan ralat TLS yang dibaca seperti kecacatan sijil. CA sebaris yang bukan milik pengendali yang namanya baru anda selesaikan bermakna fail itu dipasang daripada dua sumber, dan itulah kes yang wajar ditolak bulat-bulat.
verify-x509-name menerima mod name, name-prefix atau subject, dan yang terakhir mengharapkan nama berbeza sepenuhnya dalam susunan tepat seperti yang dicetak pelayan. Pilih mod yang sepadan dengan bentuk nilainya, kerana klien menolak setiap sambungan daripada memberi amaran tentang hampir padan. Bagi fail yang anda tidak tulis, name dengan nama hos ringkas ialah pilihan yang paling kurang mengejutkan.
Periksa pilihan yang gagal secara senyap
OpenVPN 2.6 berunding sifer melalui data-ciphers, dan profil yang hanya membawa baris cipher AES-256-CBC lama boleh melengkapkan saluran kawalan dan kemudian tersekat pada data. Membaca nilai itu memberitahu anda sama ada fail itu lebih tua daripada pelayan yang anda sertai; halaman manual 2.6 menyenaraikan susunan rundingan jika anda perlu memetiknya kepada pengendali.
auth-user-pass tanpa nama fail bermakna klien akan bertanya, jadi profil yang kelihatan lengkap masih memerlukan kelayakan. auth-user-pass credentials.txt bermakna ia menjangka fail yang mungkin tidak dihantar kepada anda. nobind dan resolv-retry infinite biasa dan tidak berbahaya, manakala explicit-exit-notify hanya untuk UDP dan sia-sia melalui TCP.
Tiada satu pun daripada ini mengubah ke mana profil disambungkan, tetapi setiap satu mengubah sama ada ia disambungkan sama sekali, dan tiada satu pun kelihatan dalam dialog import klien.
Tentukan, kemudian catat apa yang anda tentukan
Terdapat tiga hasil selepas bacaan ini, dan hanya satu ialah import. Apabila titik akhir dan pin sepadan dengan arahan yang anda terima melalui saluran berasingan, importlah. Apabila titik akhir kelihatan betul tetapi pin atau CA tidak sepadan, minta fail yang diperbetulkan. Apabila fail mencampurkan titik akhir atau bahan CA daripada sumber berbeza, hapuskannya dan minta salinan baharu.
Catat hash yang anda semak, supaya orang seterusnya tahu sama ada fail berubah: sha256sum profile.ovpn, ditampal di sebelah titik akhir dalam nota anda. Profil ialah susunan menyeluruh, bukan senarai alamat, jadi jangan sekali-kali menyambung remote yang berfungsi ke dalam blok kepercayaan orang lain sambil mengekalkan kelayakan mereka.
Jauhkan kunci peribadi dan kata laluan daripada tangkapan skrin dan urutan sembang semasa anda membandingkan nota. Titik akhir dan pilihan bukan rahsia sudah cukup untuk bertanya soalan yang tepat, dan selebihnya tempatnya dalam fail.
Jika anda tetap mengimportnya dan percubaan pertama gagal, jalankan klien dengan --verb 3 dan baca sepuluh baris pertama: alamat remote yang diselesaikan, proto yang dirundingkan dan ralat TLS muncul dalam susunan itu, yang memberitahu anda pemeriksaan mana di atas yang anda langkau.