Selles artiklis jagan samm-sammulist juhendit, kuidas kiiresti seadistada praegu kõige skaleeritavam ligipääsu skeem Remote-Access VPN põhjal AnyConnect ja Cisco ASA – VPN-i koormuse tasakaalustamise klaster.
Sissejuhatus: Paljud ettevõtted üle kogu maailma teevad COVID-19 tõttu jõupingutusi oma töötajate kaug tööle viimiseks. Massilise ülemineku tõttu kaug tööle suureneb oluliselt koormus ettevõtete olemasolevatele VPN väravatele ja on vajalik nende kiire skaleerimise võimalus. Teiselt poolt peavad paljud ettevõtted kiirustades õppima mõistet, nagu kaug töö.
Et aidata ettevõtetel võimalikult kiiresti pakkuda töötajatele mugavat, turvalist ja skaleeritavat VPN-juurdepääsu, pakub Cisco kuni 13 nädalat tasuta litsentse mitmeotstarbelisele SSL-VPN kliendile AnyConnect. .
.
Olen koostanud samm-sammult juhendi VPN-i koormuse tasakaalustamise klastri lihtsa versiooni juurutamiseks, mis on kõige skaleeritavam VPN-tehnoloogia.
Allpool toodud näide on autentimise ja autoriseerimise algoritmide poolest üsna lihtne, kuid sobib hästi kiireks alustamiseks (mida paljudel praegu väga vajaka on), pakkudes samas võimalust sügavamaks kohandamiseks juurutamise käigus vastavalt oma vajadustele.
Lühiülevaade: VPN Load Balancing Klastri tehnoloogia ei ole failover ega klasterdamise funktsioon oma põhimõttelises tähenduses; selle tehnoloogia abil saab ühendada täiesti erinevaid ASA mudeleid (teatud piirangutega), et tasakaalustada Remote-Access VPN-i ühenduste koormust. Seansside ja konfiguratsioonide sünkroniseerimist klastrite vahel ei toimu, kuid VPN-ühenduste automaatne koormuse tasakaalustamine ja ühenduste talitlushäirete vältimine on võimalik seni, kuni klastris on vähemalt üks aktiivne nod. Klastri koormus tasakaalustatakse automaatselt vastavalt nodide koormusele VPN-seansside arvu järgi.
Klastrei spetsiifiliste nodide jaoks, et tagada talitlushäirete suhtes vastupidavus (kui see on vajalik), võib kasutada failide vahetajat, mille abil käideldakse aktiivset ühendust selle failide vahetaja põhinoodiga. Failide vahetaja ei ole talitlushäirete vastupidavuse tagamisel Load-Balancing klastris vajalik; ise klaster suudab, kui mõni node ebaõnnestub, suunata kasutaja sessiooni teisele aktiivsele nodele, kuid ilma ühenduse staatuse säilitamiseta, mille tagab failide vahetaja. Seega saab neid kahte tehnoloogiat vajadusel kombineerida.
VPN Load-Balancing klaster võib sisaldada rohkem kui kahte node.
VPN Load-Balancing klastrit toetatakse ASA 5512-X ja kõrgematel mudelitel.
Kuna iga ASA VPN Load-Balancing klastris on sõltumatu üksus seoses seadistustega, siis viib iga seadistamise etapi läbi isiklikult igas üksikseadmest.
Antud näite loogiline topoloogia:

Esialgne rakendamine:
Rakendame vajalikud ASAv mallide eksemplarid pildist (ASAv5/10/30/50).
Määrame INSIDE/OUTSIDE liidesed samadele VLAN-idele (Outside oma VLANis, INSIDE oma, kuid ühine klastris, vt topoloogiat), oluline on, et sama tüübi liidesed paikneksid samas L2 segmendis.
Litsentsid:
- ASAv paigaldamise hetkel ei ole litsentse ja see on piiratud 100 kbit/sek tootlikkusega.
- Litsentsi installimiseks peate genereerima tokene oma Smart-Account kontol: -> Smart Software Licensing
- Avanenud aknas vajutage nuppu New Token

- Veenduge, et avanenud aknas on aktiivne väli ja märge on seadistatud Allow export-controlled functionality… Ilma selle aktiivse väljata ei saa te kasutada tugeva krüpteerimise funktsioone ja seega VPN-i. Kui see väli ei ole aktiivne, palun võtke ühendust oma konto meeskonnaga aktiveerimise taotlusega.

- Pärast nuppu vajutamist Loo token, luuakse token, mida me kasutame ASAv litsentsi saamiseks, kopeerime selle:

