openvpn3 session-start mengabaikan fail kelayakan anda
Klien 3.x mengambil kelayakan semasa sesi bermula dan tidak membaca fail yang disimpan. Gunakan gesaan atau laluan autoload, dan fahami apa yang disimpan oleh setiap satu.
Sambung dengan klien 2.x dan profil berfungsi; berikan fail yang sama kepada klien 3.x dan ia berhenti pada gesaan kata laluan. Berikan --auth-user-pass creds.txt kepada openvpn3 session-start dan hasilnya sama, kerana klien yang lebih baharu tidak mempunyai peringkat yang membaca fail itu. Penolakan itu disengajakan: kelayakan milik sesuatu sesi, dan sesi dicipta oleh perkhidmatan, bukan oleh proses dalam terminal anda. Pilih antara gesaan interaktif dan pembantu autoload, dan ketahui apa yang disimpan oleh setiap satu.
Mengapa fail yang disimpan tiada tempat untuk pergi
Dalam reka bentuk yang lebih baharu, pengurusan konfigurasi dan pengurusan sesi ialah perkhidmatan berasingan yang berkomunikasi melalui bas sistem. Pemisahan itulah yang membolehkan pengguna biasa memulakan sesi tanpa daemon istimewa membaca fail kata laluan yang dilindungi bagi pihak mereka. Kelayakan berasaskan fail tiada tempat dalam model itu, kerana tiada permulaan di pihak daemon yang akan membacanya. Penolakan itu ialah akibat seni bina, bukan ciri yang hilang.
Corak lama wajar dinamakan supaya lebih mudah dilupakan: profil merujuk fail kelayakan, dan daemon membacanya apabila terowong bermula. Dalam model baharu, kelayakan milik sesi dan dibekalkan apabila sesi itu bermula. openvpn3 session-start --config work.ovpn meminta kelayakan itu, dan --auth-user-pass creds.txt ditolak kerana tiada apa-apa dalam laluan itu yang akan membuka fail. Setiap resipi 2.x yang anda temui menganggap peringkat yang tidak lagi wujud.
Konfigurasi dan tetapan tempatan tapak juga dipisahkan, yang menjelaskan kejutan kedua. Profil boleh kelihatan lengkap sedangkan sambungan yang dihasilkannya kekurangan konfigurasi penghalaan dan penyelesai. Bahagian itu digunakan sebagai tetapan tempatan tapak, berasingan daripada fail yang diimport.
Laluan gesaan dan sesi yang ditinggalkannya
Membekalkan kata laluan apabila sesi bermula ialah aliran kerja yang dimaksudkan. Klien bertanya sekali, menyerahkan kelayakan kepada bahagian belakang sesi, dan meneruskan:
openvpn3 session-start --config work.ovpn
openvpn3 sessions-list
Tiada apa-apa ditulis ke cakera melalui laluan itu. Sesi juga terus berjalan selepas terminal ditutup, yang mengejutkan orang yang menjangka proses itu mati bersama cangkerang mereka. Itulah tujuan memindahkan pengendalian sesi ke dalam perkhidmatan. Sesi hidup lebih lama daripada terminal yang memintanya, dan ia mesti dihentikan secara eksplisit.
Bagi stesen kerja dengan manusia di hadapannya, ini juga pilihan paling selamat, kerana tiada rahsia tersimpan untuk dilindungi atau dilupakan. Ia tidak sesuai hanya di tempat tiada sesiapa untuk menaip.
Automasi tanpa manusia di papan kekunci
Di tempat mesin perlu bersambung tanpa manusia, projek menyediakan openvpn3-autoload. Ia membaca direktori profil dan deskriptor yang sepadan bagi setiap profil, dan deskriptor membekalkan kelayakan dalam teks biasa. Pembantu itu ialah binari berasingan, biasanya di /usr/sbin/openvpn3-autoload, bukan bendera pada session-start. Menyediakannya bermakna mencipta direktori, menyalin profil dengan nama yang dijangka oleh deskriptor, dan menulis deskriptor.
Persediaan bagi setiap pengguna kelihatan seperti ini, dijalankan sebagai akaun yang akan memiliki sesi. Mod direktori menghalang pengguna tempatan lain:
mkdir -m700 -p ~/.openvpn3/autoload
cp work.ovpn ~/.openvpn3/autoload/client.conf
$EDITOR ~/.openvpn3/autoload/client.autoload
Deskriptor menamakan kelayakan dan meminta permulaan automatik. Jauhkan nilai kata laluan daripada kawalan versi:
{
"autostart": true,
"user-auth": {
"autologin": true,
"username": "svc-vpn",
"password": "change-this-value"
}
}
Kemudian panggil pembantu itu sekali dan sahkan sesi muncul. Perintah kedua ialah pemeriksaan, bukan langkah persediaan yang lain:
/usr/sbin/openvpn3-autoload --directory ~/.openvpn3/autoload
openvpn3 sessions-list
Semasa but, unit berbungkus bernama openvpn3-autoload.service menggunakan direktori seluruh sistem /etc/openvpn3/autoload, bukan direktori setiap pengguna. Lokasi itu memerlukan pemilikan root dan mod yang lebih ketat, dan deskriptor masih menyimpan kata laluan dalam teks jelas. Pertukaran itu eksplisit: kata laluan kini berada di cakera, jadi anggap direktori itu sebagai rahsia, kecualikan daripada sandaran luar hos, dan pilih laluan interaktif setiap kali ada manusia.
Kegagalan bas yang kelihatan seperti kegagalan kata laluan
Sesetengah kegagalan yang dikaitkan dengan kelayakan sama sekali bukan begitu. Ralat kebenaran yang menamakan laluan pengaktifan perkhidmatan bermakna salah satu daripada dua perkara: bahagian belakang tidak berjalan, atau pemanggil tiada kebenaran untuk mengaktifkannya. Tiada suntingan profil akan mengubah kedua-duanya. Periksa keadaan perkhidmatan dan dasar bas yang dibekalkan sebelum anda menyentuh konfigurasi.
Perintah di bawah memisahkan kedua-duanya. Yang pertama melaporkan sama ada bahagian belakang berjalan; yang kedua menunjukkan ralat bas terkini:
systemctl status openvpn3-service-client
journalctl -b -u openvpn3-service-client --no-pager | tail -20
Salah baca lain yang kerap ialah sesi yang muncul dan kemudian hilang serta-merta. Corak itu biasanya bermakna tetapan tempatan tapak tidak pernah digunakan, jadi terowong naik tanpa laluan dan perubahan penyelesai yang menjadikannya berguna. Baca urutan itu dan bukan baris terakhir: sama ada sesi dicipta, sama ada ia mencapai keadaan bersambung, dan sama ada ia bertahan ialah tiga fakta berasingan.
Apabila klien lama masih digunakan
Klien 2.x masih menerima fail kelayakan, dan cincin kunci boleh menjawab gesaannya tanpa rahsia itu pernah sampai ke cakera. Pembalut menyelesaikan entri, jadi fail itu menamakan carian dan bukan kata laluan. Susunan ini bergantung pada cincin kunci yang tidak dikunci, yang tidak dapat disediakan oleh kontena tanpa sesi log masuk atau unit yang bermula sebelum seseorang log masuk. Alat carian kemudian melaporkan koleksi yang tidak dapat ditulisnya, jadi ralat itu kelihatan seperti kesalahan kelayakan sedangkan ia kesalahan cincin kunci.
Sebelum membina apa-apa daripada itu, periksa sama ada tetapan keepalive dalam profil menghapuskan keperluan untuk memulakan semula sama sekali. Sesi yang kekal naik tidak pernah sampai ke gesaan yang anda cuba automasikan.