Pagpapatupad ng konsepto ng lubos na secure na malayuang pag-access

Ang pagpapatuloy ng serye ng mga artikulo sa paksa ng organisasyon Remote-Access VPN access Hindi ko maiwasang ibahagi ang aking kawili-wiling karanasan sa pag-deploy lubos na ligtas na pagsasaayos ng VPN. Ang isang di-maliit na gawain ay ipinakita ng isang customer (may mga imbentor sa mga nayon ng Russia), ngunit ang Hamon ay tinanggap at malikhaing ipinatupad. Ang resulta ay isang kawili-wiling konsepto na may mga sumusunod na katangian:

  1. Maraming mga kadahilanan ng proteksyon laban sa pagpapalit ng terminal device (na may mahigpit na pagbubuklod sa gumagamit);
    • Pagtatasa sa pagsunod ng PC ng user sa nakatalagang UDID ng pinapayagang PC sa database ng pagpapatunay;
    • Gamit ang MFA gamit ang PC UDID mula sa sertipiko para sa pangalawang pagpapatunay sa pamamagitan ng Cisco DUO (Maaari kang mag-attach ng anumang SAML/Radius compatible);
  2. Multi-factor na pagpapatotoo:
    • Sertipiko ng user na may field verification at pangalawang pagpapatotoo laban sa isa sa kanila;
    • Pag-login (hindi mababago, kinuha mula sa sertipiko) at password;
  3. Tinatantya ang estado ng nagkokonektang host (Posture)

Mga bahagi ng solusyon na ginamit:

  • Cisco ASA (VPN Gateway);
  • Cisco ISE (Authentication / Authorization / Accounting, State Evaluation, CA);
  • Cisco DUO (Multi-Factor Authentication) (Maaari kang mag-attach ng anumang SAML/Radius compatible);
  • Cisco AnyConnect (Multi-purpose agent para sa mga workstation at mobile OS);

Magsimula tayo sa mga kinakailangan ng customer:

  1. Ang user ay dapat, sa pamamagitan ng kanyang Login/Password authentication, ay ma-download ang AnyConnect client mula sa VPN gateway; lahat ng kinakailangang AnyConnect module ay dapat na awtomatikong mai-install alinsunod sa patakaran ng user;
  2. Dapat ay awtomatikong makapag-isyu ng certificate ang user (para sa isa sa mga senaryo, ang pangunahing senaryo ay manu-manong pagpapalabas at pag-upload sa isang PC), ngunit nagpatupad ako ng awtomatikong isyu para sa pagpapakita (hindi pa huli para alisin ito).
  3. Ang pangunahing pagpapatunay ay dapat maganap sa ilang mga yugto, una ay mayroong pagpapatunay ng sertipiko na may pagsusuri sa mga kinakailangang patlang at ang kanilang mga halaga, pagkatapos ay mag-login/password, sa pagkakataong ito lamang ang pangalan ng gumagamit na tinukoy sa patlang ng sertipiko ay dapat na maipasok sa window ng pag-login Pangalan ng Paksa (CN) walang kakayahang mag-edit.
  4. Kailangan mong tiyakin na ang device kung saan ka nagla-log in ay ang corporate laptop na ibinigay sa user para sa malayuang pag-access, at hindi sa ibang bagay. (Maraming mga pagpipilian ang ginawa upang matugunan ang pangangailangang ito)
  5. Ang estado ng connecting device (sa yugtong ito ng PC) ay dapat masuri sa pamamagitan ng pagsusuri ng isang buong mabigat na talahanayan ng mga kinakailangan ng customer (summarizing):
    • Mga file at ang kanilang mga pag-aari;
    • Mga entry sa rehistro;
    • Mga patch ng OS mula sa ibinigay na listahan (mamaya SCCM integration);
    • Availability ng Anti-Virus mula sa isang partikular na tagagawa at kaugnayan ng mga lagda;
    • Aktibidad ng ilang mga serbisyo;
    • Availability ng ilang mga naka-install na programa;

