NĂ« kĂ«tĂ« artikull do tĂ« doja tĂ« ofroj njĂ« udhĂ«zues hap pas hapi se si mund tĂ« implementoni shpejt skemĂ«n mĂ« tĂ« shkallĂ«zueshme nĂ« kĂ«tĂ« moment VPN pĂ«r Qasje tĂ« LargĂ«t qasje mbi bazĂ«n e AnyConnect dhe Cisco ASA â Grupi i Load Balancing pĂ«r VPN.
Hyrje: Shumë kompani në gjithë botën, për shkak të situatës aktuale me COVID-19, po bëjnë përpjekje për të kaluar punonjësit e tyre në mënyrë të largët. Për shkak të masivitetit të kalimit në punën e shkëputur, ngarkesa në porta VPN ekzistuese të kompanive rritet ndjeshëm dhe kërkohet një mundësi shumë e shpejtë për shkallëzim. Nga ana tjetër, shumë kompani janë të detyruara të mësojnë për një koncept si puna e largët nën presion.
Për të ndihmuar bizneset të realizojnë shpejt një qasje VPN të përshtatshme, të sigurt dhe të shkallëzueshme për punonjësit, kompania Cisco ofron deri në 13 javë licenca për klientin multifunksional SSL-VPN AnyConnect. .
.
Kam përgatitur një udhëzues hap pas hapi për një variant të thjeshtë të shpërndarjes së VPN Load-Balancing si teknologji më e shkallëzueshme VPN.
Shembulli i mëposhtëm do të jetë mjaft i thjeshtë në aspektin e algoritmeve të autentikimit dhe autorizimit që aplikon, por do të jetë një variant i mirë për një fillim të shpejtë (diçka që shumë njerëz e kanë të nevojshme tani) me mundësinë e adaptimit të thelluar sipas nevojave gjatë procesit të shpërndarjes.
Informacione të shkurtra: Teknologjia VPN Load Balancing Cluster nuk është një funksion failover dhe as një funksion klasifikimi në kuptimin e saj natyror; me këtë teknologji mund të bashkohen modele të ndryshme ASA (me disa kufizime) me qëllim të balancimit të ngarkesës së lidhjeve Remote-Access VPN. Sinhronizimi i seancave dhe konfigurimeve mes nodave të këtij klasteri mungon, por është e mundur balancimi automatik i ngarkesës së lidhjeve VPN dhe sigurimi i qëndrueshmërisë së lidhjeve VPN derisa të mbetet të paktën një nod aktiv në klaster. Ngarkesa në klaster balancohet automatikisht në përputhje me ngarkesën e nodave në numrin e seancave VPN.
Për disponueshmëri të qëndrueshme të nodëve të caktuar të grupit (nëse kërkohet), mund të përdoret një filever, kështu që lidhja aktive do të përpunohët nga nodi kryesor i fileverit. Fileveri nuk është një kusht thelbësor për sigurimin e disponueshmërisë brenda grupit të Load-Balancing; vetë grupi, në rast të dështimit të nodës, do ta transferojë seancën e përdoruesit në një nod tjetër të gjallë, megjithatë pa ruajtur statusin e lidhjes, gjë që sigurohet nga fileveri. Prandaj, është e mundur të kombinoni këto dy teknologji sipas nevojës.
Grupi VPN Load-Balancing mund të përmbajë më shumë se dy nodë.
Grupi VPN Load-Balancing mbështetet në ASA 5512-X dhe përtej.
Duke pasur parasysh se çdo ASA brenda grupit VPN Load-Balancing është një njësisë e pavarur sa i përket konfigurimit, ne kryejmë të gjitha etapet e konfigurimit individualisht në çdo pajisje të veçantë.
Topologjia logjike e shembujve të dhënë:

Vendosja fillestare:
Ne shtrijmë nga imazhi instancat ASAv të nevojshme (ASAv5/10/30/50).
Ne caktojmë ndërfaqet INSIDE/OUTSIDE në VLAN të njëjtë (Outside në VLAN e vet, INSIDE në të vetin, por të përbashkët në kuadër të klashtës, shih topologjinë), e rëndësishme është që ndërfaqet e një tipi të ndodhen në të njëjtin segment L2.
Licensat:
- Në momentin e instalimit, ASAv nuk do të ketë asnjë licencë dhe do të ketë një kufizim në performancën prej 100 kbit/sec.
- Për të instaluar licencën, ju nevojitet të gjeneroni një token në llogarinë tuaj Smart-Account: -> Smart Software Licensing
- Në dritaren që hapet, pas kësaj klikoni butonin New Token

