Implementering van die konsep van hoogs veilige afstandtoegang
Voortsetting van die reeks artikels oor die onderwerp van organisasie Afstandtoegang VPN toegang Ek kan nie anders as om 'n interessante ontplooiingservaring te deel nie hoogs veilige VPN-konfigurasie. 'n Nie-onbelangrike taak is deur een klant gegooi (daar is uitvinders in Russiese dorpe), maar Challenge Accepted is kreatief geïmplementeer. Die resultaat is 'n interessante konsep met die volgende kenmerke:
Verskeie faktore van beskerming teen vervanging van die terminale toestel (met 'n rigiede binding aan die gebruiker);
Evaluering van die voldoening van die gebruiker se rekenaar met die toegewysde UDID van die toegelate rekenaar in die verifikasiebasis;
Met MFA met behulp van PC UDID vanaf sertifikaat vir sekondêre verifikasie via Cisco DUO (Jy kan enige SAML / Radius-versoenbaar skroef);
Multi-faktor verifikasie:
Gebruikersertifikaat met veldvalidering en sekondêre verifikasie vir een van hulle;
Aanmelding (onveranderbaar, geneem uit die sertifikaat) en wagwoord;
Skat die toestand van die verbindende gasheer (Postuur)
Oplossingskomponente wat gebruik word:
Cisco ASA (VPN Gateway);
Cisco ISE (stawing / magtiging / rekeningkunde, staat skatting, CA);
Cisco DUO (Multi-Factor Authentication) (Jy kan enige SAML / Radius-versoenbaar skroef);
Cisco AnyConnect (veeldoelige agent vir werkstasies en mobiele bedryfstelsels);
Kom ons begin met die kliëntvereistes:
Die gebruiker moet die AnyConnect-kliënt van die VPN-poort kan aflaai deur sy Login/Wagwoord-verifikasie, al die nodige AnyConnect-modules moet outomaties geïnstalleer word in ooreenstemming met die gebruiker se beleid;
Die gebruiker behoort outomaties 'n sertifikaat te kan uitreik (vir een van die scenario's is die hoofscenario handmatige uitreiking en invul op 'n rekenaar), maar ek het outo-uitreiking vir 'n demonstrasie geïmplementeer (dit is nooit te laat om dit te verwyder nie).
Basiese verifikasie moet in verskeie stadiums plaasvind, eers word die sertifikaat geverifieer met die ontleding van die vereiste velde en hul waardes, dan die aanmelding / wagwoord, slegs hierdie keer moet die gebruikersnaam gespesifiseer in die sertifikaatveld in die aanmeldvenster vervang word Onderwerpnaam (CN) sonder die moontlikheid om te wysig.
Jy moet seker maak dat die toestel vanwaar jy aanmeld 'n korporatiewe skootrekenaar is wat aan die gebruiker uitgereik is vir afstandtoegang, en niks anders nie. (Verskeie variasies is gemaak om aan hierdie vereiste te voldoen)
Die toestand van die verbindingstoestel moet geassesseer word (op hierdie stadium, die rekenaar) met 'n kontrole van die hele stewige tabel van klantvereistes (opsomming):
Lêers en hul eienskappe;
Registerinskrywings;
OS-kolle vanaf die verskafde lys (verdere SCCM-integrasie);
Beskikbaarheid van Anti-Virus van 'n sekere vervaardiger en relevansie van handtekeninge;
Aktiwiteit van sekere dienste;
Teenwoordigheid van sekere geïnstalleerde programme;
Om mee te begin, stel ek voor dat jy beslis kyk na die video-demonstrasie van die gevolglike implementering op Youtube (5 minute).
Nou stel ek voor om die implementeringsbesonderhede te oorweeg wat nie in die videogreep gedek word nie.
Kom ons berei die AnyConnect-profiel voor:
'n Voorbeeld van die skep van 'n profiel (in terme van 'n spyskaart-item in ASDM) het ek voorheen in my artikel oor instelling gegee VPN-lasbalanserende groepering. Nou wil ek afsonderlik let op die opsies wat ons nodig het:
In die profiel, spesifiseer die VPN-poort en die profielnaam vir verbinding op die eindkliënt:
Kom ons stel die outomatiese uitreiking van 'n sertifikaat van die kant van die profiel op, spesifiseer veral die parameters van die sertifikaat en, wat tipies is, let op die veld Voorletters (I), waar 'n spesifieke waarde met die hand ingevoer word UIDID toetsmasjien (Unieke toestelidentifiseerder gegenereer deur die Cisco AnyConnect-kliënt).
Hier wil ek 'n liriese afwyking maak, aangesien hierdie artikel die konsep beskryf, vir demonstrasiedoeleindes, hier is die UDID vir die uitreiking van 'n sertifikaat in die Initials-veld van die AnyConnect-profiel. Natuurlik, in die werklike lewe, as jy dit doen, sal alle kliënte 'n sertifikaat met dieselfde UDID in hierdie veld ontvang en niks sal vir hulle werk nie, want hulle het die UDID van hul spesifieke rekenaar nodig. AnyConnect implementeer ongelukkig nog nie die vervanging van die UDID-veld in die sertifikaatversoekprofiel deur die omgewingsveranderlike nie, soos dit byvoorbeeld met die veranderlike doen %USER%.
Daar moet kennis geneem word dat die kliënt (in hierdie scenario) aanvanklik beplan om sertifikate met die gespesifiseerde UDID op sy eie uit te reik aan sulke beskermde rekenaars, wat nie vir hom 'n probleem is nie. Vir die meeste van ons wil ons egter outomatisering hê (wel, vir my is dit seker =)).
En dit is wat ek kan bied in terme van outomatisering. As dit nog nie moontlik is om 'n sertifikaat outomaties uit te reik nie, deur AnyConnect wat die UDID dinamies vervang, dan is daar 'n ander manier wat 'n bietjie kreatiewe denke en vaardige hande sal verg - ek sal jou die konsep vertel. Kom ons kyk eers hoe die UDID op verskillende bedryfstelsels deur die AnyConnect-agent gevorm word:
Windows - SHA-256-hash van die kombinasie van die DigitalProductID en Machine SID-registersleutel
OSX - SHA-256 hash PlatformUUID
Linux - SHA-256-hash van die UUID van die wortelpartisie.
Gevolglik maak ons 'n script vir ons korporatiewe Windows-bedryfstelsel, met hierdie script bereken ons plaaslik die UDID uit bekende insette en vorm 'n versoek vir die uitreiking van 'n sertifikaat deur hierdie UDID in die vereiste veld in te voer, terloops, jy kan ook 'n masjien gebruik sertifikaat uitgereik deur AD (voeg dubbele verifikasie deur sertifikaat by die skema meervoudige sertifikaat).
Kom ons berei die instellings vanaf die Cisco ASA-kant voor:
Kom ons skep 'n TrustPoint vir die ISE CA-bediener, dit sal sertifikate aan kliënte uitreik. Ek sal nie die Sleutelketting-invoerprosedure oorweeg nie, 'n voorbeeld word in my opstelartikel beskryf VPN-lasbalanserende groepering.
crypto ca trustpoint ISE-CA
enrollment terminal
crl configure
Ons stel verspreiding oor die Tonnel-groep op gebaseer op die reëls in ooreenstemming met die velde in die sertifikaat wat vir stawing gebruik word. Ook die AnyConnect-profiel, wat ons in die laaste stadium gemaak het, word hier gekonfigureer. Neem asseblief kennis dat ek die waarde gebruik SECUREBANK-RA, om gebruikers met 'n uitgereikte sertifikaat na 'n tonnelgroep oor te dra VEILIGE-BANK-VPN, let asseblief daarop dat ek hierdie veld in die AnyConnect-profielsertifikaatversoekkolom het.
Stel 'n verifikasiebediener op. In my geval is dit ISE vir die eerste stadium van verifikasie en DUO (Radius Proxy) as 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
!
Ons skep groepbeleide en tonnelgroepe en hul hulpkomponente:
tonnelgroep VerstekWEBVPNGroup sal hoofsaaklik gebruik word om die AnyConnect VPN-kliënt af te laai en 'n gebruikerssertifikaat uit te reik deur gebruik te maak van die SCEP-Proxy-funksie van die ASA, hiervoor het ons die toepaslike opsies geaktiveer op beide die tonnelgroep self en op die geassosieerde groepbeleid AC aflaai, en op die gelaaide AnyConnect-profiel (sertifikate-uitreikingsvelde, ens.). Ook in hierdie groepbeleid dui ons die behoefte aan om af te laai ISE Posture Module.
tonnelgroep VEILIGE-BANK-VPN sal outomaties deur die kliënt gebruik word wanneer met die uitgereikte sertifikaat in die vorige stap geverifieer word, aangesien, volgens die Sertifikaatkaart, die verbinding op hierdie tonnelgroep sal val. Ek sal jou hier vertel van interessante opsies:
sekondêre-verifikasie-bediener-groep DUO # Stel sekondêre verifikasie op die DUO-bediener (Radius Proxy)
gebruikersnaam-van-sertifikaat-CN # Gebruik die CN-veld van die sertifikaat vir primêre verifikasie om die gebruiker se aanmelding te erf
sekondêre-gebruikersnaam-van-sertifikaat I # Vir sekondêre verifikasie op die DUO-bediener, gebruik die gebruikersnaam wat onttrek is en die Initials (I) velde van die sertifikaat.
voorafvul-gebruikersnaamkliënt # maak die gebruikersnaam vooraf ingevul in die verifikasievenster sonder die moontlikheid om te verander
sekondêre-voor-vul-gebruikersnaam kliënt verberg gebruik-algemene-wagwoord druk # Versteek die aanmeld-/wagwoordinvoervenster vir DUO sekondêre verifikasie en gebruik die kennisgewingmetode (sms/druk/foon) in plaas van die wagwoordveld om verifikasie aan te vra - doc. hier
!
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
!
Kom ons gaan dan verder na ISE:
Ons het 'n plaaslike gebruiker opgestel (jy kan ook AD / LDAP / ODBC gebruik, ens.), vir eenvoud het ek 'n plaaslike gebruiker in die ISE self gemaak en dit aan die veld toegewys beskrywingPC UDID vanwaar hy toegelaat word om via VPN aan te meld. In die geval van die gebruik van plaaslike verifikasie op ISE, sal ek beperk word tot slegs een toestel, aangesien daar nie soveel velde is nie, maar in derdeparty-verifikasiedatabasisse sal ek nie sulke beperkings hê nie.
Kom ons kyk na die magtigingsbeleid, dit is verdeel in vier fases van die verbinding:
Stadium 1 - Beleid vir die aflaai van die AnyConnect-agent en die uitreiking van 'n sertifikaat
Stadium 3 - Verifikasie sekondêr via Cisco DUO (MFA) deur UDID as gebruikersnaam + Staat assessering
Stadium 4 - Finale magtiging in die staat:
Voldoende;
UDID-bekragtiging (vanaf die sertifikaat + binding tot die aanmelding),
Cisco DUO MFA
Aanmelding verifikasie;
Sertifikaat verifikasie;
Kom ons kyk na 'n interessante toestand UUID_VALIDATED, dit lyk net asof die geverifieerde gebruiker regtig van 'n rekenaar af gekom het met 'n gepaardgaande UDID wat in die veld toegelaat word Beskrywing rekening, lyk die voorwaardes soos volg:
Die magtigingsprofiel wat in fases 1,2,3 gebruik word, lyk soos volg:
Jy kan presies kyk hoe die UDID van die AnyConnect-kliënt af kom deur na die kliëntsessiebesonderhede in die ISE te kyk. Ons sal in detail sien dat AnyConnect deur die meganisme ACIDEX stuur nie net data oor die platform nie, maar ook die UDID van die toestel as Cisco-AV-PAAR:
Gee aandag aan die sertifikaat wat aan die gebruiker uitgereik is en die veld Voorletters (I), wat gebruik word om dit as 'n aanmelding vir MFA sekondêre verifikasie op die Cisco DUO te neem:
Aan die DUO Radius Proxy-kant kan ons duidelik in die logboek sien hoe die verifikasieversoek verloop, dit gebruik die UDID as die gebruikersnaam:
Vanaf die DUO-portaal sien ons 'n suksesvolle verifikasiegeleentheid:
En in die gebruiker eienskappe wat ek gestel het ALIAS, wat ek gebruik het om aan te meld, op sy beurt is dit die UDID van die rekenaar wat toegelaat word vir aanmelding:
As gevolg hiervan het ons:
Multi-faktor gebruiker en toestel stawing;
Beskerming teen vervanging van die gebruiker se toestel;
Assessering van die toestand van die toestel;
Potensiaal vir verhoogde beheer met domeinmasjiensertifikaat, ens.;
Omvattende beskerming van 'n afgeleë werkplek met outomaties ontplooide sekuriteitsmodules;