Jätkame artiklite seeriat organisatsiooni teemal Remote-Access VPN juurdepääsest ei saa ma mitte jagada huvitavat kogemust rakendamisest kaitseväärsest VPN konfiguratsioonist. Üks tellija (Venemaa külades leidub leiutajaid) viskas keerulise ülesande, kuid Challenge Accepted ja loominguliselt teostatud. Tulemuseks sai huvitav kontseptsioon järgmiste omadustega:
- Mitmed kaitsemeetmed, et vältida lõppseadmestiku petmist (tihe sidumine kasutajaga);
- Kasutaja PC vastavuse hindamine määratud UDID lubatud PC-ga autentimisteabes;
- MFA-ga, mis kasutab sertifikaadist UDID-d teise autentimise jaoks Cisco DUO kaudu (Võimalik on lisada iga SAML/RADIUS ühilduva variandi);
- Mitme teguri autentimine:
- Kasutaja sertifikaat koos väljade ja nende alusel teise autentimise kontrollimisega;
- Kasutajanimi (muutmatu, võetud sertifikaadist) ja parool;
- Ühendava hosti oleku hindamine (Posture)
Kasutatavad lahenduse komponendid:
- Cisco ASA (VPN värav);
- Cisco ISE (Autentimine / Autoriseerimine / Arvepidamine, Oleku hindamine, CA);
- Cisco DUO (Mitmekordne autentimine) (Võimalik on lisada iga SAML/RADIUS ühilduva variandi);
- Cisco AnyConnect (Mugandatud agent lauaarvutitele ja mobiilsetele OS-idele);
Alustame klientide nõuetest:
- Kasutaja peab saama oma autentimise sisselogimise/parooli abil alla laadida AnyConnecti kliendi VPN-lüüsist, kõik vajalikud AnyConnecti moodulid peavad automaatselt olema installitud vastavalt kasutaja poliitikale;
- Kasutajal peaks olema võimalus automaatseks sertifikaadi väljastamiseks (ühe stsenaariumi jaoks, põhiline stsenaarium on käsitsi väljastamine ja arvutisse laadimine), mina olen realiseerinud automaatse väljastamise demonstreerimiseks (hiljem eemaldamine pole kunagi hilja).
- Põhi autentimine peaks toimuma mitmes etapis, esmalt toimub sertifikaadi autentimine koos vajalike väljade ja nende väärtuste analüüsiga, seejärel sisselogimine/parool, kuid seekord peab sisselogimise aknasse olema sisestatud kasutajanimi, mis on märgitud sertifikaadi väljal. Teema nimi (CN) ilma redigeerimisvõimaluseta.
- On oluline veenduda, et seade, millelt sisenetakse, on ettevõtte kaugtööl kasutajale antud sülearvuti, mitte midagi muud. (On loodud mitu varianti selle nõude täitmiseks)
- Peab toimuma ühendatud seadme (selle etapi juhul PC) seisundi hindamine, kontrollides tellija nõuete terviklikku tervet tabelit (üldistatult):
- Failid ja nende omadused;
- Registrikirjed;
- Tarkvarauuendused ettenähtud loendist (hiljem SCCM integratsioon);
- Teatud tootja viirusetõrje olemasolu ja allkirjade ajakohasus;
- Teatud teenuste aktiivsus;
- Teatud installitud programmide olemasolu;
Alustuseks soovitan kindlasti vaadata videoesitlust saavutatud rakendusest Youtube'is (5 minutit).

Nüüd soovitan arutada rakenduse detaile, mis videos kajastamata jäid.
Valmistame ette AnyConnect'i profiili:
Profiili loomise näide (ASDM menüüpunkti osas) on varem toodud minu artiklis . Praegu tahan eraldi märkida need valikud, mida meil vaja on:
Profiilis näitame VPN-i väravat ja ühenduse profiili nime lõppkasutaja seadmes:

Seame profiili automaatse sertifikaadi väljastamise parameetrid, pöörates tähelepanu eelkõige järgmisele Initsiaalid (I), kus on käsitsi sisestatud konkreetne väärtus UDID testmasina (Unikaalne seadme identifikaator, mille genereerib Cisco AnyConnect klient).