- Sigurohuni që në dritaren e hapur të ketë një fushë aktive dhe të jetë shënuar Allow export-controlled functionality⊠Pa këtë fushë aktive, nuk do të jeni në gjendje të përdorni funksionet e enkriptimit të fortë dhe për rrjedhojë VPN. Nëse kjo fushë nuk është aktive, ju lutemi kontaktoni ekipin tuaj të llogarive për aktivizimin.

- Pas klikimit të butonit Create Token, do të krijohet një token, që ne do ta përdorim për të marrë licencën për ASAv, do ta kopjojmë atë:

- Do të përsërisim hapat C,D,E për çdo ASAv të instaluar.
- Për ta bërë më të lehtë kopjimin e token-it, do të lejojmë përkohësisht telnet. Do të konfiguroni çdo ASA (shembulli më poshtë tregon konfigurimet për ASA-1). telnet nuk outside nuk punon, nëse është shumë e nevojshme, ndryshoni security-level në 100 në outside, pastaj kthejeni mbrapa.
! ciscoasa(config)# int gi0/0 ciscoasa(config)# nameif outside ciscoasa(config)# ip address 192.168.31.30 255.255.255.0 ciscoasa(config)# no shut ! ciscoasa(config)# int gi0/1 ciscoasa(config)# nameif inside ciscoasa(config)# ip address 192.168.255.2 255.255.255.0 ciscoasa(config)# no shut ! ciscoasa(config)# telnet 0 0 inside ciscoasa(config)# username admin password cisco priv 15 ciscoasa(config)# ena password cisco ciscoasa(config)# aaa authentication telnet console LOCAL ! ciscoasa(config)# route outside 0 0 192.168.31.1 ! ciscoasa(config)# wr !- PĂ«r regjistrimin e token-it nĂ« ĐŸĐ±Đ»Đ°ĐșŃ Smart-Account Ă«shtĂ« e nevojshme tĂ« sigurohet qasje nĂ« Internet pĂ«r ASA. .
Nëse e shohim shkurt, ASA nevojitet:
- qasje për HTTPS në Internet;
- sinkronizimi i kohës (për korrektësi me NTP);
- serveri DNS i shkruajtur;
- Hyrim nëpërmjet telnet në ASA tonë dhe kryejmë konfigurimet për aktivizimin e licencës përmes Smart-Account.
! ciscoasa(config)# clock set 19:21:00 Mar 18 2020 ciscoasa(config)# clock timezone MSK 3 ciscoasa(config)# ntp server 192.168.99.136 ! ciscoasa(config)# dns domain-lookup outside ciscoasa(config)# DNS server-group DefaultDNS ciscoasa(config-dns-server-group)# name-server 192.168.99.132 ! ! Le të kontrollojmë funksionimin e DNS: ! ciscoasa(config-dns-server-group)# ping ya.ru Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 87.250.250.242, timeout is 2 seconds: !!!!! ! ! Le të kontrollojmë sinkronizimin NTP: ! ciscoasa(config)# show ntp associations address ref clock st when poll reach delay offset disp *~192.168.99.136 91.189.94.4 3 63 64 1 36.7 1.85 17.5 * master (synced), # master (unsynced), + selected, - candidate, ~ configured ! ! Të vendosim konfigurimin e ASAv tonë për Smart-Licensing (sipas profilit tuaj, në rastin tim 100M për shembull) ! ciscoasa(config)# license smart ciscoasa(config-smart-lic)# feature tier standard ciscoasa(config-smart-lic)# throughput level 100M ! ! Nëse është e nevojshme, mund të konfiguroni aksesin në Internet përmes një proxy, përdorni bllokun e komandave të mëposhtme: !call-home ! http-proxy ip_address port port ! ! Më pas vendosim tokenin e kopjuar nga portali Smart-Account (<token>) dhe regjistrojmë licencën ! ciscoasa(config)# end ciscoasa# license smart register idtoken <token>- Po kontrollojmë nëse pajisja ka regjistruar me sukses licencën dhe opsionet e enkriptimit janë të qasshme:


Po konfiguroni SSL-VPN bazë në çdo gateway
- Më pas, konfigurojmë aksesin përmes SSH dhe ASDM:
ciscoasa(config)# ssh ver 2 ciscoasa(config)# aaa authentication ssh console LOCAL ciscoasa(config)# aaa authentication http console LOCAL ciscoasa(config)# hostname vpn-demo-1 vpn-demo-1(config)# domain-name ashes.cc vpn-demo-1(config)# cry key gen rsa general-keys modulus 4096 vpn-demo-1(config)# ssh 0 0 inside vpn-demo-1(config)# http 0 0 inside ! ! Ne do të ngremë serverin HTTPS për ASDM në portin 445 për të mos u përjashtuar nga portali SSL-VPN ! vpn-demo-1(config)# http server enable 445 !- Për të përdorur ASDM, së pari duhet ta shkarkoni nga saiti cisco.com, në rastin tim ky është skedari i mëposhtëm:

