Kaitseväärse kaugjuhtimise kontseptsiooni rakendamine

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:

  1. 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);
  2. Mitme teguri autentimine:
    • Kasutaja sertifikaat koos väljade ja nende alusel teise autentimise kontrollimisega;
    • Kasutajanimi (muutmatu, võetud sertifikaadist) ja parool;
  3. Ü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:

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

Vaata videot

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 VPN Load-Balancing klastrist. 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:

Kaitseväärse kaugjuhtimise kontseptsiooni rakendamine

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

Kaitseväärse kaugjuhtimise kontseptsiooni rakendamine

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 lingi kaudu

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. VPN Load-Balancing klastrist.

crypto ca trustpoint ISE-CA
 enrollment terminal
 crl configure

Seame 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) – дока siin

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

Kaitseväärse kaugjuhtimise kontseptsiooni rakendamine

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;

Kaitseväärse kaugjuhtimise kontseptsiooni rakendamine

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:

Kaitseväärse kaugjuhtimise kontseptsiooni rakendamine

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

Kaitseväärse kaugjuhtimise kontseptsiooni rakendamine

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:

Kaitseväärse kaugjuhtimise kontseptsiooni rakendamine

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:

Kaitseväärse kaugjuhtimise kontseptsiooni rakendamine

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

Kaitseväärse kaugjuhtimise kontseptsiooni rakendamine

DUO portaalilt näeme edukat autentimist:

Kaitseväärse kaugjuhtimise kontseptsiooni rakendamine

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

Kaitseväärse kaugjuhtimise kontseptsiooni rakendamine

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

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster