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. .
.
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.
La logika topologio de la donita ekzemplo:

Ĉefa Deplojo:
Ni deplojas ASAv-instancojn de la ŝablonoj, kiujn ni bezonas (ASAv5/10/30/50) el la bildo.
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.
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: -> Smart Software Licensing
- En la fenestro kiu malfermiĝas, alklaku la butonon Nova Token

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

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

- 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, .
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:


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:

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

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

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

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


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

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

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-REDISTRIBUTENun 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:

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:

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

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

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:

Ĉ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


















