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:

  1. 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);
  2. Otentikasi multi-faktor:
    • Sertifikat pengguna dengan verifikasi lapangan dan otentikasi sekunder terhadap salah satunya;
    • Login (tidak dapat diubah, diambil dari sertifikat) dan kata sandi;
  3. 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:

  1. 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;
  2. 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).
  3. 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.
  4. 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)
  5. 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:

Penerapan konsep akses jarak jauh yang sangat aman

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).

Penerapan konsep akses jarak jauh yang sangat aman

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
  • OSX β€” Platform hash SHA-256UUID
  • Linux β€” Hash SHA-256 dari UUID partisi root.
  • apple iOS β€” Platform hash SHA-256UUID
  • Android – Lihat dokumen di link

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.

tunnel-group-map enable rules
!
crypto ca certificate map OU-Map 6
 subject-name attr ou eq securebank-ra
!
webvpn
 anyconnect profiles SECUREBANK disk0:/securebank.xml
 certificate-group-map OU-Map 6 SECURE-BANK-VPN
!

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 deskripsi PC 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.

Penerapan konsep akses jarak jauh yang sangat aman

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
  • tahap 4 β€” Otorisasi akhir ada di negara bagian:
    • Patuh;
    • Validasi UDID (dari sertifikat + pengikatan login),
    • Cisco DUO MFA;
    • Otentikasi dengan login;
    • Otentikasi sertifikat;

Penerapan konsep akses jarak jauh yang sangat aman

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:

Penerapan konsep akses jarak jauh yang sangat aman

Profil otorisasi yang digunakan pada tahap 1,2,3 adalah sebagai berikut:

Penerapan konsep akses jarak jauh yang sangat aman

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:

Penerapan konsep akses jarak jauh yang sangat aman

Mari kita perhatikan sertifikat yang dikeluarkan untuk pengguna dan bidangnya Inisial (I), yang digunakan sebagai login untuk otentikasi MFA sekunder di Cisco DUO:

Penerapan konsep akses jarak jauh yang sangat aman

Di sisi DUO Radius Proxy di log kita dapat melihat dengan jelas bagaimana permintaan otentikasi dibuat, menggunakan UDID sebagai nama pengguna:

Penerapan konsep akses jarak jauh yang sangat aman

Dari portal DUO kita melihat peristiwa otentikasi yang berhasil:

Penerapan konsep akses jarak jauh yang sangat aman

Dan di properti pengguna saya sudah mengaturnya ALIAS, yang saya gunakan untuk login, selanjutnya ini adalah UDID PC yang diizinkan untuk login:

Penerapan konsep akses jarak jauh yang sangat aman

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;

Tautan ke artikel seri Cisco VPN:

Sumber: www.habr.com

Tambah komentar