NetworkManager dapat menyimpan kata sandi VPN agar koneksi naik tanpa ada yang mengetiknya, dan dapat menampilkan kembali nilai itu melalui editor atau melalui nmcli --show-secrets. Ada tiga model kepemilikan, dan perilaku tampilan hanyalah gejala dari model yang Anda pilih. Pilih modelnya lebih dulu, lalu setel flag yang cocok dengannya, alih-alih menyembunyikan kolom dengan placeholder yang akan membingungkan orang berikutnya.

Tiga model kepemilikan

Model pertama bertanya setiap kali. Tidak ada yang disimpan, rahasia hanya ada selama aktivasi, dan siapa pun yang memulai koneksi harus tahu kata sandinya. Ini pilihan yang paling tidak nyaman dan paling mudah dipertahankan.

Model kedua menyerahkan rahasia ke keyring milik pengguna. Agen membuka kunci saat sesi dimulai dan menyediakan nilai saat diminta, yang menjaganya tetap di luar file koneksi tetapi mengikat koneksi ke sesi pengguna itu. Dua syarat menyusul: agen harus berjalan, dan harus terbuka kuncinya.

Model ketiga menyimpan kredensial terlindungi untuk koneksi sistem. Model ini bertahan setelah reboot dan bekerja sebelum siapa pun masuk, dan sebagai gantinya nilai berada di disk yang dijaga oleh izin file, bukan oleh enkripsi.

Setiap model wajar dalam konteks yang tepat. Kesalahannya adalah mencampurnya, dan begitulah laptop berakhir dengan rahasia di dua tempat dan tanpa jawaban jelas mana yang berwenang. Catat model yang dipakai sebuah profil. Satu baris di runbook tim menyelamatkan orang berikutnya dari mengarang tempat pencarian keempat.

Baca keadaan saat ini sebelum mengubahnya

Lihat profil dan keadaan rahasia sebagai pengguna yang mengelola koneksi. Perintah kedua adalah yang memberi tahu apakah nilainya benar-benar bisa dibaca.

nmcli connection show "Office VPN"
nmcli --show-secrets connection show "Office VPN"
sudo stat -c '%U %a %n' /etc/NetworkManager/system-connections/*.nmconnection

File kunci di direktori itu biasanya milik root dengan mode 600. Itu menjauhkan pengguna biasa dan tidak menjauhkan root, yang penting ketika mesin yang sama dipakai bersama atau ketika cadangan berjalan sebagai root.

Izin file adalah batas, bukan enkripsi. Siapa pun yang dapat membaca file itu sebagai root memiliki kata sandi dalam teks polos. Itu pertukaran yang dapat diterima untuk server tanpa pengawasan dan buruk untuk stasiun kerja bersama. Menuliskannya sekali mencegah perdebatan panjang tentang apakah nilainya terlindungi.

Apa yang dilakukan setiap nilai flag

Rahasia VPN membawa properti flags, dan nilainya tidak intuitif hanya dari angkanya.

ValueMeaningPractical effect
0No special flagSecret is typically saved with the connection
1Agent-ownedA keyring or secret agent supplies it
2Not savedPrompted at each activation
4Not requiredConnection proceeds without asking

Perilaku efektif juga bergantung pada plugin dan pada apakah agen berjalan, jadi perlakukan tabel sebagai kontrak dan perilaku yang diamati sebagai hal yang Anda verifikasi. Nilai yang bekerja di satu desktop bisa berperilaku berbeda di server tanpa sesi. Di celah itulah sebagian besar tiket yang membingungkan berada.

Setel propertinya secara eksplisit alih-alih menghapus baris dan berharap. Flag yang tidak ada bukan kebijakan, dan pembaruan paket berikutnya dapat mengisinya dengan sesuatu yang tidak Anda maksudkan.

Cocokkan model dengan kapan koneksi dimulai

Jika koneksi hanya dimulai saat pengguna masuk, kepemilikan agen cocok dan menjauhkan rahasia dari file. Jika koneksi dimulai saat boot, sebelum ada sesi, agen tidak dapat membantu Anda.

Itulah seluruh keputusan untuk sebagian besar mesin. Ini juga menjelaskan salah satu kelas laporan membingungkan di mana koneksi bekerja secara interaktif dan gagal setelah reboot. Flag tidak pernah berubah; konteksnya yang berubah.

Untuk kasus tanpa pengawasan, jawaban praktisnya adalah file terbatas milik root atau sumber kredensial yang disetujui. Jauhkan dari profil koneksi jika profil itu pernah diekspor atau disalin ke mesin lain.

Jika nilainya sudah pernah terlihat, gantilah

Mengubah flag membiarkan kata sandinya sendiri tidak tersentuh. Nilai yang muncul di tangkapan layar, di riwayat shell, di bundel yang dikirim ke dukungan, atau di file yang bisa dibuka pengguna lain harus dianggap telah bocor.

Ubah di server, lalu perbaiki klien dan hentikan sesi apa pun yang terautentikasi dengan yang lama. Menghapus koneksi lokal tidak mencabut apa pun di sisi seberang, dan itulah bagian yang sering terlewat.

Lalu berhenti meletakkan kata sandi di baris perintah. Kata sandi itu masuk ke riwayat shell dan bisa muncul di daftar proses; gunakan prompt interaktif atau agen sebagai gantinya.

Verifikasi dengan menyambung ulang

Ulangi perintah yang menampilkan rahasia dan pastikan kolomnya tidak lagi dicetak. Lalu putuskan dan sambungkan ulang, dan reboot jika koneksi dimulai otomatis, karena kegagalan yang menarik hanya muncul ketika konteks sesi berubah.

Jika rahasia masih muncul, profil lain atau agen lain yang menyediakannya. Periksa koneksi aktif dan keyring alih-alih menghapus file sampai gejalanya berpindah.

Artikel terkait