- Për të funksionuar klienti AnyConnect, duhet të ngarkohet një imazh për çdo sistem operativ të përdorur në desktopin e klientit (i planifikuar për përdorim Linux/Windows/MAC) që do të nevojitet skedari me Paketa e Zhvillimit të Headend në emrin:

- Skedarët e shkarkuar mund të vendosen, për shembull, në një server FTP dhe të ngarkohen në çdo ASA të veçantë:

- Konfigurojmë ASDM dhe certifikatën Self-Signed për SSL-VPN (në prodhim rekomandohet që certifikata të jetë e besueshme). FQDN i vendosur i adresës virtuale të klasterit (vpn-demo.ashes.cc), si dhe çdo FQDN i asociuar me adresën ekstern të secilit nod të klasterit duhet të zgjidhet në zonën ekstern të DNS në adresën IP të ndërfaqes OUTSIDE (ose në adresën e mapped, nëse përdoret përcjellja e portit udp/443 (DTLS) dhe tcp/443 (TLS)). Informacione të detajuara mbi kërkesat për certifikatën janë të specifikuara në seksionin Verifikimi i Certifikatës dokumentacion.
! vpn-demo-1(config)# crypto ca trustpoint SELF vpn-demo-1(config-ca-trustpoint)# enrollment self vpn-demo-1(config-ca-trustpoint)# fqdn vpn-demo.ashes.cc vpn-demo-1(config-ca-trustpoint)# subject-name cn=*.ashes.cc, ou=ashes-lab, o=ashes, c=sq vpn-demo-1(config-ca-trustpoint)# serial-number vpn-demo-1(config-ca-trustpoint)# crl configure vpn-demo-1(config-ca-crl)# cry ca enroll SELF % The fully-qualified domain name in the certificate will be: vpn-demo.ashes.cc Generate Self-Signed Certificate? [yes/no]: yes vpn-demo-1(config)# ! vpn-demo-1(config)# sh cry ca certificates Certificate Status: Available Certificate Serial Number: 4d43725e Certificate Usage: General Purpose Public Key Type: RSA (4096 bits) Signature Algorithm: SHA256 with RSA Encryption Issuer Name: serialNumber=9A439T02F95 hostname=vpn-demo.ashes.cc cn=*.ashes.cc ou=ashes-lab o=ashes c=sq Subject Name: serialNumber=9A439T02F95 hostname=vpn-demo.ashes.cc cn=*.ashes.cc ou=ashes-lab o=ashes c=sq Validity Date: start date: 00:16:17 MSK Mar 19 2020 end date: 00:16:17 MSK Mar 17 2030 Storage: config Associated Trustpoints: SELF CA Certificate Status: Available Certificate Serial Number: 0509 Certificate Usage: General Purpose Public Key Type: RSA (4096 bits) Signature Algorithm: SHA1 with RSA Encryption Issuer Name: cn=QuoVadis Root CA 2 o=QuoVadis Limited c=BM Subject Name: cn=QuoVadis Root CA 2 o=QuoVadis Limited c=BM Validity Date: start date: 21:27:00 MSK Nov 24 2006 end date: 21:23:33 MSK Nov 24 2031 Storage: config Associated Trustpoints: _SmartCallHome_ServerCA- Për të verifikuar funksionimin e ASDM, mos harroni të specifikoni portin, për shembull:

