Satu peranti lama muncul, gagal menyambung, dan pembaikan yang kelihatan paling pantas ialah melemahkan seluruh hos sehingga sambungan berjaya. Pertukaran itu tidak kelihatan pada saat itu dan kekal dalam amalan, kerana tiada siapa membuang dasar yang akhirnya berfungsi. Dua kerosakan yang sangat berbeza menimbulkan tekanan ini, dan hanya satu daripadanya berkaitan sifer. Asingkan kerosakan dahulu, kemudian letakkan pengecualian di tempat yang tidak boleh merebak.

Belah kegagalan kepada dua sebelum mengubah arahan

Baris log pelayan tentang tiada sifer dikongsi, atau tentang versi protokol yang tidak disokong, datang dari saluran kawalan: kedua-dua hujung tidak dapat bersetuju bagaimana melindungi rundingan itu sendiri. Baris klien yang menyatakan tiada kaedah pengesahan sijil pelayan diaktifkan datang dari tempat yang sama sekali berbeza, kerana klien itu langsung tidak menyemak siapa yang menjawab. Menukar sifer data tidak membantu kes kedua, dan menambah semakan peranan tidak membantu kes pertama.

Ambil baris gagal paling awal dari setiap pihak, bukan baris terakhir sebelum pemutusan, kerana yang terakhir biasanya akibat. Kemudian tentukan fail mana yang benar-benar dibuka klien: profil yang diimport sering wujud dua kali dengan nama paparan berbeza, dan mengedit salinan yang tiada siapa baca menghasilkan ketiadaan perubahan yang meyakinkan. Proses yang berjalan mengekalkan tetapan semasa ia bermula, jadi fail yang disimpan bukan fail yang dimuatkan. Arahan di bawah menunjukkan rundingan klien di sebelah pandangan pelayan bagi percubaan yang sama.

openvpn --config <profile>.ovpn --verb 4 2>&1 | head -n 40
journalctl -u [email protected] --since '-10 min' | grep -iE 'cipher|tls|verify'

Pendengar kedua ialah tempat jujur untuk dasar yang lebih lemah

Apabila peranti terhenti pada TLS 1.0 dengan saluran data pra-2.5, pelayan mesti menawarkan dasar saluran kawalan yang lebih rendah dan sifer data yang dikenali klien lama. Arahan sandaran wujud khusus untuk rakan itu, manakala senarai sifer mengekalkan klien moden pada suit moden. Kedua-dua arahan milik pendengar dan bukan pengguna atau sambungan, dan tiada pilihan setiap klien menyempitkannya kemudian. Itulah sebabnya satu peranti warisan pada port utama ialah keputusan tentang setiap rakan yang berkongsi port itu.

Di tempat platform membenarkannya, jalankan pendengar warisan sebagai instans sendiri pada port berasingan, benarkan port itu hanya dari alamat peranti, dan biarkan perkhidmatan utama diam. Tulis sebab pendengar kedua wujud, dalam fail yang membawa konfigurasinya, kerana pembersihan masa depan akan membacanya sebagai sisa. Pemisahan itu hanya berbaloi jika dasar yang lebih lemah berakhir di tempat peranti itu berakhir.

tls-version-min 1.0
data-ciphers AES-128-GCM:AES-256-GCM:AES-256-CBC
data-ciphers-fallback AES-256-CBC

Apa yang sebenarnya dirosakkan oleh sijil penyedia lama

Ralat pengesahan ialah ikatan peranan yang hilang: tanpanya klien akan menerima mana-mana sijil yang berantai kepada CA dipercayai, sama ada sijil itu dikeluarkan untuk pelayan atau tidak. Ikat sijil kepada peranan pelayan dahulu, dan anggap ikatan itu sebagai keperluan bukan tombol penalaan. Hanya profil yang masih gagal selepas langkah itu mempunyai masalah sijil yang sebenar.

Sijil penyedia lama yang saiz kunci atau algoritma tandatangannya tidak lagi memenuhi dasar lalai OpenSSL ialah kes untuk perubahan tahap keselamatan yang terhad pada saluran kawalan. Menurunkan tahap di situ tidak mematikan pengesahan, dan ia tidak boleh sekali-kali digabungkan dengan CA kosong, tetapan pengesahan dilumpuhkan atau nama hos yang tidak diperiksa. Simpan baris itu di dalam satu profil yang memerlukannya; mengeksport konfigurasi OpenSSL yang dilonggarkan secara global akan menyerahkan pelonggaran yang sama kepada setiap program pada mesin.

remote-cert-tls server
tls-cipher "DEFAULT:@SECLEVEL=0"

Baca nilai yang dirundingkan, bukan sepanduk

Pada verbosity 4 kedua-dua hujung mencetak versi TLS dan sifer saluran kawalan yang mereka persetujui, dan sifer data untuk sesi itu. Baca baris itu dan bukan sepanduk permulaan, yang melaporkan kejayaan dan bukan syaratnya. Kemudian sambung semula klien moden ke pendengar utama dan sahkan ia masih mendarat pada suit moden, kerana pengecualian yang bocor ke konfigurasi dikongsi muncul di sini dahulu. Nilai yang anda salin menjadi asas untuk semakan seterusnya.

Uji peranti lama itu sendirian: ia sepatutnya menyambung, dan ia sepatutnya satu-satunya sesi dalam log yang menunjukkan parameter lebih lemah. Jika rakan kedua juga merundingkan suit lama, pengecualian itu lebih luas daripada yang dimaksudkan dan pemisahan pendengar tidak benar-benar berlaku. Catat kedua-dua pemerhatian dan bukan kesimpulan sahaja.

Setiap pengecualian memerlukan pemilik dan tarikh

Pengecualian tanpa syarat pembuangan diam-diam menjadi lalai, jadi letakkan peranti, pemilik, sebab dan tarikh ia hilang di sebelah konfigurasi yang ia justifikasikan. Tanpa baris itu dasar yang lebih lemah hidup lebih lama daripada perkakasan yang memerlukannya.

Menggantikan klien, atau meminta profil semasa daripada penyedia, ialah hasil yang perlu dituju; pengecualian ialah kelewatan dan bukan reka bentuk. Apabila peranti bersara, buang pendengar dan profil dalam perubahan yang sama supaya tiada separuh kekal berjalan. Semua ini tidak menjadikan parameter lama selamat, ia hanya menghalang had satu peranti daripada menjadi asas semua orang.

Artikel berkaitan