Pelaksanaan konsep akses jauh yang sangat selamat

Meneruskan siri artikel mengenai topik organisasi VPN Akses Jauh akses Saya tidak dapat membantu tetapi berkongsi pengalaman penggunaan menarik saya konfigurasi VPN yang sangat selamat. Tugas yang tidak remeh telah disampaikan oleh seorang pelanggan (terdapat pencipta di kampung Rusia), tetapi Cabaran itu diterima dan dilaksanakan secara kreatif. Hasilnya adalah konsep yang menarik dengan ciri-ciri berikut:

  1. Beberapa faktor perlindungan terhadap penggantian peranti terminal (dengan pengikatan ketat kepada pengguna);
    • Menilai pematuhan PC pengguna dengan UDID yang ditetapkan bagi PC yang dibenarkan dalam pangkalan data pengesahan;
    • Dengan MFA menggunakan PC UDID daripada sijil untuk pengesahan sekunder melalui Cisco DUO (Anda boleh melampirkan mana-mana SAML/Radius yang serasi);
  2. Pengesahan berbilang faktor:
    • Sijil pengguna dengan pengesahan medan dan pengesahan kedua terhadap salah satu daripadanya;
    • Log masuk (tidak boleh ditukar, diambil daripada sijil) dan kata laluan;
  3. Menganggarkan keadaan hos penyambung (Postur)

Komponen penyelesaian yang digunakan:

  • Cisco ASA (Gerbang VPN);
  • Cisco ISE (Pengesahan / Kebenaran / Perakaunan, Penilaian Negeri, CA);
  • Cisco DUO (Pengesahan Berbilang Faktor) (Anda boleh melampirkan mana-mana SAML/Radius yang serasi);
  • Cisco AnyConnect (Ejen pelbagai guna untuk stesen kerja dan OS mudah alih);

Mari kita mulakan dengan keperluan pelanggan:

  1. Pengguna mesti, melalui pengesahan Log Masuk/Kata Laluan, boleh memuat turun klien AnyConnect daripada get laluan VPN; semua modul AnyConnect yang diperlukan mesti dipasang secara automatik mengikut dasar pengguna;
  2. Pengguna sepatutnya boleh mengeluarkan sijil secara automatik (untuk salah satu senario, senario utama ialah pengeluaran manual dan muat naik pada PC), tetapi saya melaksanakan isu automatik untuk demonstrasi (tidak terlambat untuk mengalih keluarnya).
  3. Pengesahan asas mesti berlaku dalam beberapa peringkat, pertama terdapat pengesahan sijil dengan analisis medan yang diperlukan dan nilainya, kemudian log masuk/kata laluan, hanya kali ini nama pengguna yang dinyatakan dalam medan sijil mesti dimasukkan ke dalam tetingkap log masuk Nama Subjek (CN) tanpa keupayaan untuk mengedit.
  4. Anda perlu memastikan bahawa peranti dari mana anda log masuk ialah komputer riba korporat yang dikeluarkan kepada pengguna untuk akses jauh, dan bukan sesuatu yang lain. (Beberapa pilihan telah dibuat untuk memenuhi keperluan ini)
  5. Keadaan peranti penyambung (pada peringkat ini PC) harus dinilai dengan semakan jadual keseluruhan keperluan pelanggan yang besar (merumuskan):
    • Fail dan sifatnya;
    • Entri pendaftaran;
    • Tampalan OS daripada senarai yang disediakan (kemudian penyepaduan SCCM);
    • Ketersediaan Anti-Virus daripada pengeluar tertentu dan tandatangan yang berkaitan;
    • Aktiviti perkhidmatan tertentu;
    • Ketersediaan program dipasang tertentu;

Sebagai permulaan, saya cadangkan anda pasti melihat demonstrasi video pelaksanaan yang terhasil pada Youtube (5 minit).

Sekarang saya mencadangkan untuk mempertimbangkan butiran pelaksanaan yang tidak diliputi dalam klip video.

Mari sediakan profil AnyConnect:

Saya sebelum ini memberikan contoh membuat profil (dari segi item menu dalam ASDM) dalam artikel saya tentang tetapan Kluster Pengimbangan Beban VPN. Sekarang saya ingin perhatikan secara berasingan pilihan yang kita perlukan:

Dalam profil, kami akan menunjukkan get laluan VPN dan nama profil untuk menyambung kepada pelanggan akhir:

Pelaksanaan konsep akses jauh yang sangat selamat

Mari kita konfigurasikan pengeluaran automatik sijil dari sisi profil, menunjukkan, khususnya, parameter sijil dan, secara ciri, memberi perhatian kepada medan Parap (I), di mana nilai tertentu dimasukkan secara manual UDID mesin ujian (Pengecam peranti unik yang dihasilkan oleh klien Cisco AnyConnect).

Pelaksanaan konsep akses jauh yang sangat selamat

