Dua reka bentuk meliputi hampir setiap persediaan VPN tanpa pengawasan: log masuk manusia dikongsi yang disimpan dalam skrip, atau sijil mesin yang terikat pada hos. Kedua-duanya gagal di tempat berbeza, yang lebih penting daripada kelajuan persediaan. Kata laluan tersimpan rosak apabila pemiliknya menukarnya atau pergi; sijil rosak apabila tamat tempoh atau apabila hos dibina semula tanpa kuncinya. Tiga syarat menentukan kos mana yang boleh anda tanggung, dan tiada reka bentuk mengehadkan apa-apa sehingga dasar kebenaran melakukannya.

Mulakan dengan tugas, bukan akaun

Tugas menentukan sempadan: destinasi mana, perkhidmatan mana, jam berapa, berapa lama sesi boleh berjalan. Laluan terowong hanyalah separuh daripada sempadan itu. Get laluan memutuskan sama ada sesi dibenarkan; sumber di belakangnya memutuskan apa yang boleh dilakukan sesi. Tulis senarai itu dahulu, dengan pemilik yang dinamakan, kerana kedua-dua reka bentuk identiti mesti memenuhinya.

Asingkan pengesahan dan kebenaran semasa anda menulisnya. Pengesahan menjawab siapa yang berhubung; kebenaran menjawab apa yang boleh dicapai sesi selepas itu. RADIUS membawa bahagian kedua sebagai atribut seperti Filter-Id, Framed-IP-Address, Session-Timeout dan Class, dan get laluan melampirkannya sebaik log masuk berjaya. Reka bentuk yang menukar log masuk dan membiarkan kebenaran tidak disentuh belum mengehadkan apa-apa.

Log masuk manusia dikongsi: kata laluan menjadi sempadan

Menggunakan semula akaun manusia ialah jalan terpantas dan yang paling buruk menua. Kelayakan ialah kata laluan, jadi ia berakhir dalam skrip, fail persekitaran dan konfigurasi penjadual, dan setiap salinan memerlukan putaran. Apabila pemiliknya menukarnya pada hari Jumaat, tugas gagal pada larian seterusnya dan tiada siapa memerhati.

MFA ialah tempat reka bentuk ini biasanya runtuh. Skrip tidak boleh menjawab permintaan push, jadi akaun dikecualikan daripada dasar, dan itulah tepat akaun yang akan dipilih penyerang. Pengecualian, pintasan lokasi dipercayai dan pengecualian setiap akaun berganda, dan tiada satu pun kelihatan kepada orang seterusnya yang membaca tetapan penyewa.

Atribusi ialah kos yang lain. Setiap sesi dalam log get laluan membawa nama pengguna yang sama, jadi penyegerakan malam tidak dapat dibezakan daripada kerja orang yang menulisnya, dan membatalkan tugas bermakna membatalkan orang itu.

Sijil mesin: identiti terikat pada hos

Sijil menukar soalan daripada apa yang diketahui akaun kepada apa hos itu. Dengan EAP-TLS klien mengemukakan sijil dan membuktikan pemilikan kunci peribadi yang sepadan; pelayan dasar memetakan subjek atau akaun komputer kepada kumpulan dan menggunakan dasar untuk kumpulan itu. Tiada gesaan, tiada rahsia dikongsi duduk dalam fail teks.

Sempadan yang diciptanya lebih sempit daripada jangkaan orang. Sijil mengesahkan hos, bukan tugas, dan sesiapa dengan hak root atau pentadbir tempatan boleh menggunakan kunci itu pada hos itu. Simpan kunci di tempat platform melindunginya: tidak boleh dieksport dalam stor sijil Windows, disokong TPM di tempat profil membenarkan, atau fail 0600 milik root pada Linux. Kompromi hos ialah kompromi kelayakan.

Tamat tempoh ialah kegagalan berulang. Sijil yang tamat tempoh pada hari Ahad menghentikan tugas pada hari Ahad, dan get laluan biasanya melaporkan kegagalan pengesahan umum dan bukannya menamakan tarikh. Semak tarikh dari hos tugas sebagai sebahagian daripada runbook:

openssl x509 -in client.pem -noout -subject -issuer -dates
ipsec listcerts

Pembatalan memerlukan laluan yang diperiksa oleh get laluan. OpenVPN membaca CRL melalui pilihan crl-verify, dan strongSwan bergantung pada CRL atau OCSP mengikut cara profil sambungan dibina. Jika kedua-duanya tidak disambungkan, membuang hos bermakna menunggu sijil tamat tempoh.