- Korrake samme C, D, E iga juurutatud ASAv puhul.
- Selleks, et tokenit oleks lihtsam kopeerida, lubame ajutiselt telneti. Seame üles iga ASA (näide allpool illustreerib seadeid ASA-1-l). telnet ei tööta outside, kui see on väga vajalik, muuda security-level 100 peale outside, seejärel naase tagasi.
! 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 !- Smart-Accountis registreerimiseks tuleb ASA-l lubada interneti juurde pääs. .
Lühidalt, vajalik ASA on:
- HTTPS juurdepääs internetis;
- aegade sünkroniseerimine (soovitav läbi NTP);
- defineeritud DNS server;
- Logime telneti kaudu meie ASA-desse ja teeme seadistused litsentsi aktiveerimiseks Smart-Account kaudu.
! ciscoasa(config)# kellaa set 19:21:00 18. märts 2020 ciscoasa(config)# kellaa ajavöönd MSK 3 ciscoasa(config)# ntp server 192.168.99.136 ! ciscoasa(config)# dns domeeni-otsing väljas ciscoasa(config)# DNS serveri-grupp DefaultDNS ciscoasa(config-dns-server-group)# nimeteenuse-üksus 192.168.99.132 ! ! Kontrollime DNS-i tööd: ! ciscoasa(config-dns-server-group)# ping ya.ru Tippe escape-sekundi katkestamiseks. Saadetakse 5, 100-byte ICMP Echos aadressile 87.250.250.242, aegumine on 2 sekundit: !!!!! ! ! Kontrollime NTP sünkroniseerimist: ! ciscoasa(config)# show ntp associations aadress viite kell st millal küsima ulatus viivitus nihke jaotus *~192.168.99.136 91.189.94.4 3 63 64 1 36.7 1.85 17.5 * master (sünkroonitud), # master (mitte sünkroonitud), + valitud, - kandidaat, ~ konfigureeritud ! ! Seame meie ASAv konfigureerimist Smart-Litsentsimiseks (vastavalt teie profiilile, minu puhul 100M näitena) ! ciscoasa(config)# license smart ciscoasa(config-smart-lic)# feature tier standard ciscoasa(config-smart-lic)# throughput level 100M ! ! Vajadusel saab seadistada juurdepääsu Internetile läbi proksi, kasutage järgmist käsublokki: !call-home ! http-proxy ip_aadress port port ! ! Jätkame, sisestades Smart-Accounti portaalist kopeeritud token'i (<token>) ja registreerime litsentsi ! ciscoasa(config)# end ciscoasa# license smart register idtoken <token>- Kontrollime, et seade on litsentsi edukalt registreerinud ja krüptimise valikud on saadaval:


Seame aluse SSL-VPN iga värava peal
- Jätkame SSH ja ASDM kaudu juurdepääsu seadistamisega:
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 ! ! Lülitame HTTPS serveri ASDM jaoks sadamale 445, et vältida kattumist SSL-VPN-portaaliga ! vpn-demo-1(config)# http server enable 445 !- ASDM-i tööks tuleb esmalt see cisco.com veebilehelt alla laadida, minu puhul on see järgmine fail:

- AnyConnecti kliendi jaoks tuleb iga ASA jaoks laadida alla pildifail, mis on vajalik iga kasutatava töölauasüsteemi jaoks (planeeritud kasutamiseks Linuxi/Windowsi/MAC-i puhul) ning seda on vaja faili: Peasema paigalduspakett pealkirjaga:

- Allalaaditud failid saab näiteks FTP-serverisse üles laadida ja igale üksikule ASAle laadida:

- Seame ASDM ja iseenesest signeeritud sertifikaat SSL-VPN jaoks (tootmises soovitatakse kasutada usaldusväärset sertifikaati). Paigaldatud klastrivirtuaalse aadressi FQDN (vpn-demo.ashes.cc) ja iga FQDN, mis on seotud iga klastrimooduli välise aadressiga, peab olema välises DNS-i tsoonis lahendatud OUTSIDE-ühenduse IP-aadressile (või kaardistatud aadressile, kui kasutatakse UDP/443 (DTLS) ja TCP/443 (TLS) pordi edastamist). Sertifikaadi nõuete üksikasjalik teave on esitatud jaos Certificate Verification dokumentatsioonis.
! 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 % 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=ru Subject Name: serialNumber=9A439T02F95 hostname=vpn-demo.ashes.cc cn=*.ashes.cc ou=ashes-lab o=ashes c=ru 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- ASDM'i töö kontrollimiseks ärge unustage porti märkida, näiteks:

