NĂ« kĂ«tĂ« artikull do tĂ« doja tĂ« paraqes njĂ« udhĂ«zues hap pas hapi se si mund tĂ« rregullohet nĂ« mĂ«nyrĂ« tĂ« shpejtĂ« skema mĂ« tĂ«rheqĂ«se pĂ«r momentin. VPN me Qasje tĂ« LargĂ«t i bazuar nĂ« AnyConnect dhe Cisco ASA â Klastri i Balancimit tĂ« NgarkesĂ«s VPN.
Hyrje: Shumë kompani në mbarë botën, për shkak të situatës aktuale me COVID-19, po bëjnë përpjekje për të transferuar punonjësit e tyre në një mod të punës në distancë. Duke pasur parasysh masivitetin e kalimit në punën e distancës, ndjeshëm rritet ngarkesa në portat VPN ekzistuese të kompanive 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ë me ngut një koncept të ri siç është puna në distancë.
Për të ndihmuar biznesin të realizojë në kohë rekord një qasje VPN të përshtatshme, të sigurt dhe të shkallëzuar 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ë vendosjes së klastri të Balancimit të Ngarkesës VPN si teknologji më të shkallëzuar të VPN.
Shembulli në vijim do të jetë mjaft i thjeshtë në aspektin e algoritmeve të autentikimit dhe autorizimit të aplikuara, por do të jetë një opsion i mirë për një fillim të shpejtë (çka tani i mungon shumë) me mundësinë e një adaptimi të thelluar sipas nevojave gjatë procesit të vendosjes.
Informacione të shkurtra: Teknologjia e Klastrit të Balancimit të Ngarkesës VPN nuk është një failover dhe nuk është një funksion klastri në kuptimin e saj të natyrshëm; kjo teknologji mund të bashkojë modele të ndryshme ASA (me kufizime të caktuara) për qëllimin e balancimit të ngarkesës së lidhjeve VPN me Qasje të Largët. Sinkronizimi i seancave dhe konfigurimeve mes nodave të këtij klastri 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ë klasër. Ngarkesa në klasër balancohet automatikisht në varësi të ngarkesës së nodave sipas numrit të seancave VPN.
Për qëllime të qëndrueshmërisë së nodëve specifike të klasit (nëse është e nevojshme), mund të aplikohet një file server, duke bërë që lidhja aktive të përpunojë nga nodi kryesor i file server-it. File server-i nuk është një kusht i nevojshëm për sigurimin e qëndrueshmërisë brenda klasës Load-Balancing, klasa e vet në rast të dështimit të nodës do të transferojë sesionin e përdoruesit në një nod të gjallë tjetër, megjithatë pa mbajtjen e statusit të lidhjes, gjë që sigurohet përmes file server-it. Prandaj, mund të kombinohen këto dy teknologji sipas nevojës.
Klastri VPN Load-Balancing mund të përmbajë më shumë se dy nodë.
Klastri VPN Load-Balancing mbështetet në ASA 5512-X dhe më lart.
Duke qenë se çdo ASA brenda klasit VPN Load-Balancing është një njësi e pavarur në lidhje me konfigurimet e kryera, të gjitha etapat e konfigurimit i zhvillojmë individualisht në secilën pajisje të veçantë.
Topologjia logjike e shembullit të dhënë:

Zhvillimi fillestar:
Zhvillojmë nga imazhi ekzemplarët ASAv të nevojshëm (ASAv5/10/30/50).
Caktojmë interfeset INSIDE/OUTSIDE në VLAN të njëjta (Outside në VLAN e saj, INSIDE në VLAN e saj, por të përbashkët brenda klasës, shihni topologjinë), është e rëndësishme që interfeset e një lloji të jenë në të njëjtin segment L2.
Licencat:
- Në momentin e instalimit, ASAv nuk do të ketë asnjë licencë dhe do të jetë e kufizuar në një performancë prej 100 kbit/s.
- Për të instaluar licencën, ju nevojitet të gjeneroni një token në llogarinë tuaj Smart-Account: -> Licencimi i Softuerit Smart
- Në dritaren që hapet, klikoni butonin Token i Ri

