Implementasi konsep akses remot sing aman banget

Terusake seri artikel babagan topik organisasi VPN Akses Remote akses Aku ora bisa bantuan nanging nuduhake pengalaman penyebaran prajurit menarik konfigurasi VPN sing aman banget. Tugas sing ora pati penting diwenehake dening siji pelanggan (ana panemu ing desa Rusia), nanging Tantangan kasebut ditampa lan ditindakake kanthi kreatif. Asil punika konsep menarik karo ciri ing ngisor iki:

  1. Sawetara faktor pangayoman marang substitusi piranti terminal (kanthi ikatan sing ketat kanggo pangguna);
    • Netepake kepatuhan PC pangguna karo UDID sing ditugasake saka PC sing diidini ing database otentikasi;
    • Kanthi MFA nggunakake PC UDID saka certificate kanggo otentikasi secondary liwat Cisco DUO (Sampeyan bisa masang SAML/Radius sing kompatibel);
  2. Otentikasi multi-faktor:
    • Sertifikat pangguna kanthi verifikasi lapangan lan otentikasi sekunder marang salah sijine;
    • Login (ora bisa diganti, dijupuk saka sertifikat) lan sandhi;
  3. Ngira-ngira kahanan host sing nyambungake (Postur)

Komponen solusi sing digunakake:

  • Cisco ASA (VPN Gateway);
  • Cisco ISE (Otentikasi / Wewenang / Akuntansi, Evaluasi Negara, CA);
  • Cisco DUO (Multi-Factor Authentication) (Sampeyan bisa masang SAML/Radius sing kompatibel);
  • Cisco AnyConnect (Agen multi-tujuan kanggo workstation lan OS seluler);

Ayo dadi miwiti karo syarat pelanggan:

  1. Pangguna kudu, liwat otentikasi Login/Sandhi, bisa ndownload klien AnyConnect saka gateway VPN; kabeh modul AnyConnect sing perlu kudu diinstal kanthi otomatis sesuai karo kabijakan pangguna;
  2. Pangguna kudu bisa ngetokake sertifikat kanthi otomatis (kanggo salah sawijining skenario, skenario utama yaiku penerbitan manual lan upload ing PC), nanging aku nindakake masalah otomatis kanggo demonstrasi (ora kasep kanggo mbusak).
  3. Otentikasi dhasar kudu ditindakake ing pirang-pirang tahapan, pisanan ana otentikasi sertifikat kanthi analisa lapangan sing dibutuhake lan nilai-nilai kasebut, banjur mlebu / sandhi, mung wektu iki jeneng pangguna sing ditemtokake ing kolom sertifikat kudu dilebokake ing jendela login. Jeneng subyek (CN) tanpa kemampuan kanggo nyunting.
  4. Sampeyan kudu nggawe manawa piranti saka ngendi sampeyan mlebu iku laptop perusahaan ditanggepi kanggo pangguna kanggo akses remot, lan ora mergo. (Sawetara opsi wis digawe kanggo nyukupi syarat iki)
  5. Kahanan piranti sing nyambungake (ing tahap iki PC) kudu ditaksir kanthi mriksa kabeh tabel syarat pelanggan (ngringkes):
    • File lan sifate;
    • entri Registry;
    • OS patch saka dhaptar sing kasedhiya (mengko integrasi SCCM);
    • Kasedhiyan Anti-Virus saka pabrikan tartamtu lan relevansi teken;
    • Aktivitas layanan tartamtu;
    • Kasedhiyan program tartamtu sing diinstal;

Kanggo miwiti karo, Aku suggest sing temtunipun katon ing demo video saka asil implementasine ing Youtube (5 menit).

Saiki aku ngusulake nimbang rincian implementasine sing ora ana ing klip video.

Ayo nyiyapake profil AnyConnect:

Aku sadurunge menehi conto nggawe profil (ing syarat-syarat item menu ing ASDM) ing artikel ing setelan Kluster Load-Balancing VPN. Saiki aku pengin nyathet kanthi kapisah pilihan sing dibutuhake:

Ing profil, kita bakal nuduhake gateway VPN lan jeneng profil kanggo nyambungake menyang klien pungkasan:

Implementasi konsep akses remot sing aman banget

Ayo konfigurasi penerbitan sertifikat otomatis saka sisih profil, nuduhake, utamane, paramèter sertifikat lan, kanthi karakteristik, mbayar manungsa waé menyang lapangan. Inisial (I), ing ngendi nilai tartamtu dilebokake kanthi manual UID mesin test (Identifier piranti unik sing digawe dening klien Cisco AnyConnect).

