Deplojante ASA VPN-Ŝarĝ-ekvilibra Areto

En ĉi tiu artikolo, mi ŝatus doni paŝon post paŝo instrukciojn pri kiel vi povas rapide disfaldi la plej skaleblan skemon nuntempe. VPN de Fora Aliro aliro bazita AnyConnect kaj Cisco ASA - VPN-Ŝarĝbalanca Areto.

Enkonduko: Multaj kompanioj tra la mondo, konsiderante la nunan situacion kun COVID-19, klopodas translokigi siajn dungitojn al fora laboro. Pro la amasa transiro al fora laboro, la ŝarĝo sur la ekzistantaj VPN-enirejoj de kompanioj kritike pliiĝas kaj tre rapida kapablo grimpi ilin estas bezonata. Aliflanke, multaj kompanioj estas devigitaj haste regi la koncepton de fora laboro de nulo.

Por helpi entreprenojn atingi oportunan, sekuran kaj skaleblan VPN-aliron por dungitoj en la plej mallonga ebla tempo, Cisco licencas la AnyConnect-riĉan funkciojn SSL VPN-klienton por ĝis 13 semajnoj. Vi ankaŭ povas preni ASAv por testo (Virtuala ASA por VMWare/Hyper-V/KVM-hiperviziiloj kaj AWS/Azure-nubaj platformoj) de rajtigitaj partneroj aŭ kontaktante Cisco-reprezentantojn laborantajn kun vi..

La proceduro por eldonado de AnyConnect COVID-19-licencoj estas priskribita ĉi tie.

Mi preparis paŝon post paŝo gvidilon por simpla deplojo de VPN Load-Balancing Cluster kiel la plej skalebla VPN-teknologio.

La ĉi-suba ekzemplo estos sufiĉe simpla laŭ la uzataj algoritmoj de aŭtentigo kaj rajtigo, sed estos bona eblo por rapida komenco (kiu nuntempe ne sufiĉas por multaj) kun la ebleco de profunda adapto al viaj bezonoj dum la disfaldo. procezo.

Mallongaj informoj: VPN Load Balancing Cluster-teknologio ne estas malsukcesa kaj ne grupiga funkcio en sia denaska signifo, ĉi tiu teknologio povas kombini tute malsamajn ASA-modelojn (kun certaj limigoj) por ŝarĝi ekvilibron de Remote-Access VPN-konektoj. Ne ekzistas sinkronigado de sesioj kaj agordoj inter la nodoj de tia areto, sed eblas aŭtomate ŝarĝi ekvilibrajn VPN-konektoj kaj certigi misfunkciadon de VPN-konektoj ĝis almenaŭ unu aktiva nodo restas en la areto. La ŝarĝo en la areto estas aŭtomate ekvilibra depende de la laborkvanto de la nodoj per la nombro da VPN-sesioj.

Por malsukceso de specifaj nodoj de la areto (se necese), dosiero povas esti uzata, do la aktiva konekto estos pritraktita de la Primara nodo de la dosiero. La dosiertransporto ne estas necesa kondiĉo por certigi misfunkciadon ene de la Load-Balancing-areto, la areto mem, en la okazaĵo de noda fiasko, translokigos la uzantan sesion al alia viva nodo, sed sen konservi la konektan staton, kiu estas ĝuste. provizita de la dosiero. Sekve, eblas, se necese, kombini ĉi tiujn du teknologiojn.

VPN Load-Balancing areto povas enhavi pli ol du nodojn.

VPN Load-Balancing Cluster estas subtenata sur ASA 5512-X kaj supre.

Ĉar ĉiu ASA ene de la VPN Load-Balancing-grupo estas sendependa unuo laŭ agordoj, ni plenumas ĉiujn agordajn paŝojn individue sur ĉiu individua aparato.

Teknologiaj detaloj ĉi tie

La logika topologio de la donita ekzemplo:

Deplojante ASA VPN-Ŝarĝ-ekvilibra Areto