- Sigurohuni që në dritaren e hapur të ketë një fushë aktive dhe të jetë e shënuar Lejo funksionalitetin e kontrolluar nga eksporti⊠Pa këtë fushë aktive, nuk do të jeni në gjendje të përdorni funksionet e forta të enkriptimit dhe për rrjedhojë VPN. Nëse kjo fushë nuk është aktive, ju lutemi kontaktoni ekipin tuaj të llogarive me një kërkesë për aktivizim.

- Pas klikimit të butonit Krijo Token, do të krijohet një token, i cili do të përdoret për të marrë licencën për ASAv, do ta kopjojmë atë:

- Përsërisim hapat C, D, E për çdo ASAv të zhvilluar.
- Për ta bërë më të lehtë kopjimin e token-it, do të lejojmë përkohësisht telnet. Do të konfiguroni secilën ASA (shembulli më poshtë ilustron konfigurimet në ASA-1). telnet nga jashtë nuk funksionon; nëse është shumë e nevojshme, ndryshoni shkallën e sigurisë në 100 në jashtë, pastaj kthejeni përsëri.
! 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 tokenit në Cloud-in Smart-Account, nevojitet të sigurohet akses në Internet për ASA, .
Nëse e shikojmë shkurt, ASA nevojitet për:
- akses HTTPS në Internet;
- sinkronizim kohor (më saktë për NTP);
- serverin DNS të shkruajtur;
- Hymë në ASA-t tona përmes telnet dhe bëjmë 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 ! ! Të kontrollojmë funksionimin e DNS: ! ciscoasa(config-dns-server-group)# ping ya.ru Tipi sekuence për të abortuar. Dërgimi i 5, 100-byte ICMP Echos në 87.250.250.242, koha e skadimit 2 sekonda: !!!!! ! ! 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 (e sinkronizuar), # master (jo e sinkronizuar), + e përzgjedhur, - kandidat, ~ e konfiguruar ! ! Të vendosim konfigurimin e ASAv tonë për Smart-Licensing (sipas profilit tuaj, në rastin tim 100M si 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ë konfigurojmë akses në Internet përmes proxy, përdorni bllokun e komandave si vijon: !call-home ! http-proxy ip_address port port ! ! Më pas ne kopjojmë tokenin e kopjuar nga portali Smart-Account (<token>) dhe regjistrojmë licencën ! ciscoasa(config)# end ciscoasa# license smart register idtoken <token>- Kontrollojmë nëse pajisja e regjistroi me sukses licencën dhe opsionet e enkriptimit janë të disponueshme:


Konfigurojmë SSL-VPN-në bazë në çdo portal
- 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 ! ! Ngrisim serverin HTTPS për ASDM në portin 445 për të mos u përputhur me portin e SSL-VPN-it ! vpn-demo-1(config)# http server enable 445 !- Për të përdorur ASDM, së pari duhet ta shkarkoni nga faqja cisco.com, në rastin tim ky është skedari i mëposhtëm:

- Për të punuar me klientin AnyConnect, nevojitet të ngarkohet një imazh për çdo sistem operativ desktop që do të përdoret (Linux/Windows/MAC) si dhe një skedar me Pako e Shpërndarjes së Headend në emrin:

- Skedarët e shkarkuar mund të ngarkohen, 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 përdorimi i një certifikate të besuar). Emri i plotë i domenit të adresës virtuale të klasterit (vpn-demo.ashes.cc), si dhe çdo emër i plotë i domenit i asociuar me adresën ekstern të secilës nodë të klasterit duhet të zgjidhet në zonën ekstern të DNS në adresën IP të interfaces OUTSIDE (ose në adresën e mapuar, nëse përdoret port forward për udp/443 (DTLS) dhe tcp/443(TLS)). Informacioni i detajuar mbi kërkesat për certifikatën është i shkruar në seksionin Verifikimi i Certifikatës të dokumentacionit.
! 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=ru 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 % Emri i plotĂ« i domenit nĂ« certifikat do tĂ« jetĂ«: vpn-demo.ashes.cc TĂ« gjenerohet Certifikata Self-Signed? [po/jo]: po vpn-demo-1(config)# ! vpn-demo-1(config)# sh cry ca certificates Certifikata Statusi: Disponibile Numri Serial i CertifikatĂ«s: 4d43725e PĂ«rdorimi i CertifikatĂ«s: QĂ«llim i PĂ«rgjithshĂ«m Tipi i ĂelĂ«sit Publik: RSA (4096 bits) Algoritmi i NĂ«nshkrimit: SHA256 me Enkriptimin RSA Emri i LĂ«shuesit: numriSerial=9A439T02F95 hostname=vpn-demo.ashes.cc cn=*.ashes.cc ou=ashes-lab o=ashes c=ru Emri i Subjektit: numriSerial=9A439T02F95 hostname=vpn-demo.ashes.cc cn=*.ashes.cc ou=ashes-lab o=ashes c=ru Data e Ngritjes: dita e fillimit: 00:16:17 MSK Mar 19 2020 data e mbylljes: 00:16:17 MSK Mar 17 2030 Ruajtja: konfig Pikat e Besueshme tĂ« Asocijuara: SELF Certifikata CA Statusi: Disponibile Numri Serial i CertifikatĂ«s: 0509 PĂ«rdorimi i CertifikatĂ«s: QĂ«llim i PĂ«rgjithshĂ«m Tipi i ĂelĂ«sit Publik: RSA (4096 bits) Algoritmi i NĂ«nshkrimit: SHA1 me Enkriptimin RSA Emri i LĂ«shuesit: cn=QuoVadis Root CA 2 o=QuoVadis Limited c=BM Emri i Subjektit: cn=QuoVadis Root CA 2 o=QuoVadis Limited c=BM Data e Ngritjes: dita e fillimit: 21:27:00 MSK Nov 24 2006 dita e mbylljes: 21:23:33 MSK Nov 24 2031 Ruajtja: konfig Pikat e Besueshme tĂ« Asocijuara: _SmartCallHome_ServerCA- PĂ«r tĂ« testuar funksionimin e ASDM, mos harroni tĂ« specifikoni portin, pĂ«r shembull:

- Do të kryejmë konfigurimet bazë të tunelit:
- Do ta bëjmë rrjetin e korporatës të aksesueshëm përmes tunelit, ndërsa internetin do ta çojmë direkt (një metodë e sigurisë më të ulët pa mjete mbrojtëse në sistemin e lidhur, duke mundësuar depërtimin përmes një hosti të infektuar dhe daljen e të dhënave të korporatës, opsioni split-tunnel-policy tunnelall do të lejojë gjithë trafikun e hostit në tunel. Megjithatë Tuneli i Kaluar ofron mundësinë për të lehtësuar ngarkesën në portin VPN dhe për të mos përpunuar trafikun e internetit të hostit)
- Do t'i ndajmë hostet në tunel me adresa nga subneti 192.168.20.0/24 (puli me adresat nga 10 në 30 (për nodën #1)). Në çdo nyjë të klasterit VPN, grupi duhet të jetë i veçantë.
- Do të kryejmë autenticimin bazik me një përdorues të krijuar lokal në ASA (kjo nuk rekomandohet, është metoda më e thjeshtë), është më mirë të bëni autenticimin përmes LDAP/RADIUS, dhe është edhe më mirë të lidhni Autenticimi me shumë faktorë (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 !- (OPTIV): Në shembullin e mësipërm përdorëm një përdorues lokal në MSE për autenticimin e përdoruesve të largët, që natyrisht, përveç në laborator, është shumë i pamjaftueshëm. Do të jap një shembull se si të adaptojmë shpejt konfigurimin për autenticimin në RADIUS server, për shembull, përdoret Cisco Identity Services Engine:
vpn-demo-1(config-aaa-server-group)# dynamic-authorization vpn-demo-1(config-aaa-server-group)# interim-accounting-update vpn-demo-1(config-aaa-server-group)# aaa-server RADIUS (outside) host 192.168.99.134 vpn-demo-1(config-aaa-server-host)# key cisco vpn-demo-1(config-aaa-server-host)# exit vpn-demo-1(config)# tunnel-group DefaultWEBVPNGroup general-attributes vpn-demo-1(config-tunnel-general)# authentication-server-group RADIUS !Kjo integrim ofron mundësinë për të integruar shpejt procedurën e autenticimit me shërbimin e kataloget AD, por gjithashtu të dallojmë përkatësinë e kompjuterit të lidhur me AD, të kuptojmë nëse është një pajisje korporative apo personale dhe të bëjmë vlerësimin e gjendjes së pajisjes së lidhur.


- Do të bëjmë konfigurimin Transparent NAT 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) source static any any destination static vpn-users vpn-users no-proxy-arp- (OPTIV): Për të lëshuar klientët tanë në Internet përmes ASA (kur përdorim tunnelall për opsionet) duke përdorur PAT, si dhe për tu lidhur përmes të njëjtit ndërfaqe OUTSIDE, nga ku ato lidhen, është e nevojshme të bëni këto cilësime
vpn-demo-1(config-network-object)# nat (outside,outside) source dynamic vpn-users interface vpn-demo-1(config)# nat (inside,outside) source dynamic any interface vpn-demo-1(config)# same-security-traffic permit intra-interface !- ĂshtĂ« ekstremisht e rĂ«ndĂ«sishme, kur pĂ«rdorni njĂ« klaster, t'i lejoni rrjetit tĂ« brendshĂ«m tĂ« kuptojĂ« se nĂ« cilĂ«n ASA duhet tĂ« orientojĂ« trafik tĂ« kthyer pĂ«r pĂ«rdoruesit, prandaj Ă«shtĂ« e nevojshme tĂ« bĂ«ni ribashkĂ«ngjitjen e rrugĂ«ve \/32 adresave qĂ« u jepen klientĂ«ve.
Derisa, aktualisht, nuk e kemi konfiguruar klasterin, por tashmë kemi VPN gateway të funksionueshëm, në të cilët mund të lidhemi individualisht përmes FQDN ose IP.

