Vendosja e një grupi të balancimit të ngarkesës VPN ASA

Në këtë artikull, unë do të doja të jap udhëzime hap pas hapi se si mund të vendosni shpejt skemën më të shkallëzuar për momentin. VPN me qasje në distancë bazuar në akses AnyConnect dhe Cisco ASA - Grupi i balancimit të ngarkesës VPN.

Prezantimi: Shumë kompani në mbarë botën, duke pasur parasysh situatën aktuale me COVID-19, po bëjnë përpjekje për të transferuar punonjësit e tyre në punë në distancë. Për shkak të kalimit masiv në punë në distancë, ngarkesa në portat ekzistuese VPN të kompanive po rritet në mënyrë kritike dhe kërkohet një aftësi shumë e shpejtë për t'i shkallëzuar ato. Nga ana tjetër, shumë kompani detyrohen të zotërojnë me nxitim konceptin e punës në distancë nga e para.

Për të ndihmuar bizneset të arrijnë akses të përshtatshëm, të sigurt dhe të shkallëzueshëm të VPN për punonjësit në kohën më të shkurtër të mundshme, Cisco po licencon klientin SSL-VPN të pasur me veçori AnyConnect për deri në 13 javë. Ju gjithashtu mund të merrni ASAv për një provë (ASA virtuale për hipervizorët VMWare/Hyper-V/KVM dhe platformat cloud AWS/Azure) nga partnerë të autorizuar ose duke kontaktuar përfaqësuesit e Cisco-s që punojnë me ju.

Procedura për lëshimin e licencave të AnyConnect COVID-19 përshkruhet këtu.

Unë kam përgatitur një udhëzues hap pas hapi për një vendosje të thjeshtë të grupit të balancimit të ngarkesës VPN si teknologjia VPN më e shkallëzuar.

Shembulli i mëposhtëm do të jetë mjaft i thjeshtë për sa i përket algoritmeve të përdorura të vërtetimit dhe autorizimit, por do të jetë një opsion i mirë për një fillim të shpejtë (që aktualisht nuk mjafton për shumë njerëz) me mundësinë e përshtatjes së thellë me nevojat tuaja gjatë vendosjes. procesi.

Informacion i shkurtër: Teknologjia e grupit të balancimit të ngarkesave VPN nuk është një funksion i zhgënjyer dhe jo një funksion grupimi në kuptimin e saj origjinal, kjo teknologji mund të kombinojë modele krejtësisht të ndryshme ASA (me kufizime të caktuara) në mënyrë që të ngarkojë lidhjet VPN me qasje në distancë në distancë. Nuk ka sinkronizim të seancave dhe konfigurimeve midis nyjeve të një grupi të tillë, por është e mundur që automatikisht të ngarkohen lidhjet e balancës VPN dhe të sigurohet toleranca ndaj gabimeve të lidhjeve VPN derisa të paktën një nyje aktive të mbetet në grup. Ngarkesa në grup balancohet automatikisht në varësi të ngarkesës së punës së nyjeve nga numri i seancave VPN.

Për dështimin e nyjeve specifike të grupit (nëse kërkohet), mund të përdoret një skedar, kështu që lidhja aktive do të trajtohet nga nyja kryesore e skedarit. Mbështetja e skedarit nuk është një kusht i domosdoshëm për të siguruar tolerancën e gabimeve brenda grupit Load-Balancing, vetë grupi, në rast të dështimit të nyjeve, do ta transferojë seancën e përdoruesit në një nyje tjetër të drejtpërdrejtë, por pa ruajtur statusin e lidhjes, që është pikërisht dhënë nga skedari. Prandaj, është e mundur, nëse është e nevojshme, të kombinohen këto dy teknologji.

Një grup VPN Load-Balancing mund të përmbajë më shumë se dy nyje.

VPN Load-Balancing Cluster mbështetet në ASA 5512-X dhe më lart.

Meqenëse çdo ASA brenda grupit të balancimit të ngarkesës VPN është një njësi e pavarur për sa i përket cilësimeve, ne i kryejmë të gjitha hapat e konfigurimit individualisht në çdo pajisje individuale.

