Di Mana Linux Sebaiknya Menyimpan Kata Sandi VPN Anda? Bukan di Profil
Flag rahasia NetworkManager menentukan apakah profil, agen keyring, atau tidak ada yang menyimpan kata sandi. Jawabannya bergantung pada kapan koneksi dimulai.
Kata sandi VPN harus hidup di suatu tempat: di profil koneksi, di keyring yang dibuka desktop, atau tidak di mana pun. NetworkManager menyebut pilihan itu flag rahasia, dan memilih yang salah adalah alasan sebuah koneksi berfungsi setelah login dan gagal sebagai layanan. Flag itu satu baris konfigurasi, dan ia menentukan hasil mana dari ketiganya yang Anda dapat.
Tiga flag mencakup hampir semua kasus, dan keputusannya tentang kapan koneksi dimulai.
Tiga flag rahasia, tiga perilaku
Flag 0 berarti rahasia disimpan bersama koneksi, di penyimpanan mana pun yang memegang profil. Flag 1 membuatnya milik agen: rahasia datang dari agen rahasia seperti keyring desktop, dan NetworkManager memintanya saat aktivasi. Flag 2 berarti tidak disimpan, jadi rahasia tidak pernah ditulis dan harus diberikan setiap kali. Flag 4 menandai rahasia sebagai tidak diperlukan, untuk koneksi yang benar-benar tidak membutuhkannya.
| Flag | Where it lives | Works unattended |
|---|---|---|
| 0 saved | Connection profile | Yes, if the store is readable |
| 1 agent-owned | Secret agent or keyring | Only if that agent is available |
| 2 not-saved | Nowhere | No |
Setel flag per rahasia, bukan per koneksi. Satu koneksi bisa memiliki kata sandi milik agen dan frasa sandi kunci privat yang disimpan.
Putuskan berdasarkan kapan koneksi dimulai
Jika pengguna yang sudah login memulai koneksi, milik agen adalah default yang wajar: keyring dibuka oleh login dan rahasia tidak pernah berada di file. Jika koneksi harus muncul sebelum siapa pun login, milik agen adalah pilihan yang salah, karena tidak ada keyring sesi untuk dibuka.
Itulah seluruh keputusannya. Sisanya adalah variannya.
Untuk layanan sebelum login, penyimpanan berskala sistem atau file kunci yang dilindungi adalah pola yang didukung, dan izin file menjadi perlindungannya. Jangan selesaikan masalah dengan menempelkan kata sandi ke skrip shell yang berjalan saat boot.
Apa yang diberikan keyring dan apa yang tidak
Keyring menjaga rahasia di luar profil koneksi dan mengikatnya ke sesi pengguna. Ia tidak membuat rahasia tersedia bagi layanan tanpa sesi, dan tidak mengenkripsi apa pun di jaringan. Itu sifat terpisah yang sering dicampur orang. Yang benar-benar dibelinya adalah radius kerusakan yang lebih kecil ketika file profil bocor.
Kunci privat yang dirujuk profil memerlukan izinnya sendiri, terlepas dari di mana kata sandi hidup.
Diagnosis tanpa menumpahkan rahasia
Nama koneksi, UUID, dan flag biasanya cukup untuk menjelaskan kegagalan. nmcli connection show mencantumkan profil, dan flag rahasia memberi tahu dari mana kata sandi seharusnya datang.
Hindari --show-secrets di tiket dan obrolan. Begitu ditempel, itu adalah kredensial dalam transkrip.
Penyimpanan bukan pencabutan
Menghapus rahasia dari satu keyring tidak membatalkan kredensial yang sudah diterima operator jarak jauh. Pencabutan akun adalah tindakan di sisi server, dan penyimpanan lokal adalah urusan terpisah dengan pemilik terpisah.
Putuskan keduanya sebelum insiden, bukan saat insiden. Koneksi pengguna interaktif dan layanan sebelum login memerlukan jawaban berbeda, dan skrip shell bersama bukan keduanya. Dokumentasi NetworkManager tentang flag rahasia mencantumkan nilainya secara lengkap.