OpenVPN meminta frasa laluan kunci peribadi pada mesin setempat, jadi fail log masuk yang berfungsi tidak pernah menjawabnya. Dalam perkhidmatan tiada terminal untuk menaip, dan permulaan sama ada tergantung atau gagal dengan entri jurnal yang menamakan input dan bukan puncanya. Terdapat dua rahsia, dan setiap satu memerlukan sumbernya sendiri yang boleh dibaca sebelum unit dimulakan semula. Langkah di bawah mengasingkan keduanya, kemudian menyemak identiti yang benar-benar membuka setiap fail.

Bezakan kedua-dua gesaan

Frasa laluan kunci menyahsulit kunci peribadi setempat; kelayakan akaun mengesahkan sesi dengan pelayan. Keduanya datang dari tempat berbeza, gagal pada masa berbeza dan menghasilkan mesej berbeza. Mengelirukan keduanya membuat orang mencari set semula kata laluan sedangkan akaun tidak terlibat langsung. Baca teks gesaan sebelum menukar apa-apa pilihan, kerana perkataannya satu-satunya petunjuk yang boleh dipercayai tentang rahsia mana yang hilang.

Dalam Community OpenVPN 2.x, askpass menamakan fail yang menyimpan frasa laluan kunci pada baris pertama, dan auth-user-pass menamakan fail dengan nama pengguna pada satu baris dan kata laluan pada baris berikutnya. Tiada satu pun fail dapat memenuhi pilihan yang satu lagi. Aplikasi desktop atau profil NetworkManager mungkin menyimpan keduanya dalam stor rahsianya sendiri, yang tidak pernah dibaca oleh klien baris arahan, jadi catat klien mana yang anda konfigurasikan sebelum menulis apa-apa laluan.

Halakan kedua-dua pilihan kepada fail yang boleh dibaca

Profil yang memerlukan kedua-dua input akhirnya mempunyai tiga rujukan fail: kunci tersulit, frasa laluan yang membukanya dan pasangan log masuk. Tambahkannya tanpa menyentuh CA atau pemeriksaan identiti, kerana keduanya menentukan siapa pelayan itu dan bukan sebahagian daripada masalah ini. Jika penggunaan tidak menggunakan kelayakan akaun sama sekali, menambah auth-user-pass mencipta input yang tiada siapa dapat membekalkan.

key /etc/openvpn/client/office.key
askpass /etc/openvpn/client/office-key.pass
auth-user-pass /etc/openvpn/client/office-login.auth

Pilihan tanpa hujah berkelakuan berbeza daripada pilihan dengan laluan, dan perbezaannya penting pada perkhidmatan. askpass tanpa hujah masih membaca konsol, dan fail auth-user-pass yang hanya mengandungi nama pengguna masih meninggalkan gesaan kata laluan menunggu. Sebaik sahaja klien menjadi daemon, ia tidak boleh meminta input daripada terminal langsung, jadi perkhidmatan yang dikonfigurasikan begini tidak timbul.

Laluan mutlak menghapuskan persoalan direktori kerja tetapi tidak memberi akses. Pemilikan, mod dan penelusan menyusul, dan ketiga-tiganya disemak terhadap akaun yang menjalankan proses.

Baca konfigurasi unit sebelum profil

Unit, bukan fail yang anda sunting, menentukan konfigurasi mana yang dimuatkan oleh instans. Baca baris arahannya dan semua drop-in, kemudian ikuti direktori kerja ke profil yang benar-benar digunakan. Rujukan frasa laluan yang ditambah pada fail .ovpn lain tidak mengubah apa-apa untuk instans ini.

Tiga arahan baca sahaja menjawab sebahagian besarnya. Yang pertama mencetak unit dan semua drop-in, yang kedua mencetak identiti dan tetapan sandbox yang mengekang proses, dan yang ketiga mencetak apa yang sebenarnya diadukan oleh permulaan terakhir. Gunakan nama instans yang wujud pada hos:

systemctl cat [email protected]
systemctl show [email protected] -p User -p Group -p WorkingDirectory -p ProtectHome
journalctl -u [email protected] -b