Upang magsimula, iminumungkahi ko na tiyak na tingnan mo ang video demonstration ng resultang pagpapatupad sa Youtube (5 minuto).

Ngayon iminumungkahi kong isaalang-alang ang mga detalye ng pagpapatupad na hindi sakop sa video clip.

Ihanda natin ang AnyConnect profile:

Nagbigay ako dati ng isang halimbawa ng paglikha ng isang profile (sa mga tuntunin ng isang menu item sa ASDM) sa aking artikulo sa setting VPN Load-Balancing Cluster. Ngayon ay nais kong hiwalay na tandaan ang mga opsyon na kakailanganin namin:

Sa profile, ipahiwatig namin ang gateway ng VPN at ang pangalan ng profile para sa pagkonekta sa end client:

Pagpapatupad ng konsepto ng lubos na secure na malayuang pag-access

I-configure natin ang awtomatikong pagpapalabas ng isang sertipiko mula sa gilid ng profile, na nagpapahiwatig, sa partikular, ang mga parameter ng sertipiko at, sa katangian, bigyang-pansin ang field Inisyal (I), kung saan ang isang partikular na halaga ay manu-manong ipinasok GINAWA MO test machine (Natatanging device identifier na binuo ng Cisco AnyConnect client).

Pagpapatupad ng konsepto ng lubos na secure na malayuang pag-access

Dito gusto kong gumawa ng lyrical digression, dahil inilalarawan ng artikulong ito ang konsepto; para sa mga layunin ng pagpapakita, ang UDID para sa pag-isyu ng isang sertipiko ay ipinasok sa field na Initials ng AnyConnect profile. Siyempre, sa totoong buhay, kung gagawin mo ito, ang lahat ng mga kliyente ay makakatanggap ng isang sertipiko na may parehong UDID sa larangang ito at walang gagana para sa kanila, dahil kailangan nila ang UDID ng kanilang partikular na PC. Ang AnyConnect, sa kasamaang-palad, ay hindi pa nagpapatupad ng pagpapalit ng field ng UDID sa profile ng kahilingan sa sertipiko sa pamamagitan ng isang variable ng kapaligiran, tulad ng ginagawa nito, halimbawa, sa isang variable %USER%.

Kapansin-pansin na ang customer (ng sitwasyong ito) sa una ay nagpaplano na mag-isa na mag-isyu ng mga sertipiko na may ibinigay na UDID sa manu-manong mode sa mga naturang Protected PC, na hindi isang problema para sa kanya. Gayunpaman, para sa karamihan sa atin gusto namin ang automation (well, para sa akin ito ay totoo =)).

At ito ang maiaalok ko sa mga tuntunin ng automation. Kung ang AnyConnect ay hindi pa nakakapag-isyu ng isang sertipiko nang awtomatiko sa pamamagitan ng pabago-bagong pagpapalit sa UDID, kung gayon mayroong isa pang paraan na mangangailangan ng kaunting malikhaing pag-iisip at mahusay na mga kamay - sasabihin ko sa iyo ang konsepto. Una, tingnan natin kung paano nabuo ang UDID sa iba't ibang operating system ng ahente ng AnyConnect:

  • Windows β€” SHA-256 hash ng kumbinasyon ng DigitalProductID at Machine SID registry key
  • OSX β€” SHA-256 hash PlatformUUID
  • Linux β€” SHA-256 hash ng UUID ng root partition.
  • Apple iOS β€” SHA-256 hash PlatformUUID
  • Android – Tingnan ang dokumento sa link

Alinsunod dito, lumikha kami ng isang script para sa aming corporate Windows OS, gamit ang script na ito ay lokal naming kinakalkula ang UDID gamit ang mga kilalang input at bumubuo ng isang kahilingan para sa pag-isyu ng isang sertipiko sa pamamagitan ng pagpasok ng UDID na ito sa kinakailangang field, sa pamamagitan ng paraan, maaari ka ring gumamit ng isang makina sertipiko na ibinigay ng AD (sa pamamagitan ng pagdaragdag ng dobleng pagpapatunay gamit ang isang sertipiko sa scheme Maramihang Sertipiko).