Siin soovin teha emotsionaalset kõrvalepõiget, kuna see artikkel kirjeldab kontseptsiooni. Demonstreerimise eesmärgil on siin UDID sisestatud AnyConnect profiili Initsiaalide väljale. Loomulikult, kui te praktikas nii teete, saavad kõik kliendid sertifikaadi sama UDID-iga, mis tähendab, et nende jaoks ei toimi see, kuna nad vajavad UDID-d oma isikliku arvuti jaoks. Kahjuks ei toeta AnyConnect veel sertifikaadi probleemi UDID väljale asendust keskkonnamuutuja kaudu, nagu ta teeb näiteks muutuja %USER%.
On tasub märkida, et tellija (antud stsenaariumi puhul) plaanib algselt sertifikaate iseseisvalt manuaalselt välja anda määratud UDID-dega kaitstud arvutitele, mis ei ole tema jaoks probleem. Siiski, enamik meist soovib automatiseerimist (no vähemalt mina küll =)).
Ja siin on, mida ma automatiseerimise osas pakkuda saan. Kui automaatselt sertifikaati välja kirjutada, on AnyConnecti kaudu UDID-i dünaamiline sisestamine praegu väljaspool võimaluste piire, siis on ka teine meetod, mis vajab veidi loomingulist mõtlemist ja oskuslikke käsi – räägin kontseptsioonist. Alustuseks vaadakem, kuidas UDID erinevate operatsioonisüsteemide AnyConnecti agenti abil formuleeritakse:
- Windows — SHA-256 registri DigitalProductID ja Machine SID kombinatsiooni räsi
- OSX — SHA-256 PlatformUUID räsi
- Linux — SHA-256 lähtepartitsiooni UUID räsi.
- Apple iOS — SHA-256 PlatformUUID räsi
- Android – Vaata dokumenti
Seetõttu valmistame meie ettevõtte Windowsi operatsioonisüsteemide jaoks skripti, millega arvutame UDID-i teadaolevate sisendiandmete põhjal ja koostame sertifikaadi väljastamise taotluse, sisestades vajalikku väljakusse selle UDID-i, muide, see töötab ka AD välja antud masina sertifikaadiga (lisades skeemile kahekordse autentimise sertifikaadi järgi Multiple Certificate).
Seame Cisco ASA seadistused valmis:
Loome TrustPoint'i ISE CA serverile, mis välja annab sertifikaadid klientidele. Key-Chaini impordi protseduuri ei käsitle, näide on kirjas minu seadistamise artiklis. .
crypto ca trustpoint ISE-CA
enrollment terminal
crl configureSeame Tunnel-Group'i jagamise vastavalt sertifikaadile tehtud autentimise reeglitele. Samuti seadistame siin AnyConnect'i profiili, mille valmistasime eelmisel etapil. Tahan juhtida tähelepanu, et kasutan väärtust SECUREBANK-RA, et suunata kasutajad, kellel on antud sertifikaat, tunneli gruppi SECURE-BANK-VPN, märkige, et see väli on mul määratud AnyConnect'i profiili sertifikaadi taotlemise veerus.
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
!Seame autoriseerimisserverid. Minu juhul on see ISE esimeses autentimise etapis ja DUO (Radius Proxy) kui MFA.
! CISCO ISE
aaa-server ISE protokoll radius
authorize-only
interim-accounting-update perioodiliselt 24
dünaamiline-autasustamine
aaa-server ISE (sisevõrk) host 192.168.99.134
võti *****
!
! DUO RADIUS PROXY
aaa-server DUO protokoll radius
aaa-server DUO (sisevõrk) host 192.168.99.136
timeout 60
võti *****
autentimisport 1812
arveldamisport 1813
ei mschapv2-toetav
!Loo grupipoliitika ja tunneligrupp koos nende abikomponendidega:
Tunneligrupp DefaultWEBVPNGroup kasutatakse peamiselt AnyConnect VPN kliendi allalaadimiseks ja kasutajate sertifikaadi väljastamiseks, kasutades SCEP-Proxy funktsiooni ASA-s, selle jaoks on aktiveeritud vastavad valikud nii tunneligruppis kui ka seostatavas grupipoliitikas AC-Download, samuti allalaaditaval AnyConnect profiilil (sertifikaadi väljastamise alad jne). Samuti määrame selles grupipoliitikas vajaduse allalaadimiseks ISE Posture Module.
Tunneligrupp SECURE-BANK-VPN kasutatakse automaatselt kliendi poolt autentimise ajal, mille sertifikaat oli väljastatud eelnevas etapis, kuna Sertifikaadi Kaarti järgides läheb ühendus just sellele tunneligruppile. Räägin siit huvitavatest valikutest:
- secondary-authentication-server-group DUO # Задаем вторичную аутентификацию на сервере DUO (Radius Proxy)
- username-from-certificate CN # Используем для первичной аутентификации поле CN сертификата для наследования логина пользователя
- secondary-username-from-certificate I # Для вторичной аутентификации на сервере DUO используем имя пользователя, извлеченное и поля Initials (I) сертификата.
- pre-fill-username client # делаем предзаполненным имя пользователя в окне аутентификации без возможности изменения
- secondary-pre-fill-username client hide use-common-password push # Прячем окно ввода логина/пароля для вторичной аутентификации DUO и используем для запроса аутентификации вместо поля пароля метод уведомления (sms/push/phone) – дока
!
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
!Edasi liikudes ISE juurde:
Seadistame kohaliku kasutaja (võib kasutada ka AD/LDAP/ODBC jne), lihtsuse huvides lõin kohaliku kasutaja otse ISE-s ja määrasin välja. description PC UDID mille kaudu on tal lubatud VPN-i sisse logida. Kui ma kasutan ISE-s kohalikke autentimise meetodeid, olen ma piiratud ainult ühe seadmega, kuna väljade arv on piiratud, kuid kolmandate osapoolte autentimisdatal (nt AD) sellised piirangud puuduvad.

