Այս հոդվածում ես կցանկանայի քայլ առ քայլ հրահանգներ տալ այն մասին, թե ինչպես կարող եք արագորեն կիրառել այս պահին առավել լայնածավալ սխեման: Հեռակա մուտքի VPN բազա մուտք AnyConnect և Cisco ASA - VPN բեռների հավասարակշռման կլաստեր.
Ներածություն: Աշխարհի բազմաթիվ ընկերություններ, հաշվի առնելով COVID-19-ի հետ կապված ներկա իրավիճակը, ջանքեր են գործադրում իրենց աշխատակիցներին հեռավար աշխատանքի տեղափոխելու համար։ Հեռավոր աշխատանքի զանգվածային անցման պատճառով ընկերությունների գոյություն ունեցող VPN դարպասների բեռը կտրուկ մեծանում է և պահանջվում է դրանք մեծացնելու շատ արագ ունակություն: Մյուս կողմից, շատ ընկերություններ ստիպված են հապճեպ զրոյից տիրապետել հեռահար աշխատանքի հայեցակարգին։
Ես պատրաստել եմ քայլ առ քայլ ուղեցույց VPN Load- Balancing Cluster-ի պարզ տեղակայման համար՝ որպես VPN առավել լայնածավալ տեխնոլոգիա:
Ստորև բերված օրինակը բավականին պարզ կլինի օգտագործված վավերացման և թույլտվության ալգորիթմների առումով, բայց լավ տարբերակ կլինի արագ մեկնարկի համար (որը ներկայումս շատերի համար բավարար չէ) տեղակայման ընթացքում ձեր կարիքներին խորը հարմարվելու հնարավորությամբ: գործընթաց։
Համառոտ տեղեկատվություն. VPN Load Balancing Cluster տեխնոլոգիան անսարքություն չէ և կլաստերի գործառույթ չէ իր բնիկ իմաստով, այս տեխնոլոգիան կարող է միավորել բոլորովին այլ ASA մոդելներ (որոշակի սահմանափակումներով)՝ Remote-Access VPN կապերը բեռնելու համար: Նման կլաստերի հանգույցների միջև սեսիաների և կոնֆիգուրացիաների համաժամացում չկա, բայց հնարավոր է ավտոմատ կերպով բեռնել մնացորդային VPN կապերը և ապահովել VPN կապերի սխալ հանդուրժողականությունը այնքան ժամանակ, մինչև գոնե մեկ ակտիվ հանգույց մնա կլաստերում: Կլաստերում բեռնվածությունը ավտոմատ կերպով հավասարակշռվում է՝ կախված հանգույցների ծանրաբեռնվածությունից՝ ըստ VPN նիստերի քանակի:
Կլաստերի որոշակի հանգույցների ձախողման համար (անհրաժեշտության դեպքում) կարող է օգտագործվել ֆայլեր, այնպես որ ակտիվ կապը կկառավարվի ֆայլերի առաջնային հանգույցի կողմից: Filover-ը անհրաժեշտ պայման չէ Load- Balancing կլաստերի ներսում անսարքությունների հանդուրժողականության ապահովման համար, կլաստերն ինքը, հանգույցի ձախողման դեպքում, կտեղափոխի օգտվողի նիստը մեկ այլ կենդանի հանգույց, բայց առանց կապի կարգավիճակը պահպանելու, ինչը ճշգրիտ է: տրամադրված է ներկայացնողի կողմից: Ըստ այդմ, անհրաժեշտության դեպքում հնարավոր է համատեղել այս երկու տեխնոլոգիաները։
VPN Load- Balancing կլաստերը կարող է պարունակել ավելի քան երկու հանգույց:
VPN բեռնվածության հավասարակշռման կլաստերը աջակցվում է ASA 5512-X և ավելի բարձր տարբերակներում:
Քանի որ VPN Load- Balancing կլաստերի մեջ յուրաքանչյուր ASA անկախ միավոր է կարգավորումների առումով, մենք առանձին-առանձին իրականացնում ենք կազմաձևման բոլոր քայլերը յուրաքանչյուր առանձին սարքի վրա:
Մենք տեղադրում ենք մեզ անհրաժեշտ ձևանմուշների ASAv օրինակները (ASAv5/10/30/50) պատկերից:
Մենք վերագրում ենք INSIDE / OUTSIDE ինտերֆեյսները նույն VLAN-ներին (Դուրս՝ իր սեփական VLAN-ում, INSIDE՝ իր սեփական, բայց ընդհանուր առմամբ կլաստերի ներսում, տե՛ս տոպոլոգիան), կարևոր է, որ նույն տիպի ինտերֆեյսները լինեն նույն L2 հատվածում:
Լիցենզիաներ:
Այս պահին ASAv-ի տեղադրումը որևէ լիցենզիա չի ունենա և սահմանափակվելու է 100 Կբիթ/վրկ արագությամբ:
Լիցենզիա տեղադրելու համար դուք պետք է ստեղծեք նշան ձեր Smart-Account-ում. https://software.cisco.com/ -> Smart Software լիցենզավորում
Բացվող պատուհանում սեղմեք կոճակը Նոր նշան
Համոզվեք, որ բացվող պատուհանում կա ակտիվ դաշտ և ստուգված նշան Թույլատրել արտահանման միջոցով վերահսկվող գործառույթը… Առանց այս դաշտի ակտիվ, դուք չեք կարողանա օգտագործել ուժեղ գաղտնագրման և, համապատասխանաբար, VPN-ի գործառույթները: Եթե այս դաշտը ակտիվ չէ, խնդրում ենք կապվել ձեր հաշվի թիմին՝ ակտիվացման հայտով:
Կոճակը սեղմելուց հետո Ստեղծեք նշան, կստեղծվի նշան, որը մենք կօգտագործենք ASAv-ի համար լիցենզիա ստանալու համար, պատճենեք այն.
Կրկնեք C, D, E քայլերը յուրաքանչյուր տեղակայված ASAv-ի համար:
Token-ի պատճենումը հեշտացնելու համար եկեք ժամանակավորապես թույլատրենք telnet-ը: Եկեք կազմաձևենք յուրաքանչյուր ASA-ն (ներքևի օրինակը ցույց է տալիս ASA-1-ի կարգավորումները): telnet-ը չի աշխատում դրսի հետ, եթե դա ձեզ իսկապես անհրաժեշտ է, փոխեք անվտանգության մակարդակը 100-ից դեպի դուրս, այնուհետև վերադարձրեք այն:
!
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-Account ամպում նշան գրանցելու համար դուք պետք է ապահովեք ինտերնետ հասանելիություն ASA-ի համար, մանրամասները՝ այստեղ.
Մի խոսքով, ASA-ն անհրաժեշտ է.
մուտք դեպի ինտերնետ HTTPS-ի միջոցով;
ժամանակի համաժամացում (ավելի ճիշտ՝ NTP-ի միջոցով);
գրանցված DNS սերվեր;
Մենք կապում ենք մեր ASA-ին և կարգավորում ենք 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>
Մենք ստուգում ենք, որ սարքը հաջողությամբ գրանցել է լիցենզիա և առկա են գաղտնագրման տարբերակներ.
Տեղադրեք հիմնական SSL-VPN յուրաքանչյուր դարպասի վրա
Հաջորդը, կարգավորեք մուտքը SSH-ի և 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
!
Որպեսզի ASDM-ն աշխատի, նախ պետք է այն ներբեռնեք cisco.com կայքից, իմ դեպքում դա հետևյալ ֆայլն է.
Որպեսզի AnyConnect հաճախորդը աշխատի, դուք պետք է պատկեր վերբեռնեք յուրաքանչյուր ASA-ում յուրաքանչյուր օգտագործված հաճախորդի աշխատասեղանի OS-ի համար (նախատեսվում է օգտագործել Linux / Windows / MAC), ձեզ անհրաժեշտ կլինի ֆայլ Headend տեղակայման փաթեթ Վերնագրում.
Ներբեռնված ֆայլերը կարող են վերբեռնվել, օրինակ, FTP սերվեր և վերբեռնվել յուրաքանչյուր առանձին ASA-ում.
Մենք կարգավորում ենք ASDM և Self-Signed վկայագիրը SSL-VPN-ի համար (խորհուրդ է տրվում օգտագործել վստահելի վկայագիր արտադրության մեջ): Վիրտուալ կլաստերի հասցեի (vpn-demo.ashes.cc) սահմանված FQDN-ը, ինչպես նաև յուրաքանչյուր կլաստերի հանգույցի արտաքին հասցեի հետ կապված յուրաքանչյուր FQDN, պետք է լուծվի արտաքին DNS գոտում դեպի OUTSIDE ինտերֆեյսի IP հասցեն (կամ քարտեզագրված հասցեին, եթե օգտագործված է նավահանգիստների վերահասցեավորում udp/443 (DTLS) և tcp/443 (TLS)): Հավաստագրին ներկայացվող պահանջների վերաբերյալ մանրամասն տեղեկատվություն նշված է բաժնում Վկայականի ստուգում փաստաթղթեր.
!
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-ն աշխատում է, օրինակ՝
Եկեք իրականացնենք թունելի հիմնական կարգավորումները.
Եկեք կորպորատիվ ցանցը հասանելի դարձնենք թունելի միջոցով և թույլ տանք, որ ինտերնետն ուղղակիորեն գնա (ամենաանվտանգ մեթոդ չէ, եթե միացնող հոսթի վրա պաշտպանություն չկա, հնարավոր է ներթափանցել վարակված հոսթի միջով և ցուցադրել կորպորատիվ տվյալները, տարբերակ split-tunnel-policy tunnelall թույլ կտա հյուրընկալող ամբողջ երթևեկությունը դեպի թունել: Այնուամենայնիվ պառակտված թունել հնարավորություն է տալիս բեռնաթափել VPN դարպասը և չմշակել հյուրընկալող ինտերնետային տրաֆիկը)
Եկեք 192.168.20.0/24 ենթացանցից հասցեներ թողարկենք թունելում գտնվող հոսթներին (10-ից մինչև 30 հասցեների լողավազան (#1 հանգույցի համար)): VPN կլաստերի յուրաքանչյուր հանգույց պետք է ունենա իր սեփական լողավազանը:
Մենք կիրականացնենք հիմնական նույնականացում ASA-ում տեղական ստեղծված օգտատիրոջ հետ (խորհուրդ չի տրվում, սա ամենահեշտ մեթոդն է), ավելի լավ է նույնականացումն անել միջոցով LDAP/RADIUS, կամ ավելի լավ է, փողկապ Բազմգործոն նույնականացում (MFA), Օրինակ Cisco DUO.
(ԿԱՄԸՆՏԻՐ)Վերոնշյալ օրինակում մենք օգտագործեցինք տեղական օգտատեր ITU-ում հեռավոր օգտատերերի իսկությունը հաստատելու համար, ինչը, իհարկե, բացառությամբ լաբորատորիայի, վատ կիրառելի է: Ես օրինակ կբերեմ, թե ինչպես արագ հարմարեցնել նույնականացման կարգավորումը ՌԱԴԻՈՒՍ սերվեր, օրինակ՝ օգտագործված Cisco ինքնության ծառայությունների շարժիչ:
Այս ինտեգրումը հնարավորություն տվեց ոչ միայն արագորեն ինտեգրել նույնականացման ընթացակարգը AD տեղեկատու ծառայության հետ, այլև տարբերակել, թե արդյոք միացված համակարգիչը պատկանում է AD-ին, հասկանալ՝ արդյոք այս սարքը կորպորատիվ է, թե անձնական, և գնահատել միացված սարքի կարգավիճակը։ .
Եկեք կարգավորենք Թափանցիկ NAT-ը, որպեսզի հաճախորդի և կորպորատիվ ցանցի ռեսուրսների միջև տրաֆիկը չխզբզվի.
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
(ԿԱՄԸՆՏԻՐ): ASA-ի միջոցով մեր հաճախորդներին ինտերնետին ծանոթացնելու համար (օգտագործելիս թունել ընտրանքներ) օգտագործելով PAT-ը, ինչպես նաև դուրս գալ նույն OUTSIDE ինտերֆեյսի միջոցով, որից դրանք միացված են, դուք պետք է կատարեք հետևյալ կարգավորումները
Կլաստեր օգտագործելիս չափազանց կարևոր է հնարավորություն ընձեռել ներքին ցանցին հասկանալու, թե որ ASA-ն է ուղղորդում օգտատերերին վերադարձվող երթևեկությունը, դրա համար անհրաժեշտ է վերաբաշխել երթուղիները / հաճախորդներին տրված 32 հասցեները:
Այս պահին մենք դեռ չենք կարգավորել կլաստերը, բայց արդեն ունենք աշխատող VPN դարպասներ, որոնք կարող են անհատապես միանալ FQDN-ի կամ IP-ի միջոցով:
Մենք տեսնում ենք կապակցված հաճախորդը առաջին ASA-ի երթուղային աղյուսակում.
Որպեսզի մեր ամբողջ VPN կլաստերը և ամբողջ կորպորատիվ ցանցը իմանան դեպի մեր հաճախորդը տանող երթուղին, մենք կվերաբաշխենք հաճախորդի նախածանցը դինամիկ երթուղային արձանագրության մեջ, օրինակ՝ OSPF:
Այժմ մենք ունենք երթուղի դեպի հաճախորդ երկրորդ ASA-2 gateway-ից և օգտվողները, որոնք կապված են տարբեր VPN դարպասների կլաստերի ներսում, կարող են, օրինակ, ուղղակիորեն շփվել կորպորատիվ փափուկ հեռախոսի միջոցով, ինչպես նաև վերադարձնել տրաֆիկը օգտատիրոջ պահանջած ռեսուրսներից: եկեք ցանկալի VPN դարպաս՝
192.168.31.40 հասցեն կօգտագործվի որպես վիրտուալ IP (VIP - VPN-ի բոլոր հաճախորդները սկզբում կմիանան դրան), այս հասցեից Master կլաստերը կկատարի ՀԵՂԱՓՈԽՈՒՄ դեպի ավելի քիչ բեռնված կլաստերի հանգույց: Չմոռանաք գրել առաջ և հետադարձ DNS գրառում ինչպես կլաստերի յուրաքանչյուր արտաքին հասցեի / FQDN-ի համար, այնպես էլ VIP-ի համար:
Մենք ստուգում ենք կլաստերի աշխատանքը երկու միացված հաճախորդների հետ.
Եկեք ավելի հարմար դարձնենք հաճախորդների փորձը ASDM-ի միջոցով ավտոմատ բեռնված AnyConnect պրոֆիլով:
Մենք պրոֆիլն անվանում ենք հարմար ձևով և կապում ենք մեր խմբի քաղաքականությունը դրա հետ.
Հաճախորդի հաջորդ միացումից հետո այս պրոֆիլը ավտոմատ կերպով կներբեռնվի և կտեղադրվի AnyConnect հաճախորդում, այնպես որ, եթե ձեզ անհրաժեշտ է միանալ, պարզապես ընտրեք այն ցուցակից.
Քանի որ մենք ստեղծել ենք այս պրոֆիլը միայն մեկ ASA-ի վրա՝ օգտագործելով ASDM, մի մոռացեք կրկնել քայլերը կլաստերի մյուս ASA-ների վրա:
Եզրակացություն. Այսպիսով, մենք արագ տեղակայեցինք մի քանի VPN դարպասների կլաստեր՝ ավտոմատ բեռի հավասարակշռմամբ: Կլաստերին նոր հանգույցներ ավելացնելը հեշտ է՝ պարզ հորիզոնական մասշտաբով՝ նոր ASAv վիրտուալ մեքենաների տեղակայմամբ կամ ապարատային ASA-ների միջոցով: Առանձնահատկություններով հարուստ AnyConnect հաճախորդը կարող է մեծապես բարելավել անվտանգ հեռավոր կապը՝ օգտագործելով Կեցվածք (պետական գնահատականներ), առավել արդյունավետ օգտագործվում է կենտրոնացված հսկողության և մուտքի հաշվառման համակարգի հետ համատեղ Ինքնության ծառայությունների շարժիչ.