Ihanda natin ang mga setting sa panig ng Cisco ASA:

Gumawa tayo ng TrustPoint para sa server ng ISE CA, ito ang mag-iisyu ng mga sertipiko sa mga kliyente. Hindi ko isasaalang-alang ang pamamaraan ng pag-import ng Key-Chain; isang halimbawa ang inilarawan sa aking artikulo sa pag-setup VPN Load-Balancing Cluster.

crypto ca trustpoint ISE-CA
 enrollment terminal
 crl configure

Kino-configure namin ang pamamahagi ayon sa Tunnel-Group batay sa mga panuntunan alinsunod sa mga field sa certificate na ginagamit para sa authentication. Ang AnyConnect profile na ginawa namin sa nakaraang yugto ay na-configure din dito. Pakitandaan na ginagamit ko ang halaga SECUREBANK-RA, para ilipat ang mga user na may ibinigay na certificate sa isang tunnel group SECURE-BANK-VPN, pakitandaan na mayroon akong field na ito sa column ng kahilingan sa sertipiko ng profile ng 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
!

Pagse-set up ng mga server ng pagpapatunay. Sa aking kaso, ito ay ISE para sa unang yugto ng pagpapatunay at DUO (Radius Proxy) bilang 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
!

Gumagawa kami ng mga patakaran ng grupo at mga pangkat ng tunnel at ang kanilang mga pantulong na bahagi:

Pangkat ng lagusan DefaultWEBVPNGroup pangunahing gagamitin upang i-download ang kliyente ng AnyConnect VPN at mag-isyu ng isang sertipiko ng gumagamit gamit ang SCEP-Proxy function ng ASA; para dito mayroon kaming mga kaukulang opsyon na na-activate pareho sa tunnel group mismo at sa nauugnay na patakaran ng grupo AC-Download, at sa naka-load na AnyConnect na profile (mga field para sa pag-isyu ng certificate, atbp.). Gayundin sa patakaran ng pangkat na ito ipinapahiwatig namin ang pangangailangang mag-download ISE Posture Module.

Pangkat ng lagusan SECURE-BANK-VPN ay awtomatikong gagamitin ng kliyente kapag nagpapatotoo gamit ang ibinigay na sertipiko sa nakaraang yugto, dahil, alinsunod sa Certificate Map, partikular na mahuhulog ang koneksyon sa pangkat ng tunnel na ito. Sasabihin ko sa iyo ang tungkol sa mga kagiliw-giliw na pagpipilian dito:

  • pangalawang-authentication-server-group DUO # Itakda ang pangalawang pagpapatunay sa DUO server (Radius Proxy)
  • username-from-certificateCN # Para sa pangunahing pagpapatotoo, ginagamit namin ang CN field ng certificate para mamana ang login ng user
  • pangalawang-username-mula sa-certificate I # Para sa pangalawang pagpapatotoo sa DUO server, ginagamit namin ang username na kinuha at ang Initials (I) na mga field ng certificate.
  • pre-fill-username client # gawin ang username na paunang napunan sa window ng pagpapatunay nang walang kakayahang magbago
  • pangalawang-pre-fill-username client itago ang use-common-password push # Itatago namin ang login/password input window para sa pangalawang pagpapatunay na DUO at ginagamit ang paraan ng pag-abiso (sms/push/telepono) - dock para humiling ng pagpapatunay sa halip na ang field ng password dito

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

Susunod na lumipat tayo sa ISE:

Nag-configure kami ng lokal na user (maaari mong gamitin ang AD/LDAP/ODBC, atbp.), para sa pagiging simple, gumawa ako ng lokal na user sa ISE mismo at itinalaga ito sa field paglalarawan UDID PC kung saan siya ay pinapayagang mag-log in sa pamamagitan ng VPN. Kung gagamit ako ng lokal na pagpapatotoo sa ISE, ako ay limitado sa isang aparato lamang, dahil walang maraming mga patlang, ngunit sa mga database ng pagpapatunay ng third-party hindi ako magkakaroon ng mga naturang paghihigpit.