Implementasi konsep akses remot sing aman banget

Ing kene aku pengin nggawe digression lirik, amarga artikel iki nggambarake konsep kasebut; kanggo tujuan demonstrasi, UDID kanggo nerbitake sertifikat dilebokake ing kolom Inisial ing profil AnyConnect. Mesthine, ing urip nyata, yen sampeyan nindakake iki, kabeh klien bakal nampa sertifikat kanthi UDID sing padha ing lapangan iki lan ora ana sing bisa digunakake, amarga butuh UDID saka PC tartamtu. AnyConnect, sayangé, durung ngleksanakake substitusi lapangan UDID menyang profil panjalukan sertifikat liwat variabel lingkungan, kayata, contone, karo variabel %USER%.

Wigati dicathet menawa pelanggan (skenario iki) wiwitane ngrancang ngetokake sertifikat kanthi UDID sing diwenehake ing mode manual menyang PC sing dilindhungi, sing ora dadi masalah kanggo dheweke. Nanging, kanggo umume kita pengin otomatisasi (uga, kanggo aku bener =)).

Lan iki sing bisa daktawakake babagan otomatisasi. Yen AnyConnect durung bisa ngetokake sertifikat kanthi otomatis kanthi ngganti UDID kanthi dinamis, mula ana cara liya sing mbutuhake pamikiran kreatif lan tangan sing trampil - Aku bakal ngandhani konsep kasebut. Pisanan, ayo goleki carane UDID digawe ing sistem operasi sing beda dening agen AnyConnect:

  • Windows — SHA-256 hash kombinasi tombol registri DigitalProductID lan Machine SID
  • OSX - SHA-256 hash PlatformUUID
  • Linux - SHA-256 hash saka UUID saka partisi ROOT.
  • Apple iOS - SHA-256 hash PlatformUUID
  • Android – Deleng dokumen ing link

Patut, kita nggawe skrip kanggo OS Windows perusahaan, kanthi skrip iki kita ngitung UDID sacara lokal nggunakake input sing dikenal lan nggawe panjaluk kanggo nerbitake sertifikat kanthi ngetik UDID iki ing lapangan sing dibutuhake, kanthi cara, sampeyan uga bisa nggunakake mesin. sertifikat sing ditanggepi dening AD (kanthi nambahake otentikasi kaping pindho nggunakake sertifikat menyang skema Sertifikat Multiple).

Ayo nyiyapake setelan ing sisih Cisco ASA:

Ayo nggawe TrustPoint kanggo server ISE CA, bakal dadi siji sing bakal ngetokake sertifikat kanggo klien. Aku ora bakal nimbang prosedur ngimpor Key-Chain; conto diterangake ing artikel babagan persiyapan Kluster Load-Balancing VPN.

crypto ca trustpoint ISE-CA
 enrollment terminal
 crl configure

Kita ngatur distribusi dening Tunnel-Group adhedhasar aturan sing cocog karo kolom ing sertifikat sing digunakake kanggo otentikasi. Profil AnyConnect sing digawe ing tahap sadurunge uga dikonfigurasi ing kene. Elinga yen aku nggunakake nilai kasebut SECUREBANK-RA, kanggo nransfer pangguna kanthi sertifikat sing ditanggepi menyang grup trowongan AMAN-BANK-VPN, Wigati dimangerteni manawa aku duwe lapangan iki ing kolom panyuwunan 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
!

Nyetel server otentikasi. Ing kasusku, iki ISE kanggo tahap pertama otentikasi lan DUO (Radius Proxy) minangka 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
!

Kita nggawe kabijakan grup lan grup trowongan lan komponen tambahan:

Grup trowongan DefaultWEBVPNGroup bakal digunakake utamane kanggo ndownload klien AnyConnect VPN lan ngetokake sertifikat pangguna nggunakake fungsi SCEP-Proxy saka ASA; kanggo iki, kita duwe opsi sing cocog sing diaktifake ing grup trowongan dhewe lan ing kabijakan grup sing gegandhengan AC-Download, lan ing profil AnyConnect sing dimuat (bidang kanggo nerbitake sertifikat, lsp). Uga ing kabijakan grup iki, kita kudu ndownload Modul Postur ISE.

