AES-256-GCM tidak ditemukan: kemampuan klien atau negosiasi?
Dua galat OpenVPN tampak serupa: build tanpa algoritme dan peer tanpa cipher bersama. Baca --show-ciphers dan data-ciphers sebelum menyunting profil.
Profil OpenVPN yang berfungsi di tempat lain melaporkan bahwa AES-256-GCM tidak ditemukan, atau bahwa para peer tidak berbagi cipher, dan dorongan pertama adalah menyunting profil. Kedua pesan itu menggambarkan kegagalan yang berbeda. Yang satu mengatakan program lokal tidak memiliki algoritme tersebut; yang lain mengatakan kedua sisi punya algoritme tetapi tidak ada pilihan bersama. Menyunting profil tidak memperbaiki keduanya sampai Anda tahu mana yang Anda hadapi.
Baca teks galat yang persis dan program yang menghasilkannya.
Tentukan galat mana yang Anda alami
Pesan tentang cipher yang tidak ditemukan berasal dari penguraian opsi di mesin lokal, sebelum paket apa pun dikirim. Artinya, berkas yang dapat dieksekusi di depan Anda, atau pustaka yang ditautkannya, tidak menawarkan algoritme itu. Pesan tentang tidak adanya cipher bersama datang kemudian, selama negosiasi, dan berarti kedua pihak mendukung cipher tetapi tidak dapat menyepakati satu.
Perbedaannya penting karena yang satu masalah versi perangkat lunak dan yang lain masalah konfigurasi. Yang pertama diputuskan oleh nomor versi. Yang kedua diputuskan dengan membandingkan dua daftar.
Kekurangan kemampuan lokal
Build komunitas lama mendahului nilai bawaan modern, dan aplikasi desktop dapat membawa mesinnya sendiri yang berbeda dari paket baris perintah yang dipasang di sampingnya. Jalankan pemeriksaan pada berkas yang benar-benar memulai koneksi, lalu pilih build yang didukung alih-alih mengajari program lama algoritme baru.
openvpn --version openvpn --show-ciphers | grep -i gcm openvpn --show-tls | head -5
Jika AES-256-GCM tidak muncul dalam daftar itu, tidak ada baris profil yang akan menambahkannya. Solusinya klien yang lebih baru atau build lain, dan batasan pihak yang lebih lama menjadi pertanyaan desain tersendiri.
Pada klien berbasis OpenVPN 3, mesin dan direktif yang diterima berbeda dari jalur komunitas 2.x, sehingga teks profil yang sama dapat gagal karena alasan yang tidak ada hubungannya dengan daftar cipher.
Kekurangan dalam negosiasi
Ketika kedua peer mencantumkan algoritme, pertanyaan yang tersisa adalah daftar mana yang ditawarkan tiap sisi. OpenVPN komunitas mengganti nama direktif negosiasi: ncp-ciphers pada 2.4 menjadi data-ciphers pada 2.5, dan pada 2.6 baris cipher lama terutama melayani kompatibilitas dan cadangan, bukan menentukan himpunan yang dinegosiasikan.
Karena itu mengubah hanya baris cipher lama dapat membiarkan daftar negosiasi tak tersentuh. Baris lama masih penting untuk cadangan, dan itu pekerjaan terpisah. Mencampur keduanya menghasilkan suntingan yang tidak mengubah apa pun yang terlihat.
openvpn --version | head -2 grep -n -E '^(data-ciphers|ncp-ciphers|cipher|tls-cipher)' server.conf client.ovpn
Bandingkan daftar kedua ujung dan pesan penolakan server. Jika irisan kosong, sejajarkan daftar dengan sengaja alih-alih menyalin nilai dari tulisan yang dibuat untuk versi lain. Daftar yang terlalu longgar diam-diam melemahkan setiap koneksi. Daftar yang terlalu sempit menyingkirkan peer yang ingin Anda pertahankan.
Jaga kompatibilitas tetap eksplisit
Cadangan untuk satu peer lama adalah keputusan yang berbiaya: seluruh penerapan menerima opsi yang lebih lemah agar satu perangkat dapat terhubung. Tuliskan seperti itu, dan batasi pada peer yang membutuhkannya.
Dua syarat menentukan hasilnya. Jika galatnya lokal, ganti build. Jika galatnya dalam negosiasi, sejajarkan daftar di kedua ujung dan catat versi mana yang Anda dukung.
Lalu laporkan galat yang persis dengan keluaran versi dan kemampuan terlampir. Pasangan itu memisahkan algoritme yang hilang dari perselisihan, dan menghentikan putaran suntingan spekulatif berikutnya sebelum dimulai.