ProHoster > Blog > Pangangasiwa > Pagpapatupad ng konsepto ng lubos na secure na malayuang pag-access
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:
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);
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;
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:
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;
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).
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.
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)
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:
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).
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
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.
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 paglalarawanUDID 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.
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;
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:
Ang profile ng awtorisasyon na ginamit sa mga yugto 1,2,3 ay ang mga sumusunod:
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:
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:
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:
Mula sa portal ng DUO nakikita namin ang isang matagumpay na kaganapan sa pagpapatotoo:
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:
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;