Ĉefa Deplojo:

  1. Ni deplojas ASAv-instancojn de la ŝablonoj, kiujn ni bezonas (ASAv5/10/30/50) el la bildo.

  2. Ni atribuas la INTERFAJN / EKSTER-interfacojn al la samaj VLAN-oj (Ekster en sia propra VLAN, INSIDE en sia propra, sed ĝenerale ene de la areto, vidu la topologion), gravas, ke interfacoj de la sama tipo estas en la sama L2-segmento.

  3. Licencoj:

    • Nuntempe la instalado de ASAv ne havos licencojn kaj estos limigita al 100kbps.
    • Por instali permesilon, vi devas generi ĵetonon en via Smart-Konto: https://software.cisco.com/ -> Smart Software Licensing
    • En la fenestro kiu malfermiĝas, alklaku la butonon Nova Token

    Deplojante ASA VPN-Ŝarĝ-ekvilibra Areto

    • Certiĝu, ke en la fenestro kiu malfermiĝas estas aktiva kampo kaj marko estas markita Permesu eksport-kontrolitan funkcion… Sen ĉi tiu kampo aktiva, vi ne povos uzi la funkciojn de forta ĉifrado kaj, sekve, VPN. Se ĉi tiu kampo ne estas aktiva, bonvolu kontakti vian kontan teamon kun aktiviga peto.

    Deplojante ASA VPN-Ŝarĝ-ekvilibra Areto

    • Post premi la butonon Krei Tokenon, ĵetono estos kreita, kiun ni uzos por akiri permesilon por ASAv, kopiu ĝin:

    Deplojante ASA VPN-Ŝarĝ-ekvilibra Areto

    • Ripetu paŝojn C,D,E por ĉiu deplojita ASAv.
    • Por plifaciligi kopii la ĵetonon, ni provizore permesu telneton. Ni agordu ĉiun ASA (la ekzemplo sube ilustras la agordojn sur ASA-1). telnet ne funkcias kun ekstero, se vi vere bezonas ĝin, ŝanĝu sekurecan nivelon al 100 al ekstero, poste revenu ĝin.

    !
    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
    !

    • Por registri ĵetonon en la nubo Smart-Account, vi devas provizi interretan aliron por ASA, detaloj ĉi tie.

    Mallonge, ASA estas bezonata:

    • aliro per HTTPS al Interreto;
    • temposinkronigado (pli ĝuste, per NTP);
    • registrita DNS-servilo;
      • Ni telnet al nia ASA kaj faras agordojn por aktivigi la permesilon per 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 
    !
    ! Проверим работу 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>

    • Ni kontrolas, ke la aparato sukcese registris permesilon kaj ĉifradajn opciojn disponeblas:

    Deplojante ASA VPN-Ŝarĝ-ekvilibra Areto

    Deplojante ASA VPN-Ŝarĝ-ekvilibra Areto

  4. Agordu bazan SSL-VPN sur ĉiu enirejo

    • Poste, agordu aliron per SSH kaj 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 
    !

    • Por ke ASDM funkciu, vi unue devas elŝuti ĝin de la retejo cisco.com, en mia kazo ĝi estas la sekva dosiero:

    Deplojante ASA VPN-Ŝarĝ-ekvilibra Areto

    • Por ke la kliento AnyConnect funkciu, vi devas alŝuti bildon al ĉiu ASA por ĉiu uzata klienta labortabla OS (planita por uzi Linukso / Vindozo / MAC), vi bezonos dosieron kun Headend Deploja Pako En la titolo:

    Deplojante ASA VPN-Ŝarĝ-ekvilibra Areto

    • La elŝutitaj dosieroj povas esti alŝutitaj, ekzemple, al FTP-servilo kaj alŝutitaj al ĉiu individua ASA:

    Deplojante ASA VPN-Ŝarĝ-ekvilibra Areto

    • Ni agordas ASDM kaj Memsubskribitan atestilon por SSL-VPN (oni rekomendas uzi fidindan atestilon en produktado). La fiksita FQDN de la Virtuala Areto-Adreso (vpn-demo.ashes.cc), same kiel ĉiu FQDN asociita kun la ekstera adreso de ĉiu clusternodo, devas solvi en la ekstera DNS-zono al la IP-adreso de la EKSTER-interfaco (aŭ al la mapita adreso se haveno plusendado udp/443 estas uzata (DTLS) kaj tcp/443(TLS)). Detalaj informoj pri la postuloj por la atestilo estas specifitaj en la sekcio Atestila Kontrolo dokumentado.

    !
    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               

    • Ne forgesu specifi la havenon por kontroli ke ASDM funkcias, ekzemple:

    Deplojante ASA VPN-Ŝarĝ-ekvilibra Areto

    • Ni faru la bazajn agordojn de la tunelo:
    • Ni disponigu la kompanian reton tra la tunelo, kaj lasu la Interreton rekte iri (ne la plej sekura metodo se ne ekzistas protektoj sur la koneksa gastiganto, eblas penetri tra infektita gastiganto kaj montri kompaniajn datumojn, opcion. split-tunnel-policy tunnelall lasos ĉiun gastigan trafikon en la tunelon. Tamen split-tunnel ebligas malŝarĝi la VPN-enirejon kaj ne prilabori gastigantan interretan trafikon)
    • Ni eldonu adresojn de la subreto 192.168.20.0/24 al gastigantoj en la tunelo (kolekto de 10 ĝis 30 adresoj (por nodo n-ro 1)). Ĉiu nodo de la VPN-areto devas havi sian propran naĝejon.
    • Ni efektivigos bazan aŭtentikigon kun loke kreita uzanto sur la ASA (Ĉi tio ne estas rekomendita, ĉi tiu estas la plej facila metodo), estas pli bone fari aŭtentigon per LDAP/RADIUSO, aŭ pli bone ankoraŭ, kravato Plurfaktora Aŭtentigo (MFA)ekzemple 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
    !

    • (LOVE): En la ĉi-supra ekzemplo, ni uzis lokan uzanton sur la ITU por aŭtentikigi forajn uzantojn, kio kompreneble, krom en la laboratorio, estas malbone aplikebla. Mi donos ekzemplon pri kiel rapide adapti la agordon por aŭtentigo al RADIUS servilo, ekzemple uzata Motoro de Cisco Identity Services:

    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 
    !

    Ĉi tiu integriĝo ebligis ne nur rapide integri la aŭtentikigproceduron kun la AD-adresa servo, sed ankaŭ distingi ĉu la konektita komputilo apartenas al AD, kompreni ĉu tiu aparato estas kompania aŭ persona, kaj taksi la staton de la konektita aparato. .

    Deplojante ASA VPN-Ŝarĝ-ekvilibra Areto

    Deplojante ASA VPN-Ŝarĝ-ekvilibra Areto

    • Ni agordu Travidebla NAT por ke la trafiko inter la kliento kaj la rimedoj de la kompania reto reto ne estu skribaĉita:

    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

    • (LOVE): Por eksponi niajn klientojn al Interreto per la ASA (dum uzado tunnelall opcioj) uzante PAT, kaj ankaŭ eliri tra la sama EKSTER-interfaco, de kiu ili estas konektitaj, vi devas fari la jenajn agordojn

    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 
    !

    • Kiam vi uzas grapolon, estas ege grave ebligi la internan reton kompreni kiun ASA direktu la revenan trafikon al uzantoj, por tio vi devas redistribui itinerojn / 32-adresojn eldonitajn al klientoj.
      Nuntempe ni ankoraŭ ne agordis la areton, sed ni jam havas funkciajn VPN-enirejojn, kiuj povas esti individue konektitaj per FQDN aŭ IP.

    Deplojante ASA VPN-Ŝarĝ-ekvilibra Areto

    Ni vidas la konektitan klienton en la envojiga tabelo de la unua ASA:

    Deplojante ASA VPN-Ŝarĝ-ekvilibra Areto

    Por ke nia tuta VPN-grupo kaj la tuta kompania reto sciu la itineron al nia kliento, ni redistribuos la klientan prefikson en dinamikan enrutigan protokolon, ekzemple 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

    Nun ni havas vojon al la kliento de la dua ASA-2-enirejo kaj uzantoj konektitaj al malsamaj VPN-enirejoj ene de la areto povas, ekzemple, komuniki rekte per kompania softtelefono, kaj ankaŭ redoni trafikon de la rimedoj petitaj de la uzanto. venu al la dezirata VPN-enirejo:

    Deplojante ASA VPN-Ŝarĝ-ekvilibra Areto

  5. Ni pluiru al agordo de la Load-Balancing-grupo.

    La adreso 192.168.31.40 estos uzata kiel Virtuala IP (VIP - ĉiuj VPN-klientoj komence konektos al ĝi), de ĉi tiu adreso la Mastra areto faros REDIRECT al malpli ŝarĝita cluster nodo. Ne forgesu skribi antaŭen kaj inversa DNS-rekordo ambaŭ por ĉiu ekstera adreso/FQDN de ĉiu nodo de la cluster, kaj por 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)#

    • Ni kontrolas la funkciadon de la areto kun du konektitaj klientoj:

    Deplojante ASA VPN-Ŝarĝ-ekvilibra Areto

    • Ni igu la klientan sperton pli oportuna kun la aŭtomate ŝargita AnyConnect-profilo per ASDM.

    Deplojante ASA VPN-Ŝarĝ-ekvilibra Areto

    Ni nomas la profilon en oportuna maniero kaj asocias nian gruppolitikon kun ĝi:

    Deplojante ASA VPN-Ŝarĝ-ekvilibra Areto

    Post la sekva konekto de la kliento, ĉi tiu profilo estos aŭtomate elŝutita kaj instalita en la kliento AnyConnect, do se vi bezonas konektiĝi, simple elektu ĝin el la listo:

    Deplojante ASA VPN-Ŝarĝ-ekvilibra Areto

    Ĉar ni kreis ĉi tiun profilon sur nur unu ASA uzante ASDM, ne forgesu ripeti la paŝojn sur la aliaj ASA en la areto.

Konkludo: Tiel, ni rapide deplojis aron de pluraj VPN-enirejoj kun aŭtomata ŝarĝoekvilibro. Aldoni novajn nodojn al la areto estas facila, kun simpla horizontala skalo per deplojado de novaj ASAv virtualaj maŝinoj aŭ uzante aparataron ASAoj. La funkcio-riĉa AnyConnect-kliento povas multe plibonigi sekuran foran konekton uzante la Pozo (ŝtataj taksoj), plej efike uzata kune kun la sistemo de centralizita kontrolo kaj alirkontado Identecaj Servoj Motoro.

fonto: www.habr.com

Aldoni komenton