Pagpapatupad ng konsepto ng lubos na secure na malayuang pag-access

Tingnan natin ang patakaran sa awtorisasyon, nahahati ito sa apat na yugto ng koneksyon:

  • 1 Stage β€” Patakaran para sa pag-download ng ahente ng AnyConnect at pag-isyu ng sertipiko
  • 2 Stage β€” Pangunahing patakaran sa pagpapatunay Login (mula sa certificate)/Password + Certificate na may UDID validation
  • 3 Stage β€” Pangalawang pagpapatotoo sa pamamagitan ng Cisco DUO (MFA) gamit ang UDID bilang username + pagtatasa ng Estado
  • 4 Stage β€” Ang huling awtorisasyon ay nasa estado:
    • Sumusunod;
    • UDID validation (mula sa certificate + login binding),
    • Cisco DUO MFA;
    • Pagpapatunay sa pamamagitan ng pag-login;
    • Pagpapatunay ng sertipiko;

Pagpapatupad ng konsepto ng lubos na secure na malayuang pag-access

Tingnan natin ang isang kawili-wiling kondisyon UUID_VALIDATE, mukhang nagmula talaga sa isang PC ang nagpapatunay na user na may pinapayagang UDID na nauugnay sa field paglalarawan account, ang mga kondisyon ay ganito:

Pagpapatupad ng konsepto ng lubos na secure na malayuang pag-access

Ang profile ng awtorisasyon na ginamit sa mga yugto 1,2,3 ay ang mga sumusunod:

Pagpapatupad ng konsepto ng lubos na secure na malayuang pag-access

Maaari mong suriin nang eksakto kung paano dumarating sa amin ang UDID mula sa AnyConnect client sa pamamagitan ng pagtingin sa mga detalye ng session ng kliyente sa ISE. Sa detalye makikita natin na ang AnyConnect sa pamamagitan ng mekanismo ACIDEX hindi lamang nagpapadala ng impormasyon tungkol sa platform, kundi pati na rin ang UDID ng device bilang Cisco-AV-PAIR:

Pagpapatupad ng konsepto ng lubos na secure na malayuang pag-access

Bigyang-pansin natin ang certificate na ibinigay sa user at sa field Inisyal (I), na ginagamit upang kunin ito bilang isang pag-login para sa pangalawang pagpapatunay ng MFA sa Cisco DUO:

Pagpapatupad ng konsepto ng lubos na secure na malayuang pag-access

Sa gilid ng DUO Radius Proxy sa log ay malinaw nating makikita kung paano ginawa ang kahilingan sa pagpapatunay, ito ay gumagamit ng UDID bilang username:

Pagpapatupad ng konsepto ng lubos na secure na malayuang pag-access

Mula sa portal ng DUO nakikita namin ang isang matagumpay na kaganapan sa pagpapatotoo:

Pagpapatupad ng konsepto ng lubos na secure na malayuang pag-access

At sa mga pag-aari ng gumagamit ay itinakda ko ito Bansag, na ginamit ko para sa pag-login, ito naman ang UDID ng PC na pinapayagan para sa pag-login:

Pagpapatupad ng konsepto ng lubos na secure na malayuang pag-access

Bilang resulta, nakuha namin ang:

  • Multi-factor user at device authentication;
  • Proteksyon laban sa panggagaya ng device ng user;
  • Pagtatasa ng kondisyon ng aparato;
  • Potensyal para sa mas mataas na kontrol na may sertipiko ng domain machine, atbp.;
  • Komprehensibong proteksyon sa malayong lugar ng trabaho na may awtomatikong naka-deploy na mga module ng seguridad;

Mga link sa mga artikulo ng serye ng Cisco VPN:

Pinagmulan: www.habr.com

Magdagdag ng komento