Vaatame autoriseerimise poliitikat, see on jagatud neljaks ühenduse etapiks:
- Etapp 1 — Poliitika AnyConnecti agendi allalaadimiseks ja sertifikaadi väljastamiseks
- Etapp 2 — Esmane autentimine Logi sisse (sertifikaadist) / Parool + Sertifikaat UDID valideerimisega
- Etapp 3 — Teisene autentimine Cisco DUO (MFA) kaudu UDID kui kasutajanime + Oleku hindamine
- Etapp 4 — Lõplik autoriseerimine seisundis:
- Kohandatud;
- UDID valideerimisega (sertifikaadist + seondus logimisega),
- Cisco DUO MFA;
- Autentimine sisselogimise kaudu;
- Autentimine sertifikaadi kaudu;

Vaatame huvitavat tingimust UUID_VALIDATED, see kontrollib, et autentitud kasutaja on tõepoolest tulnud seadmega, millel on lubatud UDID. Kirjeldus kasutajakonto, tingimused on järgmised:

Autoriseerimisprofiil, mida kasutatakse 1,2,3 etappidel, näeb välja järgnev:

Kontrollida, kuidas klient AnyConnect edastab UDID, saame vaadata ISE kliendi sessiooni üksikasju. Üksikasjadest näeme, et AnyConnect edastab läbi mehhanismi ACIDEX , mitte ainult platvormi andmeid, vaid ka seadme UDID nagu Cisco-AV-PAIR:

Pöörame tähelepanu kasutajale väljastatud sertifikaadile ja väljale Initsiaalid (I), mis kasutatakse selleks, et kasutada seda teise taseme MFA autentimiseks Cisco DUO:

DUO Radius Proxyl näeme logis selgelt, kuidas autentimissoov läheb, see toimub UDID kasutamisega kasutajanime vormis:

DUO portaalilt näeme edukat autentimist:

Ja kasutaja omadustes on mul seadistatud ALIAS, mida ma kasutasin sisselogimiseks, see ongi UDID, mis on lubatud PC sisselogimiseks:

Tulemusena saime:
- Kasutaja ja seadme mitmeastmelise autentimise;
- Kaitse kasutaja seadme petmise eest;
- Seadme oleku hindamine;
- Potentsiaal äriliseks tugevdamiseks domeeni masinsertifikaadiga jne;
- Täiteline lahendus kaugtöökoha kaitseks, millel on automaatselt juurutatavad turvamo Modulid;
Artiklite lingid Cisco VPN seerias:
Allikas: habr.com