- Teeme tunneli põhiseaded:
- Teeme ettevõtte võrgu tunnelisse kättesaadavaks, samal ajal kui internetiühendus suunatakse otse (kui hostis puuduvad kaitsemeetmed, ei pruugi see olla kõige turvalisem meetod; see võib võimaldada pahavara kaudu juurdepääsu ja ettevõtte andmete lekkimist, valik) split-tunnel-policy tunnelall suunab kogu hosti liikluse tunnelisse. Siiski Split-Tunnel annab võimaluse vähendada VPN-i värava koormust ja mitte suunata hosti interneti liiklust)
- Anname tunnelisse hostidele aadresse alamvõrgust 192.168.20.0/24 (aadresside vahemik 10-30 (node #1 jaoks)). Igal VPN-klastri sõlmel peab olema oma aadresside vahemik.
- Teeme põhitõendi kohalikult loodud kasutajaga ASA-s (seda ei soovitata teha, kuna see on kõige lihtsam meetod), parem on teha autentsus läbi LDAP/RADIUS, veel parem on siduda Mitme faktoori autentimine (MFA), näiteks 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 !- (VALIKULINE): Ülaltoodud näites kasutasime autentimise jaoks kohaliku kasutaja MSE-s, mis on muidugi laboratoorses keskkonnas peamiselt rakendatav. Toome näite, kuidas kiiresti kohandada seade autentimiseks RADIUS serveris, näidatakse Cisco Identity Services Engine:
vpn-demo-1(config-aaa-server-group)# dünaamiline autoriseerimine vpn-demo-1(config-aaa-server-group)# ajutine arvepidamine vpn-demo-1(config-aaa-server-group)# aaa-server RADIUS (väljas) host 192.168.99.134 vpn-demo-1(config-aaa-server-host)# võti cisco vpn-demo-1(config-aaa-server-host)# väljuda vpn-demo-1(config)# tunnel-group DefaultWEBVPNGroup üldised atribuudid vpn-demo-1(config-tunnel-general)# autentimis-serveri grupp RADIUS !See integreerimine võimaldas mitte ainult kiiret autentimise protseduuri integreerimist AD kataloogiteenusega, vaid ka ära tunda ühendatud arvuti kuuluvuse AD-sse, mõista, kas see on ettevõtte või isiklik seade ning hinnata ühendatud seadme seisundit.


- Teeme Transparent NAT seadistuse, et liiklus kliendi ja ettevõtte võrgu ressursside vahel ei oleks NAT-itud:
vpn-demo-1(config-network-object)# subnet 192.168.20.0 255.255.255.0 ! vpn-demo-1(config)# nat (sees,väljas) allika staatiline ükskõik ükskõik sihtkoht staatiline vpn-kasutajad vpn-kasutajad ei-proksi-arp- (VALIKULINE): Et saata meie kliente Internetti läbi ASA (kasutades tunnelall valikute) kasutades PAT-i ning samal ajal liituda läbi sama OUTSIDE liidese, kust nad ühenduvad, on vaja teha järgmised seadistused
vpn-demo-1(config-network-object)# nat (väljas,väljas) allika dünaamiline vpn-kasutajad liides vpn-demo-1(config)# nat (sees,väljas) allika dünaamiline ükskõik liides vpn-demo-1(config)# sama-turvamise liiklus luba intra-liidese !- Klientide tagasivoolu suunamiseks on ülioluline, et klastris oleks võimalus sisemisel võrgul aru saada, millisele ASA-le suunata tagasivoolu, ja selleks tuleb teha klientidele väljastatud \/32 aadresside marsruutide ümberjaotamine.
Praegu ei ole me klastrit veel seadistanud, kuid meil on juba töötavad VPN-lähted, millega saab individuaalselt ühendust võtta kas FQDN või IP kaudu.

Näeme ühendatud klienti esimese ASA marsruuditabelis:

Kuna meie VPN-klaster ja kogu ettevõtte võrk peavad teadma marsruuti meie kliendini, teeme klientide eelist ümbersuunamise dünaamilise marsruutimise protokolli, näiteks 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-REDISTRIBUTENüüd on meil ühendus kliendiga teise ASA-2 värava kaudu, ja kasutajad, kes on ühendatud erinevatesse VPN-väravatesse klastris, saavad näiteks suhelda otse ettevõtte tarkvara kaudu. Samuti saab tagasivool, mis tuleb kasutaja poolt küsitud ressurssidest, jõuda õigesse VPN-väravasse:

Jätkame Load-Balancing klastrite seadistamisega.
Aadress 192.168.31.40 kasutatakse Virtual IP (VIP — kõigepealt ühenduvad kõik VPN kliendid sellele), millelt klastrite Master suunab vähem koormatud sõlme. Ärge unustage lisada otsekohest ja tagasivoolu DNS-i kirjet nii iga välise aadressi/FQDN iga sõlme klastris kui ka VIP jaoks.
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)#- Kontrollime klastrite tööd kahe ühendatud kliendiga:

- Teeme kliendi kogemuse mugavamaks, kasutades ASDM kaudu automaatselt laaditavat AnyConnecti profiili.

Nimetame profiili mugavalt ja seostame selle meie grupipoliitikaga:

Pärast järgmist kliendi ühendust laaditakse see profiil automaatselt alla ja installitakse AnyConnecti kliendis, mistõttu jääb ka tulevikus vajalik valik teha lihtsalt selle nimekirjast:

Kuna loome ASDM-i abil selle profiili ainult ühes ASA-s, ärge unustage sarnaseid toiminguid korrata ülejäänud ASA klastris.
Väljund: Nii oleme kiiresti üles ehitanud klastrite mitmest VPN väravast koos automaatse koormuse tasandamisega. Uute sõlmede lisamine klastrisse ei tekita raskusi, saavutades lihtsa horisontaalse skaleerimise, juurutades uusi virtuaalseid masinate ASAv või kasutades riistvaralisi ASA-sid. Multifunktsionaalne AnyConnecti klient võib oluliselt laiendada turvalise kaugühenduse võimalusi, kasutades funktsiooni Posture (olekute hindamine), mida rakendatakse kõige tõhusamalt koos kesksete kontrolli- ja juurdepääsuhalduse süsteemidega. Identity Services Engine.
Allikas: habr.com


