Grup trowongan AMAN-BANK-VPN bakal kanthi otomatis digunakake dening klien nalika otentikasi karo certificate ditanggepi ing tataran sadurungé, wiwit, sesuai karo Certificate Map, sambungan bakal tiba khusus ing grup trowongan iki. Aku bakal pitutur marang kowe bab opsi menarik kene:

  • sekunder-otentikasi-server-grup DUO # Setel otentikasi sekunder ing server DUO (Radius Proxy)
  • jeneng panganggo-saka-sertifikatCN # Kanggo otentikasi utami, kita nggunakake kolom CN sertifikat kanggo marisi login pangguna
  • secondary-username-saka-sertifikat I # Kanggo otentikasi sekunder ing server DUO, kita nggunakake jeneng pangguna sing diekstrak lan kolom Inisial (I) sertifikat.
  • klien pre-fill-username # nggawe jeneng pangguna wis diisi ing jendela otentikasi tanpa bisa ngganti
  • klien secondary-pre-fill-username ndhelikake push use-common-password # Kita ndhelikake jendhela input login / sandhi kanggo DUO otentikasi sekunder lan nggunakake metode kabar (sms / push / telpon) - dock kanggo njaluk otentikasi tinimbang kolom sandhi kene

!
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
!

Sabanjure kita pindhah menyang ISE:

Kita ngatur pangguna lokal (sampeyan bisa nggunakake AD / LDAP / ODBC, etc.), Kanggo kesederhanaan, aku nggawe pangguna lokal ing ISE dhewe lan ditugasake ing lapangan. gambaran UDID PC saka ngendi dheweke diijini mlebu liwat VPN. Yen aku nggunakake otentikasi lokal ing ISE, aku bakal diwatesi mung siji piranti, amarga ora ana akeh lapangan, nanging ing database otentikasi pihak katelu aku ora duwe watesan kasebut.

Implementasi konsep akses remot sing aman banget

Ayo katon ing kabijakan wewenang, dipérang dadi patang tahap sambungan:

  • Panggung 1 - Kabijakan kanggo ndownload agen AnyConnect lan nerbitake sertifikat
  • Panggung 2 — Kebijakan otentikasi utama Login (saka sertifikat)/Sandi + Sertifikat kanthi validasi UDID
  • Panggung 3 - Otentikasi sekunder liwat Cisco DUO (MFA) nggunakake UDID minangka jeneng pangguna + Assessment negara
  • Panggung 4 - Wewenang pungkasan ana ing negara:
    • manut;
    • Validasi UDID (saka sertifikat + ikatan login),
    • Cisco DUO MFA;
    • Otentikasi kanthi mlebu;
    • otentikasi sertifikat;

Implementasi konsep akses remot sing aman banget

Ayo ndeleng kahanan sing menarik UUID_VALIDATE, kayane pangguna sing otentikasi pancen asale saka PC kanthi UDID sing diidini sing ana gandhengane ing lapangan. Description akun, kondisi katon kaya iki:

Implementasi konsep akses remot sing aman banget

Profil wewenang sing digunakake ing tahap 1,2,3 yaiku:

Implementasi konsep akses remot sing aman banget

Sampeyan bisa mriksa persis carane UDID saka klien AnyConnect teka menyang kita kanthi ndeleng rincian sesi klien ing ISE. Ing rinci kita bakal weruh sing AnyConnect liwat mekanisme ACIDEX ngirim ora mung informasi bab platform, nanging uga UDID piranti minangka Cisco-AV-PAIR:

Implementasi konsep akses remot sing aman banget

Ayo menehi perhatian marang sertifikat sing ditanggepi kanggo pangguna lan lapangan Inisial (I), sing digunakake kanggo njupuk minangka login kanggo otentikasi MFA sekunder ing Cisco DUO:

Implementasi konsep akses remot sing aman banget

Ing sisih DUO Radius Proxy ing log, kita bisa ndeleng kanthi jelas carane panjaluk otentikasi digawe, nggunakake UDID minangka jeneng pangguna:

Implementasi konsep akses remot sing aman banget

Saka portal DUO kita ndeleng acara otentikasi sing sukses:

Implementasi konsep akses remot sing aman banget

Lan ing properti pangguna aku wis nyetel ALIAS, sing digunakake kanggo mlebu, iki minangka UDID saka PC sing diidini kanggo mlebu:

Implementasi konsep akses remot sing aman banget

Akibaté, kita entuk:

  • Otentikasi pangguna lan piranti multi-faktor;
  • Perlindhungan marang spoofing piranti pangguna;
  • Netepake kondisi piranti;
  • Potensi kanggo tambah kontrol karo sertifikat mesin domain, etc.;
  • Proteksi papan kerja remot sing komprehensif kanthi modul keamanan sing dipasang kanthi otomatis;

Link menyang artikel seri Cisco VPN:

Source: www.habr.com

Add a comment