Perhatikan ProtectHome dan pilihan profil itu sendiri user, group dan chroot. Fail di bawah direktori rumah boleh dibaca dalam shell anda tetapi tidak kelihatan dalam perkhidmatan apabila direktori rumah disembunyikan. Akaun yang systemd mulakan bukan selalu akaun yang akhirnya membuka kunci.

Buktikan identiti masa jalan boleh membuka kedua-dua fail

Membaca mod tidak cukup, kerana setiap direktori pada laluan mesti boleh dilalui oleh identiti yang sama. Lalui laluan komponen demi komponen, kemudian uji pembukaan sebagai akaun yang digunakan proses. Fail dengan mod 600 milik root hanya berfungsi selagi proses masih root, yang tidak benar selepas penurunan keistimewaan yang dilakukan banyak profil. Dua arahan meliputi penelusan dan pembukaan:

namei -l /etc/openvpn/client/office-key.pass
sudo -u openvpn test -r /etc/openvpn/client/office-key.pass && echo readable

Arahan pertama mencetak mod setiap komponen dan gagal di tempat akaun tidak boleh melaluinya; yang kedua menjawab satu-satunya soalan penting, iaitu sama ada identiti masa jalan boleh membuka fail itu untuk dibaca. Kedua-duanya tidak mencetak kandungan fail, dan itulah intinya apabila fail menyimpan frasa laluan. Ulangi ujian untuk fail log masuk, kerana keduanya sering disimpan dengan pemilikan berbeza.

Jika proses menggunakan chroot atau namespace terhad, jalankan ujian yang sama dari dalam paparan itu, atau jawapannya menerangkan sistem fail yang salah. Frasa laluan yang disimpan di bawah direktori rumah tersembunyi ialah contoh biasa ujian yang lulus di luar unit dan gagal di dalamnya.

Semak permulaan pertama, kemudian sambungan semula

Mulakan instans sekali dan baca kegagalan pertama, bukan yang terakhir. Fail input yang hilang, penyahsulitan kunci yang gagal dan AUTH_FAILED daripada pelayan ialah tiga peristiwa berbeza dengan tiga pembaikan berbeza. Membaiki amaran kebenaran tidak membuktikan apa-apa tentang sama ada kunci telah dibuka.

Baris jurnal memberitahu yang mana antara ketiga-tiganya. Pembaikan mengikut input mana yang gagal:

What the journal showsWhich input failedWhere to look
A path that cannot be openedThe file the profile namesAskpass or login path, and the unit's working directory
A key decryption errorThe key passphraseFirst line of the askpass file, and read access for the runtime identity
AUTH_FAILED from the serverThe account credentialsLogin file contents, and whether the account is still valid

Kemudian uji kitaran hayat yang anda benar-benar perlukan: permulaan semasa but dan mana-mana sambungan semula yang disokong, bukan hanya permulaan manual daripada shell anda. Dengan auth-nocache input dibuang selepas penggunaan pertama, jadi sambungan semula kemudian masih memerlukan sumber yang boleh dibaca. Gelang kunci yang dibuka semasa log masuk desktop tidak tersedia untuk perkhidmatan yang bermula sebelum sesiapa log masuk, dan itulah sebab biasa ujian manual lulus tetapi but semula gagal. Jika permulaan pertama berjaya dan sambungan semula kemudian gagal, baca jurnal untuk peristiwa sambungan semula sebelum menukar kebenaran lagi.

Menyimpan frasa laluan di sebelah kunci mengurangkan apa yang penyulitan berikan kepada anda, jadi hadkan fail itu dan sandarannya. Anggap pembuangan frasa laluan kunci sebagai keputusan kelayakan yang berasingan, bukan pembaikan untuk input yang hilang. Penggunaan yang bergantung pada kelulusan manusia atau MFA interaktif memerlukan ejen atau integrasi pengurusan yang disokong; kod sekali guna yang disimpan kekal bukan pengganti yang setara.

Artikel berkaitan