Mengapa perkhidmatan VPN yang dimulakan semasa boot tidak dapat membaca cincin kunci anda
VPN semasa boot tiada ejen rahsia yang terbuka untuk dipinjam. Baca bendera rahsia sambungan sebelum menetapkan semula kata laluan yang tidak pernah ditolak oleh pelayan.
Sambungan yang berfungsi selepas log masuk dan gagal sebelum itu biasanya bermaksud percubaan semasa boot tidak dapat memperoleh rahsia, bukan pelayan menolak satu. Kelayakan itu wujud; konteks yang memintanya tidak. Perbezaan tunggal itu menjimatkan penetapan semula kata laluan yang tidak perlu.
Ikuti permintaan itu: sesuatu memulakan sambungan sebelum sesi desktop wujud, dan stor rahsia yang biasanya menjawab belum dibuka. Kedua-dua konteks tidak bersetuju tentang siapa yang memiliki rahsia itu, dan profil merekodkan yang mana antara keduanya dijangka membekalkannya.
Apa yang sebenarnya diminta oleh laluan boot
Semasa boot, NetworkManager bermula sebagai perkhidmatan sistem tanpa sesi pengguna, tanpa D-Bus sesi dan tanpa cincin kunci yang dibuka. Profil sambungan masih boleh dinaikkan, tetapi hanya dengan rahsia yang boleh dicapai oleh perkhidmatan itu sendiri. Apa sahaja yang dimiliki oleh ejen rahsia menunggu sehingga seseorang log masuk dan ejen itu muncul. Perkhidmatan melakukan tepat apa yang dikatakan konfigurasinya; profil itulah yang perlu diubah.
Kegagalan itu tertulis di dalam sambungan, bukan tersembunyi dalam cincin kunci.
Membaca bendera rahsia pada sambungan
Tanya sambungan apa yang dijangka, bukan apa yang diingati desktop. Lajur bendera menjawab soalan itu secara langsung, dan ia bertahan melalui but semula dalam fail profil pada cakera.
Mulakan dengan senarai profil, kemudian sahkan sambungan mana yang ditetapkan untuk naik sendiri. Kemudian buang satu sambungan dan baca bendera kata laluannya:
nmcli -f NAME,UUID,TYPE,AUTOCONNECT connection show nmcli connection show "Work VPN" | grep -i -E "password|secret|key" journalctl -b -u NetworkManager --grep "secret"
Perintah pertama mengesahkan profil mana yang wujud dan sama ada satu ditetapkan untuk sambung automatik, iaitu cara percubaan tanpa pengawasan bermula. Yang kedua mendedahkan nilai bendera, dan yang ketiga menunjukkan perkhidmatan merungut bahawa tiada ejen menjawab untuk rahsia tertentu. Baris log yang menamakan rahsia sebagai milik ejen ialah keseluruhan diagnosis dalam satu ayat.
| Flag value | Where the secret lives | Behaviour before login |
|---|---|---|
| 0 | Stored in the connection profile | Available to the system service |
| 1 | Owned by a secret agent | Blocks until the agent is unlocked |
| 2 | Never stored | Prompts on every activation |
| 4 | Not required | Never requested at all |
Mengapa memindahkan sambungan ke skop sistem mengubah jawapannya
Sambungan milik pengguna diaktifkan di bawah ejen pengguna itu, sebab itulah ia berfungsi dengan sempurna sebaik desktop naik. Memindahkannya ke skop sistem mengeluarkan ejen daripada laluan, jadi profil yang sama berkelakuan berbeza tanpa satu baris konfigurasi VPN pun berubah.
Pemindahan itu ialah reka bentuk yang sah, dan ia membawa syarat: rahsia itu mesti boleh dicapai oleh perkhidmatan sistem. Menyimpannya dalam profil, membekalkannya melalui kelayakan skop sistem, atau menerima gesaan interaktif pada masa yang betul semuanya jawapan yang sah. Membiarkan bendera 1 dan berharap bukan.
Kunci peribadi dengan frasa laluannya sendiri menambah lapisan kedua. Malah kata laluan akaun yang disimpan tidak akan membuka kunci yang mahukan frasa laluan, jadi sahkan rahsia mana yang sebenarnya diminta oleh peringkat yang gagal sebelum mengubah apa-apa.
Apa yang tidak patut dilakukan, dan apa yang patut dilakukan
Menjadikan setiap fail kelayakan boleh dibaca oleh semua orang, atau mematikan pengesahan supaya tiada gesaan diperlukan, menukar kesulitan semasa mula dengan pendedahan kekal. Kedua-duanya juga menyembunyikan kebergantungan dan bukannya menyelesaikannya, dan kemas kini imej seterusnya mengembalikan kegagalan yang sama.
Gunakan mekanisme yang didokumenkan oleh pengedaran anda untuk pengaktifan tanpa pengawasan pada peringkat itu, kemudian sahkan bendera profil sepadan dengannya. Semak hasilnya daripada boot bersih, bukan daripada shell yang sudah mempunyai ejen. Catat pemilik sambungan, sumber rahsia dan peringkat yang mesti berfungsi, supaya perubahan autostart kemudian tidak boleh mendiamkan diri mengembalikan kebergantungan pada seseorang membuka desktop dahulu. Dokumentasi ialah perbezaan antara perkhidmatan yang telah dibaiki dan yang rosak semula pada suku berikutnya.
Uji daripada boot bersih yang terkawal, bukan daripada percubaan semula manual selepas log masuk. Percubaan semula berjaya atas sebab yang sama dengan kegagalan percubaan semasa boot, dan itulah tepatnya bukti yang dimusnahkan oleh ujian pantas.