Di sini saya ingin membuat penyimpangan lirik, kerana artikel ini menerangkan konsep; untuk tujuan demonstrasi, UDID untuk mengeluarkan sijil dimasukkan dalam medan Inisial profil AnyConnect. Sudah tentu, dalam kehidupan sebenar, jika anda melakukan ini, maka semua pelanggan akan menerima sijil dengan UDID yang sama dalam bidang ini dan tiada apa yang akan berfungsi untuk mereka, kerana mereka memerlukan UDID PC khusus mereka. AnyConnect, malangnya, belum lagi melaksanakan penggantian medan UDID ke dalam profil permintaan sijil melalui pembolehubah persekitaran, seperti yang dilakukannya, sebagai contoh, dengan pembolehubah %USER%.

Perlu diingat bahawa pelanggan (daripada senario ini) pada mulanya merancang untuk mengeluarkan sijil secara bebas dengan UDID yang diberikan dalam mod manual kepada PC Dilindungi tersebut, yang tidak menjadi masalah baginya. Walau bagaimanapun, bagi kebanyakan kita kita mahukan automasi (baik, bagi saya ia adalah benar =)).

Dan inilah yang boleh saya tawarkan dari segi automasi. Jika AnyConnect masih belum dapat mengeluarkan sijil secara automatik dengan menggantikan UDID secara dinamik, maka terdapat cara lain yang memerlukan sedikit pemikiran kreatif dan tangan yang mahir - saya akan memberitahu anda konsepnya. Mula-mula, mari kita lihat bagaimana UDID dijana pada sistem pengendalian yang berbeza oleh ejen AnyConnect:

  • Windows β€” SHA-256 cincang gabungan kunci pendaftaran DigitalProductID dan Machine SID
  • OSX β€” Platform cincang SHA-256UUID
  • Linux β€” SHA-256 cincang UUID bagi partition root.
  • Apple IOS β€” Platform cincang SHA-256UUID
  • Android – Lihat dokumen pada pautan

Sehubungan itu, kami mencipta skrip untuk OS Windows korporat kami, dengan skrip ini kami mengira UDID secara tempatan menggunakan input yang diketahui dan membentuk permintaan untuk mengeluarkan sijil dengan memasukkan UDID ini dalam medan yang diperlukan, dengan cara itu, anda juga boleh menggunakan mesin sijil yang dikeluarkan oleh AD (dengan menambahkan pengesahan berganda menggunakan sijil pada skim Berbilang Sijil).

Mari sediakan tetapan di sebelah Cisco ASA:

Mari buat TrustPoint untuk pelayan ISE CA, ia akan menjadi yang akan mengeluarkan sijil kepada pelanggan. Saya tidak akan mempertimbangkan prosedur import Rantaian Kunci; contoh diterangkan dalam artikel saya tentang persediaan Kluster Pengimbangan Beban VPN.

crypto ca trustpoint ISE-CA
 enrollment terminal
 crl configure

Kami mengkonfigurasi pengedaran oleh Tunnel-Group berdasarkan peraturan mengikut medan dalam sijil yang digunakan untuk pengesahan. Profil AnyConnect yang kami buat pada peringkat sebelumnya juga dikonfigurasikan di sini. Sila ambil perhatian bahawa saya menggunakan nilai SECUREBANK-RA, untuk memindahkan pengguna dengan sijil yang dikeluarkan ke kumpulan terowong SELAMAT-BANK-VPN, sila ambil perhatian bahawa saya mempunyai medan ini dalam lajur permintaan sijil 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
!

Menyediakan pelayan pengesahan. Dalam kes saya, ini ialah ISE untuk peringkat pertama pengesahan dan DUO (Proksi Radius) 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 dasar kumpulan dan kumpulan terowong serta komponen tambahannya:

Kumpulan terowong LalaiWEBVPNGroup akan digunakan terutamanya untuk memuat turun klien VPN AnyConnect dan mengeluarkan sijil pengguna menggunakan fungsi SCEP-Proxy ASA; untuk ini kami mempunyai pilihan yang sepadan diaktifkan kedua-dua kumpulan terowong itu sendiri dan pada dasar kumpulan yang berkaitan Muat Turun AC, dan pada profil AnyConnect yang dimuatkan (medan untuk mengeluarkan sijil, dsb.). Juga dalam dasar kumpulan ini kami menunjukkan keperluan untuk memuat turun Modul Postur ISE.