Tiga syarat yang menentukan antara keduanya

Buat perbandingan dengan platform yang anda miliki, bukan dengan reka bentuk rujukan.

Syarat pertama: bolehkah get laluan membenarkan identiti mesin? Jika ia hanya memetakan nama pengguna RADIUS kepada pengguna direktori, sijil mengesahkan hos dan kemudian tersekat pada kebenaran. Syarat kedua: adakah tugas memerlukan akses sumber yang hanya dibawa akaun pengguna, seperti kongsi dipetakan atau lesen setiap tempat duduk? Maka identiti mesin tidak boleh menggantikan, dan jawapan jujur ialah akaun pengguna khusus dengan dasar terhad. Syarat ketiga: siapa boleh memutar kelayakan tanpa orang dalam gelung? Pendaftaran automatik menjadikan sijil murah disimpan; kata laluan yang diketahui seorang tidak.

ConstraintMachine certificateDedicated user account with stored secret
Unattended loginPrivate key proof, no promptOnly if the account is exempted from MFA
Resource expects a user identityWorks only when the resource accepts computer accountsMatches the access a person would have
RotationRe-enrollment, often automatedSecret change plus redeploy of every copy
Revocation speedTied to CRL or OCSP refreshDisable the account, immediate

Baca jadual sebagai senarai kos, bukan kedudukan. Lajur rahsia tersimpan menang pada kelajuan pembatalan dan pada keserasian dengan sumber yang hanya memahami akaun pengguna; lajur sijil menang pada putaran dan pada tidak melemahkan MFA untuk membuat skrip berfungsi.

Letakkan had dalam dasar, selepas pengesahan

Apa jua identiti yang anda pilih, had kebenaran tergolong dalam dasar yang berjalan selepas pengesahan. Dalam NPS, dasar rangkaian dinilai mengikut urutan dan dasar pertama yang sepadan dengan setiap syarat menggunakan tetapannya, jadi dasar luas yang diletakkan di atas dasar sempit menentukan hasilnya, apa jua yang dikemukakan klien. Microsoft mendokumentasikan model syarat dan tetapan dalam gambaran keseluruhan dasar NPS.

Beri tugas kumpulan atau syarat dasar sendiri, berdasarkan sesuatu yang dibawa identiti mesin: templat sijil, pengecam stesen pemanggil, atau alamat daripada kumpulan khusus. Kemudian hadkan sesi dengan atribut: Filter-Id untuk peranan yang dipetakan oleh get laluan anda, Session-Timeout pendek supaya tugas tersekat mengesahkan semula dan bukannya memegang sesi berhari-hari, dan Framed-IP-Address daripada kumpulan yang anda tembok api di sebelah sana. Kebenaran aplikasi kekal berasingan: terowong ke pelayan pangkalan data bukan kebenaran membaca jadual di dalamnya.

Sahkan penolakan, kemudian rancang pembuangan

Akses yang berfungsi tidak membuktikan apa-apa tentang keistimewaan paling sedikit. Uji penolakannya: sambung dengan identiti tugas dan cuba capai destinasi di luar senarai, buka sesi serentak kedua jika get laluan sepatutnya membenarkan satu sahaja, dan ulang log masuk selepas kelayakan dibatalkan.

Kemudian sahkan sesi yang sama di dua tempat. Log get laluan menunjukkan identiti yang disahkan; log pelayan dasar menunjukkan dasar mana yang sepadan dan atribut apa yang dikembalikannya. Pada OpenVPN pelayan merekod nama biasa sijil, dan ipsec statusall pada strongSwan mencetak terowong yang dibina dengan identiti yang digunakan. Jika dua log tidak bersetuju tentang identiti, dasar itu sepadan dengan sesuatu selain daripada yang anda andaikan.

Pembuangan ialah sebahagian daripada reka bentuk, bukan sprint pembersihan. Tuliskan semua yang perlu dipadam (sijil atau akaun, keahlian kumpulan, dasar rangkaian, entri kumpulan, peraturan tembok api pada sasaran) dan jalankannya sekali semasa tugas mudah dibina semula.

Jika anda bermula hari ini, bekerja dalam susunan ini: tulis senarai sumber, pilih identiti dengan tiga syarat, letakkan had dalam dasar, dan latih satu penolakan sebelum tugas berjalan.

Artikel berkaitan