- Le të bëjmë konfigurimet baze të tunelit:
- Do të mundësojmë lidhjen me rrjetin korporativ përmes një tuneli, ndërsa interneti do të shkojë direkt (nuk është metoda më e sigurt në mungesë të mbrojtjes në hostin e lidhur, mundësia për ndërhyrje përmes një hosti të infektuar dhe humbje të të dhënave korporative, opsioni split-tunnel-policy tunnelall do të dërgojë gjithë trafikun e hostit në tunel. Megjithatë Split-Tunnel ofron mundësinë për të lehtësuar portalin VPN dhe për të mos përpunuar trafikun e internetit të hostit)
- Do t'u ndajmë hosteve në tunel adresat nga subneti 192.168.20.0/24 (puli me adresat nga 10 deri në 30 (për nodën #1)). Në secilën nodë të klasit VPN, puli duhet të jetë i veçantë.
- Do të realizojmë autentifikimin bazik me një përdorues të krijuar lokal në ASA (nuk rekomandohet, është metoda më e thjeshtë), është më mirë të bëjmë autentifikimin përmes LDAP/RADIUS, dhe akoma më mirë të lidhim Autentifikimin në Dytë (MFA), për shembull Cisco DUO.
! vpn-demo-1(config)# ip local pool vpn-pool 192.168.20.10-192.168.20.30 mask 255.255.255.0 ! vpn-demo-1(config)# access-list split-tunnel standard permit 192.168.0.0 255.255.0.0 ! vpn-demo-1(config)# group-policy SSL-VPN-GROUP-POLICY internal vpn-demo-1(config)# group-policy SSL-VPN-GROUP-POLICY attributes vpn-demo-1(config-group-policy)# vpn-tunnel-protocol ssl-client vpn-demo-1(config-group-policy)# split-tunnel-policy tunnelspecified vpn-demo-1(config-group-policy)# split-tunnel-network-list value split-tunnel vpn-demo-1(config-group-policy)# dns-server value 192.168.99.132 vpn-demo-1(config-group-policy)# default-domain value ashes.cc vpn-demo-1(config)# tunnel-group DefaultWEBVPNGroup general-attributes vpn-demo-1(config-tunnel-general)# default-group-policy SSL-VPN-GROUP-POLICY vpn-demo-1(config-tunnel-general)# address-pool vpn-pool ! vpn-demo-1(config)# username dkazakov password cisco vpn-demo-1(config)# username dkazakov attributes vpn-demo-1(config-username)# service-type remote-access ! vpn-demo-1(config)# ssl trust-point SELF vpn-demo-1(config)# webvpn vpn-demo-1(config-webvpn)# enable outside vpn-demo-1(config-webvpn)# anyconnect image disk0:/anyconnect-win-4.8.03036-webdeploy-k9.pkg vpn-demo-1(config-webvpn)# anyconnect enable !- (OPTIVELY): Në shembullin e mësipërm përdorëm një përdorues lokal në MSE për autentifikimin e përdoruesve të largët, që natyrisht është paksa e zbatueshme jashtë laboratorit. Do të jap një shembull se si ta adaptojmë shpejt konfigurimin për autentifikimin në RADIUS server, për shembull është përdorur Cisco Identity Services Engine:
vpn-demo-1(config-aaa-server-group)# autorizim dinamik vpn-demo-1(config-aaa-server-group)# përllogaritje-interim vpn-demo-1(config-aaa-server-group)# aaa-server RADIUS (jashtë) host 192.168.99.134 vpn-demo-1(config-aaa-server-host)# çelësi cisco vpn-demo-1(config-aaa-server-host)# dal vpn-demo-1(config)# grup-tuneli DefaultWEBVPNGroup atribute-të-përgjithshme vpn-demo-1(config-tunnel-general)# grup-serveri të-autentifikimit RADIUS !Kjo integrim ofroi mundësinë jo vetëm për të integruar shpejt procedurën e autentifikimit me shërbimin e katalogëve AD, por gjithashtu për të dalluar përkatësinë e kompjuterit të lidhur me AD, për të kuptuar nëse kjo është një pajisje korporate apo personale dhe për të bërë një vlerësim të gjendjes së pajisjes së lidhur.


- Do të bëjmë konfigurimin Transparent NAT në mënyrë që trafiku midis klientit dhe burimeve të rrjetit korporativ të mos NAT-izohet:
vpn-demo-1(config-network-object)# subnet 192.168.20.0 255.255.255.0 ! vpn-demo-1(config)# nat (inside, outside) burimi static të gjithë të gjithë destinacioni static vpn-users vpn-users no-proxy-arp- (OPSIONALE): Për të dalë klientët tanë në Internet përmes ASA (kur përdoret tunnelall opsionet) duke përdorur PAT, si dhe për të dalë përmes të njëjtit ndërfaqe OUTSIDE, nga e cila ato lidhen, duhet të bëjmë këto konfigurime
vpn-demo-1(config-network-object)# nat (jashtĂ«, jashtĂ«) burimi dinamik vpn-users ndĂ«rfaqe vpn-demo-1(config)# nat (brenda, jashtĂ«) burimi dinamik tĂ« gjithĂ« ndĂ«rfaqe vpn-demo-1(config)# trafiku-i-samĂ«-siguri lejo intra-interfacen !- ĂshtĂ« shumĂ« e rĂ«ndĂ«sishme, kur pĂ«rdorni klasterin, t'i jepni rrjetit tĂ« brendshĂ«m mundĂ«sinĂ« pĂ«r tĂ« kuptuar se nĂ« cilin ASA duhet tĂ« rruazoni trafikun e kundĂ«rt pĂ«r pĂ«rdoruesit; pĂ«r kĂ«tĂ« duhet tĂ« bĂ«ni redistribucionin e rrugĂ«ve /32 adresave qĂ« i jepni klientĂ«ve.
Aktualisht, klasteri ende nuk është konfiguruar, por kemi tashmë VPN gateway të funksionshëm me të cilët mund të lidhemi individualisht përmes FQDN ose IP.