Detajet e teknologjisë këtu

Topologjia logjike e shembullit të dhënë:

Vendosja e një grupi të balancimit të ngarkesës VPN ASA

Vendosja kryesore:

  1. Ne vendosim shembuj ASAv të shablloneve që na duhen (ASAv5/10/30/50) nga imazhi.

  2. Ne caktojmë ndërfaqet INSIDE / JASHTË për të njëjtat VLAN (Jashtë në VLAN-in e vet, BRENDA në të tijën, por përgjithësisht brenda grupit, shihni topologjinë), është e rëndësishme që ndërfaqet e të njëjtit lloj të jenë në të njëjtin segment L2.

  3. Licencat:

    • Për momentin instalimi i ASAv nuk do të ketë asnjë licencë dhe do të jetë i kufizuar në 100 kbps.
    • Për të instaluar një licencë, duhet të gjeneroni një shenjë në llogarinë tuaj Smart: https://software.cisco.com/ -> Licencimi i softuerit të zgjuar
    • Në dritaren që hapet, klikoni butonin Shenjë e re

    Vendosja e një grupi të balancimit të ngarkesës VPN ASA

    • Sigurohuni që në dritaren që hapet të ketë një fushë aktive dhe të kontrollohet një shenjë Lejo funksionalitetin e kontrolluar nga eksporti… Pa këtë fushë aktive, nuk do të mund të përdorni funksionet e enkriptimit të fortë dhe, në përputhje me rrethanat, VPN. Nëse kjo fushë nuk është aktive, ju lutemi kontaktoni ekipin e llogarisë tuaj me një kërkesë aktivizimi.

    Vendosja e një grupi të balancimit të ngarkesës VPN ASA

    • Pasi të keni shtypur butonin Krijoni Token, do të krijohet një shenjë që do ta përdorim për të marrë një licencë për ASAv, kopjoni atë:

    Vendosja e një grupi të balancimit të ngarkesës VPN ASA

    • Përsëritni hapat C, D, E për çdo ASAv të vendosur.
    • Për ta bërë më të lehtë kopjimin e tokenit, le të lejojmë përkohësisht telnet. Le të konfigurojmë çdo ASA (shembulli më poshtë ilustron cilësimet në ASA-1). telnet nuk funksionon me jashtë, nëse vërtet ju nevojitet, ndryshoni nivelin 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 të regjistruar një shenjë në renë e llogarisë Smart, duhet të siguroni qasje në internet për ASA, detaje këtu.

    Me pak fjalë, ASA nevojitet:

    • qasje në internet nëpërmjet HTTPS;
    • sinkronizimi i kohës (më saktë, nëpërmjet NTP);
    • server i regjistruar DNS;
      • Ne telnet me ASA-në tonë dhe bëjmë cilësime për të aktivizuar licencën përmes llogarisë Smart.

    !
    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 
    !
    ! Проверим работу 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:
    !!!!!
    !
    ! Проверим синхронизацию 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
    !
    ! Установим конфигурацию нашей ASAv для Smart-Licensing (в соответствии с Вашим профилем, в моем случае 100М для примера)
    !
    ciscoasa(config)# license smart
    ciscoasa(config-smart-lic)# feature tier standard
    ciscoasa(config-smart-lic)# throughput level 100M
    !
    ! В случае необходимости можно настроить доступ в Интернет через прокси используйте следующий блок команд:
    !call-home
    !  http-proxy ip_address port port
    !
    ! Далее мы вставляем скопированный из портала Smart-Account токен (<token>) и регистрируем лицензию
    !
    ciscoasa(config)# end
    ciscoasa# license smart register idtoken <token>

    • Ne kontrollojmë që pajisja të ketë regjistruar me sukses një licencë dhe opsionet e kriptimit janë të disponueshme:

    Vendosja e një grupi të balancimit të ngarkesës VPN ASA

    Vendosja e një grupi të balancimit të ngarkesës VPN ASA

  4. Vendosni një SSL-VPN bazë në secilën portë

    • Tjetra, konfiguroni 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
    !
    ! Поднимем сервер HTTPS для ASDM на порту 445 чтобы не пересекаться с SSL-VPN порталом
    !
    vpn-demo-1(config)# http server enable 445 
    !

    • Që ASDM të funksionojë, fillimisht duhet ta shkarkoni nga faqja e internetit cisco.com, në rastin tim është skedari i mëposhtëm:

    Vendosja e një grupi të balancimit të ngarkesës VPN ASA

    • Që klienti AnyConnect të funksionojë, ju duhet të ngarkoni një imazh në çdo ASA për çdo OS desktop të klientit të përdorur (i planifikuar për të përdorur Linux / Windows / MAC), do t'ju duhet një skedar me Paketa e vendosjes së kokës Në titull:

    Vendosja e një grupi të balancimit të ngarkesës VPN ASA

    • Skedarët e shkarkuar mund të ngarkohen, për shembull, në një server FTP dhe të ngarkohen në çdo ASA individuale:

    Vendosja e një grupi të balancimit të ngarkesës VPN ASA

    • Ne konfigurojmë certifikatën ASDM dhe të vetë-nënshkruar për SSL-VPN (rekomandohet përdorimi i një certifikate të besuar në prodhim). Vendosja FQDN e Adresës Virtual Cluster (vpn-demo.ashes.cc), si dhe çdo FQDN e lidhur me adresën e jashtme të çdo nyje të grupit, duhet të zgjidhet në zonën e jashtme DNS në adresën IP të ndërfaqes OUTSIDE (ose në adresën e hartuar nëse përdoret përcjellja e portit udp/443 (DTLS) dhe tcp/443 (TLS)). Informacioni i detajuar mbi kërkesat për certifikatën është specifikuar në seksion Verifikimi i Certifikatës dokumentacionin.

    !
    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               

    • Mos harroni të specifikoni portin për të kontrolluar se ASDM funksionon, për shembull:

    Vendosja e një grupi të balancimit të ngarkesës VPN ASA

    • Le të kryejmë cilësimet bazë të tunelit:
    • Le ta bëjmë të disponueshëm rrjetin e korporatës përmes tunelit dhe ta lëmë internetin të shkojë drejtpërdrejt (jo metoda më e sigurt nëse nuk ka mbrojtje në hostin lidhës, është e mundur të depërtosh përmes një hosti të infektuar dhe të shfaqësh të dhënat e korporatës, opsioni Split-tunnel-policy tuneall do të lejojë të gjithë trafikun pritës në tunel. Megjithatë ndarje-tunel bën të mundur shkarkimin e portës VPN dhe mos përpunimin e trafikut të Internetit të hostit)
    • Le të lëshojmë adresa nga nënrrjeti 192.168.20.0/24 për hostet në tunel (bashkim nga 10 në 30 adresa (për nyjen #1)). Çdo nyje e grupit VPN duhet të ketë grupin e vet.
    • Ne do të kryejmë vërtetimin bazë me një përdorues të krijuar lokalisht në ASA (Kjo nuk rekomandohet, kjo është metoda më e lehtë), është më mirë të bëhet vërtetimi përmes LDAP/RADIUS, ose më mirë akoma, kravatë Autentifikimi 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
    !

    • (OPSIONAL): Në shembullin e mësipërm, ne përdorëm një përdorues lokal në ITU për të vërtetuar përdoruesit e largët, i cili natyrisht, përveç në laborator, është i dobët i zbatueshëm. Unë do të jap një shembull se si të përshtatet shpejt cilësimi për vërtetim Radius server, për shembull i përdorur Motori i Shërbimeve të Identitetit të Cisco:

    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 
    !

    Ky integrim bëri të mundur jo vetëm integrimin e shpejtë të procedurës së vërtetimit me shërbimin e drejtorisë AD, por edhe të dallonte nëse kompjuteri i lidhur i përket AD, të kuptonte nëse kjo pajisje është korporative apo personale dhe të vlerësohej statusi i pajisjes së lidhur. .

    Vendosja e një grupi të balancimit të ngarkesës VPN ASA

    Vendosja e një grupi të balancimit të ngarkesës VPN ASA

    • Le të konfigurojmë Transparent NAT në mënyrë që trafiku midis klientit dhe burimeve të rrjetit të rrjetit të korporatës të mos jetë i shkarravitur:

    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

    • (OPSIONAL): Për t'i ekspozuar klientët tanë në internet përmes ASA (kur përdorim tuneli opsionet) duke përdorur PAT, si dhe duke dalë përmes së njëjtës ndërfaqe JASHTË nga e cila janë lidhur, duhet të bëni cilësimet e mëposhtme

    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 
    !

    • Kur përdorni një grup, është jashtëzakonisht e rëndësishme të mundësoni rrjetin e brendshëm të kuptojë se cila ASA do të drejtojë trafikun e kthimit te përdoruesit, për këtë ju duhet të rishpërndani rrugët / 32 adresat e lëshuara për klientët.
      Për momentin, ne nuk e kemi konfiguruar ende grupin, por tashmë kemi porta VPN që funksionojnë që mund të lidhen individualisht përmes FQDN ose IP.

    Vendosja e një grupi të balancimit të ngarkesës VPN ASA

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

    Vendosja e një grupi të balancimit të ngarkesës VPN ASA

    Në mënyrë që i gjithë grupi ynë VPN dhe i gjithë rrjeti i korporatës të dinë rrugën drejt klientit tonë, ne do të rishpërndajmë prefiksin e klientit në një protokoll dinamik të rrugëtimit, 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-REDISTRIBUTE

    Tani ne kemi një rrugë drejt klientit nga porta e dytë ASA-2 dhe përdoruesit e lidhur me porta të ndryshme VPN brenda grupit mund, për shembull, të komunikojnë drejtpërdrejt përmes një telefoni kompjuterik të korporatës, si dhe të kthejnë trafikun nga burimet e kërkuara nga përdoruesi. ejani në portën e dëshiruar VPN:

    Vendosja e një grupi të balancimit të ngarkesës VPN ASA

  5. Le të kalojmë në konfigurimin e grupit Load-Balancing.

    Adresa 192.168.31.40 do të përdoret si një IP virtuale (VIP - të gjithë klientët VPN fillimisht do të lidhen me të), nga kjo adresë grupi Master do të bëjë një REDIRECT në një nyje grupi më pak të ngarkuar. Mos harroni të shkruani rekord përpara dhe mbrapsht DNS si për secilën adresë të jashtme / FQDN të çdo nyje të grupit, 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)#

    • Ne kontrollojmë funksionimin e grupit me dy klientë të lidhur:

    Vendosja e një grupi të balancimit të ngarkesës VPN ASA

    • Le ta bëjmë përvojën e klientit më të përshtatshëm me profilin e ngarkuar automatikisht AnyConnect nëpërmjet ASDM.

    Vendosja e një grupi të balancimit të ngarkesës VPN ASA

    Ne e emërtojmë profilin në një mënyrë të përshtatshme dhe e lidhim politikën tonë të grupit me të:

    Vendosja e një grupi të balancimit të ngarkesës VPN ASA

    Pas lidhjes tjetër të klientit, ky profil do të shkarkohet dhe instalohet automatikisht në klientin AnyConnect, kështu që nëse keni nevojë të lidheni, thjesht duhet ta zgjidhni atë nga lista:

    Vendosja e një grupi të balancimit të ngarkesës VPN ASA

    Meqenëse e krijuam këtë profil vetëm në një ASA duke përdorur ASDM, mos harroni të përsërisni hapat në ASA-të e tjera në grup.

Përfundim: Kështu, ne vendosëm shpejt një grup me disa porta VPN me balancim automatik të ngarkesës. Shtimi i nyjeve të reja në grup është i lehtë, me shkallëzim të thjeshtë horizontal duke vendosur makina të reja virtuale ASAv ose duke përdorur ASA harduerike. Klienti AnyConnect i pasur me veçori mund të përmirësojë shumë lidhjen e sigurt në distancë duke përdorur Qëndrimi (vlerësimet e gjendjes), përdoret në mënyrë më efektive në lidhje me sistemin e kontrollit të centralizuar dhe kontabilitetit të aksesit Motori i Shërbimeve të Identitetit.

Burimi: www.habr.com

Shto një koment