Penerapan konsep akses jarak jauh yang sangat aman
Melanjutkan rangkaian artikel dengan topik organisasi VPN Akses Jarak Jauh akses Saya tidak bisa tidak membagikan pengalaman penerapan saya yang menarik konfigurasi VPN yang sangat aman. Tugas yang tidak sepele diberikan oleh satu pelanggan (ada penemu di desa-desa Rusia), tetapi Tantangan tersebut diterima dan dilaksanakan secara kreatif. Hasilnya adalah sebuah konsep yang menarik dengan ciri-ciri sebagai berikut:
Beberapa faktor perlindungan terhadap penggantian perangkat terminal (dengan pengikatan ketat kepada pengguna);
Menilai kepatuhan PC pengguna dengan UDID yang ditetapkan dari PC yang diizinkan dalam database otentikasi;
Dengan MFA menggunakan UDID PC dari sertifikat untuk otentikasi sekunder melalui Cisco DUO (Anda dapat melampirkan yang kompatibel dengan SAML/Radius);
Otentikasi multi-faktor:
Sertifikat pengguna dengan verifikasi lapangan dan otentikasi sekunder terhadap salah satunya;
Login (tidak dapat diubah, diambil dari sertifikat) dan kata sandi;
Memperkirakan keadaan host penghubung (Postur)
Komponen solusi yang digunakan:
Cisco ASA (Gerbang VPN);
Cisco ISE (Otentikasi / Otorisasi / Akuntansi, Evaluasi Negara, CA);
Cisco DUO (Otentikasi Multi-Faktor) (Anda dapat melampirkan yang kompatibel dengan SAML/Radius);
Cisco AnyConnect (Agen serbaguna untuk workstation dan OS seluler);
Mari kita mulai dengan kebutuhan pelanggan:
Pengguna harus, melalui otentikasi Login/Kata Sandi, dapat mengunduh klien AnyConnect dari gateway VPN; semua modul AnyConnect yang diperlukan harus diinstal secara otomatis sesuai dengan kebijakan pengguna;
Pengguna seharusnya dapat menerbitkan sertifikat secara otomatis (untuk salah satu skenario, skenario utamanya adalah penerbitan manual dan pengunggahan di PC), namun saya menerapkan masalah otomatis untuk demonstrasi (tidak ada kata terlambat untuk menghapusnya).
Otentikasi dasar harus dilakukan dalam beberapa tahap, pertama ada otentikasi sertifikat dengan analisis bidang yang diperlukan dan nilainya, kemudian login/kata sandi, hanya saja kali ini nama pengguna yang ditentukan dalam bidang sertifikat harus dimasukkan ke dalam jendela login Nama Subjek (CN) tanpa kemampuan untuk mengedit.
Anda perlu memastikan bahwa perangkat yang Anda gunakan untuk masuk adalah laptop perusahaan yang diberikan kepada pengguna untuk akses jarak jauh, dan bukan perangkat lain. (Beberapa opsi telah dibuat untuk memenuhi persyaratan ini)
Keadaan perangkat penghubung (pada tahap ini PC) harus dinilai dengan memeriksa seluruh tabel kebutuhan pelanggan (meringkas):
File dan propertinya;
Entri registri;
Patch OS dari daftar yang disediakan (kemudian integrasi SCCM);
Ketersediaan Anti-Virus dari produsen tertentu dan relevansi tanda tangan;
Kegiatan jasa tertentu;
Ketersediaan program tertentu yang diinstal;
Untuk memulainya, saya sarankan Anda melihat video demonstrasi implementasi yang dihasilkan Youtube (5 menit).
Sekarang saya mengusulkan untuk mempertimbangkan detail implementasi yang tidak tercakup dalam klip video.
Mari siapkan profil AnyConnect:
Saya sebelumnya memberikan contoh membuat profil (dalam hal item menu di ASDM) di artikel saya tentang pengaturan Kluster Penyeimbangan Beban VPN. Sekarang saya ingin mencatat secara terpisah opsi yang kita perlukan:
Di profil, kami akan menunjukkan gateway VPN dan nama profil untuk menghubungkan ke klien akhir:
Mari kita konfigurasikan penerbitan sertifikat otomatis dari sisi profil, yang menunjukkan, khususnya, parameter sertifikat dan, secara khas, perhatikan bidangnya Inisial (I), di mana nilai tertentu dimasukkan secara manual UDID mesin uji (Pengidentifikasi perangkat unik yang dihasilkan oleh klien Cisco AnyConnect).
Di sini saya ingin membuat penyimpangan liris, karena artikel ini menjelaskan konsep tersebut; untuk tujuan demonstrasi, UDID untuk menerbitkan sertifikat dimasukkan di bidang Inisial pada profil AnyConnect. Tentu saja, dalam kehidupan nyata, jika Anda melakukan ini, maka semua klien akan menerima sertifikat dengan UDID yang sama di bidang ini dan tidak ada yang berfungsi untuk mereka, karena mereka memerlukan UDID dari PC spesifik mereka. Sayangnya, AnyConnect belum menerapkan substitusi bidang UDID ke dalam profil permintaan sertifikat melalui variabel lingkungan, seperti halnya, misalnya, dengan variabel %PENGGUNA%.
Perlu dicatat bahwa pelanggan (dalam skenario ini) pada awalnya berencana untuk secara mandiri menerbitkan sertifikat dengan UDID tertentu dalam mode manual ke PC yang Dilindungi tersebut, yang tidak menjadi masalah baginya. Namun, bagi sebagian besar dari kita, kita menginginkan otomatisasi (bagi saya itu benar =)).
Dan inilah yang bisa saya tawarkan dalam hal otomatisasi. Jika AnyConnect belum dapat menerbitkan sertifikat secara otomatis dengan mengganti UDID secara dinamis, maka ada cara lain yang memerlukan sedikit pemikiran kreatif dan tangan terampil - saya akan memberi tahu Anda konsepnya. Pertama, mari kita lihat bagaimana UDID dibuat pada sistem operasi berbeda oleh agen AnyConnect:
Windows β Hash SHA-256 dari kombinasi kunci registri DigitalProductID dan Mesin SID
Oleh karena itu, kami membuat skrip untuk OS Windows perusahaan kami, dengan skrip ini kami menghitung UDID secara lokal menggunakan input yang diketahui dan membentuk permintaan untuk menerbitkan sertifikat dengan memasukkan UDID ini di bidang yang diperlukan, omong-omong, Anda juga dapat menggunakan mesin sertifikat yang dikeluarkan oleh AD (dengan menambahkan otentikasi ganda menggunakan sertifikat ke skema Sertifikat Berganda).
Mari kita siapkan setting pada sisi Cisco ASA :
Mari kita buat TrustPoint untuk server ISE CA, yang akan menerbitkan sertifikat ke klien. Saya tidak akan mempertimbangkan prosedur impor Rantai Kunci; contohnya dijelaskan di artikel pengaturan saya Kluster Penyeimbangan Beban VPN.
crypto ca trustpoint ISE-CA
enrollment terminal
crl configure
Kami mengonfigurasi distribusi berdasarkan Tunnel-Group berdasarkan aturan sesuai dengan bidang dalam sertifikat yang digunakan untuk otentikasi. Profil AnyConnect yang kami buat pada tahap sebelumnya juga dikonfigurasi di sini. Harap dicatat bahwa saya menggunakan nilainya SECUREBANK-RA, untuk mentransfer pengguna dengan sertifikat yang diterbitkan ke grup terowongan AMAN-BANK-VPN, harap perhatikan bahwa saya memiliki bidang ini di kolom permintaan sertifikat profil AnyConnect.
Menyiapkan server otentikasi. Dalam kasus saya, ini adalah ISE untuk otentikasi tahap pertama dan DUO (Radius Proxy) sebagai MFA.
! CISCO ISE
aaa-server ISE protocol radius
authorize-only
interim-accounting-update periodic 24
dynamic-authorization
aaa-server ISE (inside) host 192.168.99.134
key *****
!
! DUO RADIUS PROXY
aaa-server DUO protocol radius
aaa-server DUO (inside) host 192.168.99.136
timeout 60
key *****
authentication-port 1812
accounting-port 1813
no mschapv2-capable
!
Kami membuat kebijakan grup dan grup terowongan serta komponen tambahannya:
Kelompok terowongan GrupWEBVPN Default akan digunakan terutama untuk mengunduh klien VPN AnyConnect dan menerbitkan sertifikat pengguna menggunakan fungsi SCEP-Proxy ASA; untuk ini kami memiliki opsi terkait yang diaktifkan baik pada grup terowongan itu sendiri maupun pada kebijakan grup terkait Unduh AC, dan pada profil AnyConnect yang dimuat (bidang untuk menerbitkan sertifikat, dll.). Juga dalam kebijakan grup ini kami menunjukkan perlunya mengunduh Modul Postur ISE.
Kelompok terowongan AMAN-BANK-VPN akan secara otomatis digunakan oleh klien ketika mengautentikasi dengan sertifikat yang diterbitkan pada tahap sebelumnya, karena, sesuai dengan Peta Sertifikat, koneksi akan jatuh secara khusus pada grup terowongan ini. Saya akan memberi tahu Anda tentang opsi menarik di sini:
DUO grup server-otentikasi-sekunder # Atur otentikasi sekunder pada server DUO (Radius Proxy)
nama pengguna-dari-sertifikatCN # Untuk otentikasi utama, kami menggunakan bidang CN pada sertifikat untuk mewarisi login pengguna
nama pengguna-sekunder-dari-sertifikat I # Untuk otentikasi sekunder pada server DUO, kami menggunakan nama pengguna yang diekstraksi dan bidang Inisial (I) pada sertifikat.
klien pra-isi nama pengguna # jadikan nama pengguna sudah diisi sebelumnya di jendela otentikasi tanpa kemampuan untuk mengubahnya
klien-pengisian-nama-pengguna-sekunder menyembunyikan dorongan penggunaan-kata sandi-umum # Kami menyembunyikan jendela input login/kata sandi untuk otentikasi sekunder DUO dan menggunakan metode notifikasi (sms/push/telepon) - dok untuk meminta otentikasi alih-alih bidang kata sandi di sini
!
access-list posture-redirect extended permit tcp any host 72.163.1.80
access-list posture-redirect extended deny ip any any
!
access-list VPN-Filter extended permit ip any any
!
ip local pool vpn-pool 192.168.100.33-192.168.100.63 mask 255.255.255.224
!
group-policy SECURE-BANK-VPN internal
group-policy SECURE-BANK-VPN attributes
dns-server value 192.168.99.155 192.168.99.130
vpn-filter value VPN-Filter
vpn-tunnel-protocol ssl-client
split-tunnel-policy tunnelall
default-domain value ashes.cc
address-pools value vpn-pool
webvpn
anyconnect ssl dtls enable
anyconnect mtu 1300
anyconnect keep-installer installed
anyconnect ssl keepalive 20
anyconnect ssl rekey time none
anyconnect ssl rekey method ssl
anyconnect dpd-interval client 30
anyconnect dpd-interval gateway 30
anyconnect ssl compression lzs
anyconnect dtls compression lzs
anyconnect modules value iseposture
anyconnect profiles value SECUREBANK type user
!
group-policy AC-DOWNLOAD internal
group-policy AC-DOWNLOAD attributes
dns-server value 192.168.99.155 192.168.99.130
vpn-filter value VPN-Filter
vpn-tunnel-protocol ssl-client
split-tunnel-policy tunnelall
default-domain value ashes.cc
address-pools value vpn-pool
scep-forwarding-url value http://ise.ashes.cc:9090/auth/caservice/pkiclient.exe
webvpn
anyconnect ssl dtls enable
anyconnect mtu 1300
anyconnect keep-installer installed
anyconnect ssl keepalive 20
anyconnect ssl rekey time none
anyconnect ssl rekey method ssl
anyconnect dpd-interval client 30
anyconnect dpd-interval gateway 30
anyconnect ssl compression lzs
anyconnect dtls compression lzs
anyconnect modules value iseposture
anyconnect profiles value SECUREBANK type user
!
tunnel-group DefaultWEBVPNGroup general-attributes
address-pool vpn-pool
authentication-server-group ISE
accounting-server-group ISE
default-group-policy AC-DOWNLOAD
scep-enrollment enable
tunnel-group DefaultWEBVPNGroup webvpn-attributes
authentication aaa certificate
!
tunnel-group SECURE-BANK-VPN type remote-access
tunnel-group SECURE-BANK-VPN general-attributes
address-pool vpn-pool
authentication-server-group ISE
secondary-authentication-server-group DUO
accounting-server-group ISE
default-group-policy SECURE-BANK-VPN
username-from-certificate CN
secondary-username-from-certificate I
tunnel-group SECURE-BANK-VPN webvpn-attributes
authentication aaa certificate
pre-fill-username client
secondary-pre-fill-username client hide use-common-password push
group-alias SECURE-BANK-VPN enable
dns-group ASHES-DNS
!
Selanjutnya kita beralih ke ISE:
Kami mengkonfigurasi pengguna lokal (Anda dapat menggunakan AD/LDAP/ODBC, dll.), untuk kesederhanaan, saya membuat pengguna lokal di ISE sendiri dan menetapkannya di bidang deskripsiPC UDID dari mana dia diizinkan masuk melalui VPN. Jika saya menggunakan otentikasi lokal di ISE, saya akan dibatasi hanya pada satu perangkat, karena tidak banyak bidang, tetapi dalam database otentikasi pihak ketiga saya tidak akan memiliki batasan seperti itu.
Mari kita lihat kebijakan otorisasi, yang dibagi menjadi empat tahap koneksi:
tahap 1 β Kebijakan untuk mengunduh agen AnyConnect dan menerbitkan sertifikat
tahap 2 β Kebijakan otentikasi utama Login (dari sertifikat)/Kata Sandi + Sertifikat dengan validasi UDID
tahap 3 β Otentikasi sekunder melalui Cisco DUO (MFA) menggunakan UDID sebagai nama pengguna + penilaian Negara
Mari kita lihat kondisi yang menarik UUID_VALIDATED, sepertinya pengguna yang mengautentikasi sebenarnya berasal dari PC dengan UDID yang diizinkan yang terkait dengan bidang tersebut Deskripsi Produk akun, kondisinya seperti ini:
Profil otorisasi yang digunakan pada tahap 1,2,3 adalah sebagai berikut:
Anda dapat memeriksa dengan tepat bagaimana UDID dari klien AnyConnect sampai kepada kami dengan melihat detail sesi klien di ISE. Secara detail kita akan melihat AnyConnect itu melalui mekanismenya ASAM mengirimkan tidak hanya informasi tentang platform, tetapi juga UDID perangkat sebagai Cisco-AV-PAIR:
Mari kita perhatikan sertifikat yang dikeluarkan untuk pengguna dan bidangnya Inisial (I), yang digunakan sebagai login untuk otentikasi MFA sekunder di Cisco DUO:
Di sisi DUO Radius Proxy di log kita dapat melihat dengan jelas bagaimana permintaan otentikasi dibuat, menggunakan UDID sebagai nama pengguna:
Dari portal DUO kita melihat peristiwa otentikasi yang berhasil:
Dan di properti pengguna saya sudah mengaturnya ALIAS, yang saya gunakan untuk login, selanjutnya ini adalah UDID PC yang diizinkan untuk login:
Hasilnya, kami mendapatkan:
Otentikasi pengguna dan perangkat multi-faktor;
Perlindungan terhadap spoofing perangkat pengguna;
Menilai kondisi perangkat;
Potensi peningkatan kontrol dengan sertifikat mesin domain, dll.;
Perlindungan tempat kerja jarak jauh yang komprehensif dengan modul keamanan yang diterapkan secara otomatis;