Ne e shohim klientin e lidhur në tabelën e routing të ASA-së së parë:

Për të siguruar që e gjithë klasteri ynë VPN dhe të gjithë rrjeti korporativ të dinë rrugën për klientin tonë, do të realizojmë redistribuimin e prefixit të klientit në protokollin e routing-ut dinamik, për shembull OSPF:
! vpn-demo-1(config)# route-map RMAP-VPN-REDISTRIBUTE permit 1 vpn-demo-1(config-route-map)# match ip address VPN-REDISTRIBUTE ! vpn-demo-1(config)# router ospf 1 vpn-demo-1(config-router)# network 192.168.255.0 255.255.255.0 area 0 vpn-demo-1(config-router)# log-adj-changes vpn-demo-1(config-router)# redistribute static metric 5000 subnets route-map RMAP-VPN-REDISTRIBUTETani tani tani tani tani tani tani tani tani tani, po tani tani nga dy VPN tani, dhe të kthehet tani tani nga tani, do të vijnë në tani VPN tani:

Tani kalojmë në konfigurimin e Load-Balancing të klasterit.
Adresa 192.168.31.40 do tĂ« pĂ«rdoret si Virtual IP (VIP â tĂ« cilit do t'i lidhin fillimisht tĂ« gjithĂ« klientĂ«t VPN), nga kjo adresĂ« Mjeshtri i klasterit do tĂ« bĂ«jĂ« REDIRECT nĂ« nodin mĂ« pak tĂ« ngarkuar tĂ« klasterit. Mos harroni tĂ« regjistroni rekordet e DNS tĂ« drejtpĂ«rdrejta dhe tĂ« kundĂ«rta si pĂ«r çdo adresĂ« tĂ« jashtme/FQDN tĂ« çdo node tĂ« klasterit, ashtu edhe pĂ«r VIP.
vpn-demo-1(config)# vpn load-balancing vpn-demo-1(config-load-balancing)# interface lbpublic outside vpn-demo-1(config-load-balancing)# interface lbprivate inside vpn-demo-1(config-load-balancing)# priority 10 vpn-demo-1(config-load-balancing)# cluster ip address 192.168.31.40 vpn-demo-1(config-load-balancing)# cluster port 4000 vpn-demo-1(config-load-balancing)# redirect-fqdn enable vpn-demo-1(config-load-balancing)# cluster key cisco vpn-demo-1(config-load-balancing)# cluster encryption vpn-demo-1(config-load-balancing)# cluster port 9023 vpn-demo-1(config-load-balancing)# participate vpn-demo-1(config-load-balancing)#- Kontrollojmë funksionin e klasterit me dy klientë të lidhur:

- Do ta bëjmë përvojën e punës së klientit më të lehtë me profilin AnyConnect që shkarkohet automatikisht përmes ASDM.

E emërojmë profilin në mënyrë të përshtatshme dhe e lidhim politikën tonë grupore me të:

Pas lidhjes së ardhshme të klientit, ky profil do të shkarkohet dhe instalohet automatikisht në klientin AnyConnect, kështu që nëse nevojitet lidhja, mjafton ta zgjedhim atë nga lista:

Duke qenë se, duke përdorur ASDM, kemi krijuar këtë profil vetëm në një ASA, mos harroni të përsërisni veprimet në ASA-të e tjera të klasterit.
Dalja: Kështu, ne shpejt zhvendosëm një klaster të disa portave VPN me balancim automatik të ngarkesës. Shtimi i nyjeve të reja në klaster nuk është një problem, duke ofruar një shkallëzim horizontal të thjeshtë përmes shpërndarjes së makinave virtuale ASAv ose duke përdorur ASA të harduerëve. Klienti multifunksional AnyConnect mund të zgjasë ndjeshëm mundësitë e lidhjes së sigurt në distancë duke përdorur funksionin Posture (vlerësimi i gjendjes), i cili aplikohet më efektivisht së bashku me sistemin e kontrollit dhe regjistrimit qendror të aksesit Identity Services Engine.
Burimi: habr.com


















