Akses VPN akun layanan: sertifikat atau login bersama
Bandingkan sertifikat mesin dengan kata sandi tersimpan untuk akses VPN tanpa pengawasan, dan letakkan batas izin yang sebenarnya pada kebijakan yang berjalan setelah login.
Dua desain mencakup hampir semua penyiapan VPN tanpa pengawasan: login manusia bersama yang disimpan dalam skrip, atau sertifikat mesin yang terikat ke host. Keduanya gagal di tempat berbeda, yang lebih penting daripada kecepatan penyiapan. Kata sandi tersimpan rusak saat pemiliknya mengubahnya atau pergi; sertifikat rusak saat kedaluwarsa atau saat host dibangun ulang tanpa kuncinya. Tiga kondisi menentukan biaya mana yang dapat Anda tanggung, dan tidak ada desain yang membatasi apa pun sampai kebijakan otorisasi melakukannya.
Mulai dari tugas, bukan dari akun
Tugas menentukan batas: tujuan mana, layanan mana, jam berapa, berapa lama sesi boleh berjalan. Rute terowongan hanyalah separuh dari batas itu. Gateway memutuskan apakah sesi diizinkan; sumber daya di belakangnya memutuskan apa yang dapat dilakukan sesi. Tulis daftarnya lebih dulu, dengan pemilik yang disebutkan, karena kedua desain identitas harus memenuhinya.
Pisahkan autentikasi dan otorisasi saat menulisnya. Autentikasi menjawab siapa yang terhubung; otorisasi menjawab apa yang dapat dicapai sesi sesudahnya. RADIUS membawa bagian kedua sebagai atribut seperti Filter-Id, Framed-IP-Address, Session-Timeout, dan Class, dan gateway melampirkannya begitu login berhasil. Desain yang menukar login dan membiarkan otorisasi tidak tersentuh belum membatasi apa pun.
Login manusia bersama: kata sandi menjadi batas
Menggunakan ulang akun manusia adalah jalur tercepat dan yang paling buruk menua. Kredensialnya adalah kata sandi, jadi berakhir di skrip, berkas lingkungan, dan konfigurasi penjadwal, dan setiap salinan perlu rotasi. Ketika pemiliknya mengubahnya pada hari Jumat, pekerjaan gagal pada eksekusi berikutnya dan tidak ada yang mengawasi.
MFA adalah tempat desain ini biasanya runtuh. Skrip tidak dapat menjawab permintaan push, sehingga akun dikecualikan dari kebijakan, dan itulah tepatnya akun yang akan dipilih penyerang. Pengecualian, pintasan lokasi tepercaya, dan pembebasan per akun berlipat, dan tidak satu pun terlihat oleh orang berikutnya yang membaca pengaturan penyewa.
Atribusi adalah biaya lainnya. Setiap sesi di log gateway membawa nama pengguna yang sama, sehingga sinkronisasi malam tidak dapat dibedakan dari pekerjaan orang yang menulisnya, dan mencabut pekerjaan berarti mencabut orang itu.
Sertifikat mesin: identitas yang terikat ke host
Sertifikat mengubah pertanyaan dari apa yang diketahui akun menjadi apa itu host. Dengan EAP-TLS klien menyajikan sertifikat dan membuktikan kepemilikan kunci privat yang cocok; server kebijakan memetakan subjek atau akun komputer ke grup dan menerapkan kebijakan untuk grup itu. Tanpa permintaan, tanpa rahasia bersama yang duduk di berkas teks.
Batas yang diciptakannya lebih sempit dari yang orang harapkan. Sertifikat mengautentikasi host, bukan tugas, dan siapa pun dengan hak root atau admin lokal dapat menggunakan kunci itu pada host tersebut. Simpan kunci di tempat platform melindunginya: tidak dapat diekspor di penyimpanan sertifikat Windows, didukung TPM di tempat profil mengizinkan, atau berkas 0600 milik root di Linux. Kompromi host adalah kompromi kredensial.
Kedaluwarsa adalah kegagalan yang berulang. Sertifikat yang kedaluwarsa pada hari Minggu menghentikan pekerjaan pada hari Minggu, dan gateway biasanya melaporkan kegagalan autentikasi umum alih-alih menyebutkan tanggalnya. Periksa tanggal dari host pekerjaan sebagai bagian dari runbook:
openssl x509 -in client.pem -noout -subject -issuer -dates
ipsec listcerts
Pencabutan memerlukan jalur yang diperiksa gateway. OpenVPN membaca CRL melalui opsi crl-verify, dan strongSwan bergantung pada CRL atau OCSP menurut cara profil koneksi dibangun. Jika keduanya tidak terhubung, menghapus host berarti menunggu sertifikat kedaluwarsa.
Tiga kondisi yang menentukan di antara keduanya
Lakukan perbandingan terhadap platform yang Anda miliki, bukan terhadap desain acuan.
Kondisi pertama: dapatkah gateway mengotorisasi identitas mesin? Jika hanya memetakan nama pengguna RADIUS ke pengguna direktori, sertifikat mengautentikasi host lalu macet pada otorisasi. Kondisi kedua: apakah tugas memerlukan akses sumber daya yang hanya dibawa akun pengguna, seperti share yang dipetakan atau lisensi per kursi? Maka identitas mesin tidak dapat menggantikan, dan jawaban jujurnya adalah akun pengguna khusus dengan kebijakan terbatas. Kondisi ketiga: siapa yang dapat merotasi kredensial tanpa orang dalam lingkaran? Pendaftaran otomatis membuat sertifikat murah untuk dipertahankan; kata sandi yang diketahui satu orang tidak.
| Constraint | Machine certificate | Dedicated user account with stored secret |
|---|---|---|
| Unattended login | Private key proof, no prompt | Only if the account is exempted from MFA |
| Resource expects a user identity | Works only when the resource accepts computer accounts | Matches the access a person would have |
| Rotation | Re-enrollment, often automated | Secret change plus redeploy of every copy |
| Revocation speed | Tied to CRL or OCSP refresh | Disable the account, immediate |
Baca tabel sebagai daftar biaya, bukan peringkat. Kolom rahasia tersimpan menang pada kecepatan pencabutan dan pada kompatibilitas dengan sumber daya yang hanya memahami akun pengguna; kolom sertifikat menang pada rotasi dan pada tidak melemahkan MFA agar skrip bekerja.
Letakkan batas dalam kebijakan, setelah autentikasi
Apa pun identitas yang Anda pilih, batas izin ada pada kebijakan yang berjalan setelah autentikasi. Di NPS, kebijakan jaringan dievaluasi berurutan dan kebijakan pertama yang cocok dengan setiap kondisi menerapkan pengaturannya, sehingga kebijakan luas yang ditempatkan di atas kebijakan sempit menentukan hasilnya, apa pun yang disajikan klien. Microsoft mendokumentasikan model kondisi dan pengaturan di ringkasan kebijakan NPS.
Beri pekerjaan grup atau kondisi kebijakan sendiri, berdasarkan sesuatu yang dibawa identitas mesin: templat sertifikat, pengenal stasiun pemanggil, atau alamat dari kumpulan khusus. Lalu batasi sesi dengan atribut: Filter-Id untuk peran yang dipetakan gateway Anda, Session-Timeout singkat agar pekerjaan yang macet mengautentikasi ulang alih-alih menahan sesi berhari-hari, dan Framed-IP-Address dari kumpulan yang Anda firewall di sisi lain. Otorisasi aplikasi tetap terpisah: terowongan ke server basis data bukan izin membaca tabel di dalamnya.
Verifikasi penolakan, lalu rencanakan penghapusan
Akses yang berfungsi tidak membuktikan apa pun tentang hak istimewa paling sedikit. Uji penolakannya: hubungkan dengan identitas pekerjaan dan coba capai tujuan di luar daftar, buka sesi kedua bersamaan jika gateway dimaksudkan hanya mengizinkan satu, dan ulangi login setelah kredensial dicabut.
Lalu konfirmasi sesi yang sama di dua tempat. Log gateway menunjukkan identitas yang diautentikasi; log server kebijakan menunjukkan kebijakan mana yang cocok dan atribut apa yang dikembalikannya. Di OpenVPN server mencatat common name sertifikat, dan ipsec statusall di strongSwan mencetak terowongan yang terbentuk dengan identitas yang digunakan. Jika kedua log tidak sepakat tentang identitas, kebijakan cocok dengan sesuatu selain yang Anda asumsikan.
Penghapusan termasuk dalam desain, bukan sprint pembersihan. Tuliskan semua yang harus dihapus (sertifikat atau akun, keanggotaan grup, kebijakan jaringan, entri kumpulan, aturan firewall pada target) dan jalankan sekali saat pekerjaan mudah dibangun ulang.
Jika Anda mulai hari ini, bekerjalah dengan urutan ini: tulis daftar sumber daya, pilih identitas dengan tiga kondisi, letakkan batas dalam kebijakan, dan latih satu penolakan sebelum pekerjaan berjalan.