Kumpulan terowong SELAMAT-BANK-VPN akan digunakan secara automatik oleh pelanggan apabila mengesahkan dengan sijil yang dikeluarkan pada peringkat sebelumnya, memandangkan, mengikut Peta Sijil, sambungan akan jatuh secara khusus pada kumpulan terowong ini. Saya akan memberitahu anda tentang pilihan menarik di sini:

  • DUO kumpulan-pengesahan-pelayan-sekunder # Tetapkan pengesahan kedua pada pelayan DUO (Proksi Radius)
  • nama pengguna-dari-sijilCN # Untuk pengesahan utama, kami menggunakan medan CN sijil untuk mewarisi log masuk pengguna
  • nama pengguna sekunder daripada sijil I # Untuk pengesahan kedua pada pelayan DUO, kami menggunakan nama pengguna yang diekstrak dan medan Inisial (I) bagi sijil.
  • pelanggan praisi-nama pengguna # jadikan nama pengguna pra-isi dalam tetingkap pengesahan tanpa keupayaan untuk menukar
  • pelanggan sekunder-pra-isi-nama pengguna sembunyikan push-guna-biasa-kata laluan # Kami menyembunyikan tetingkap input log masuk/kata laluan untuk pengesahan sekunder DUO dan menggunakan kaedah pemberitahuan (sms/push/telefon) - dok untuk meminta pengesahan dan bukannya medan kata laluan 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
!

Seterusnya kita beralih ke ISE:

Kami mengkonfigurasi pengguna tempatan (anda boleh menggunakan AD/LDAP/ODBC, dll.), untuk kesederhanaan, saya mencipta pengguna tempatan dalam ISE sendiri dan menetapkannya dalam medan Penerangan PC UDID dari mana dia dibenarkan untuk log masuk melalui VPN. Jika saya menggunakan pengesahan tempatan pada ISE, saya akan dihadkan kepada hanya satu peranti, kerana tidak terdapat banyak medan, tetapi dalam pangkalan data pengesahan pihak ketiga saya tidak akan mempunyai sekatan sedemikian.

Pelaksanaan konsep akses jauh yang sangat selamat

Mari kita lihat dasar kebenaran, ia dibahagikan kepada empat peringkat sambungan:

  • Peringkat 1 β€” Dasar untuk memuat turun ejen AnyConnect dan mengeluarkan sijil
  • Peringkat 2 β€” Dasar pengesahan utama Log masuk (daripada sijil)/Kata Laluan + Sijil dengan pengesahan UDID
  • Peringkat 3 β€” Pengesahan sekunder melalui Cisco DUO (MFA) menggunakan UDID sebagai nama pengguna + penilaian Negeri
  • Peringkat 4 β€” Keizinan terakhir adalah dalam keadaan:
    • Mematuhi;
    • Pengesahan UDID (daripada sijil + pengikatan log masuk),
    • Cisco DUO MFA;
    • Pengesahan melalui log masuk;
    • Pengesahan sijil;

Pelaksanaan konsep akses jauh yang sangat selamat

Mari lihat keadaan yang menarik UUID_VALIDATE, nampaknya pengguna yang mengesahkan sebenarnya datang daripada PC dengan UDID yang dibenarkan dikaitkan dalam medan Penerangan Produk akaun, syaratnya kelihatan seperti ini:

Pelaksanaan konsep akses jauh yang sangat selamat

Profil kebenaran yang digunakan pada peringkat 1,2,3 adalah seperti berikut:

Pelaksanaan konsep akses jauh yang sangat selamat

Anda boleh menyemak dengan tepat bagaimana UDID daripada klien AnyConnect sampai kepada kami dengan melihat butiran sesi klien dalam ISE. Secara terperinci kita akan melihat bahawa AnyConnect melalui mekanisme ACIDEX menghantar bukan sahaja maklumat tentang platform, tetapi juga UDID peranti sebagai Cisco-AV-PAIR:

Pelaksanaan konsep akses jauh yang sangat selamat

Mari kita perhatikan sijil yang dikeluarkan kepada pengguna dan medan Parap (I), yang digunakan untuk mengambilnya sebagai log masuk untuk pengesahan MFA sekunder pada Cisco DUO:

Pelaksanaan konsep akses jauh yang sangat selamat

Di sebelah Proksi Radius DUO dalam log kita dapat melihat dengan jelas bagaimana permintaan pengesahan dibuat, ia datang menggunakan UDID sebagai nama pengguna:

Pelaksanaan konsep akses jauh yang sangat selamat

Dari portal DUO kami melihat acara pengesahan yang berjaya:

Pelaksanaan konsep akses jauh yang sangat selamat

Dan dalam sifat pengguna saya telah menetapkannya ALIAS, yang saya gunakan untuk log masuk, seterusnya, ini ialah UDID PC yang dibenarkan untuk log masuk:

Pelaksanaan konsep akses jauh yang sangat selamat

Hasilnya kami mendapat:

  • Pengesahan pengguna dan peranti berbilang faktor;
  • Perlindungan terhadap pemalsuan peranti pengguna;
  • Menilai keadaan peranti;
  • Potensi untuk meningkatkan kawalan dengan sijil mesin domain, dsb.;
  • Perlindungan tempat kerja jauh yang komprehensif dengan modul keselamatan yang digunakan secara automatik;

Pautan ke artikel siri Cisco VPN:

Sumber: www.habr.com

Tambah komen