Ne shohim një klient të lidhur në tabelën e orientimit të ASA-së së parë:

Për të bërë që të gjithë klasterin tonë VPN dhe të gjithë rrjeti korporativ të dinë rrugën për klientin tonë, do të bëjmë ribashkëngjitjen e prefiksit të klientit në protokollin e orientimit 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 kemi një rrugë deri te klienti nga Gateway i dytë ASA-2 dhe përdoruesit e lidhur me VPN gateway të ndryshëm brenda klasterit mund, për shembuj, të komunikojnë përmes softfonit korporativ direkt, ashtu si dhe trafiku i kthyer nga burimet e kërkuara nga përdoruesi do të vijë në VPN gateway të nevojshëm:

Tani kalojmë në konfigurimin e Load-Balancing të klasterit.
Adresa 192.168.31.40 do të përdoret si Virtual IP (VIP - të cilin të gjithë klientët VPN do të lidhen në mënyrë primare), nga kjo adresë Master i klasterit do të bëjë REDIRECT në nodën e klasterit më pak të ngarkuar. Mos harroni të shkruani rekordet DNS të drejtpërdrejta dhe të kthyeshme si për çdo adresë eksternal\/FQDN të çdo nodule klasteri, 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ë funksionimin e klasterit me dy klientë të lidhur:

- Të bëjmë përvojën e punës së klientit më të përshtatshme me profilin AnyConnect që ngarkohet automatikisht përmes ASDM.

Të emërtojmë profilin në një mënyrë të përshtatshme dhe ta asociojmë politikën tonë të grupit me të:

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

Duke qenë se, duke përdorur ASDM, ne krijuam këtë profil vetëm në një ASA, mos harroni të përsërisni veprimet në ASA të tjera të klasterit.
Përfundimi: Kështu, ne shpejt krijuam një klaster të disa portave VPN me balancim automatik të ngarkesës. Të shtosh node të reja në klaster nuk është e vështirë, duke marrë një shkallëzim horizontal të thjeshtë përmes ridispozitimit të makinave virtuale ASAv ose duke përdorur ASA harduerike. Klienti multifunctional AnyConnect mund të zgjasë ndjeshëm mundësitë për lidhje të sigurta të largëta duke përdorur funksionin Posture (vlerësimi i gjendjes), i cili aplikohet më efikasht së bashku me sistemin e kontrollit dhe llogaritjes së qendruar për aksesin Identity Services Engine.
Burimi: habr.com


















