Во оваа статија би сакал да дадам чекор-по-чекор инструкции за тоа како можете брзо да ја распоредите најскалабилната шема во моментот VPN со далечински пристап базиран на пристап AnyConnect и Cisco ASA - Кластер за балансирање на оптоварување VPN.
Вовед: Многу компании ширум светот, поради моменталната ситуација со СОВИД-19, прават напори да ги префрлат своите вработени на работа од далечина. Поради широко распространетата транзиција кон работа на далечина, оптоварувањето на постоечките VPN порти на компаниите критично се зголемува и потребна е многу брза способност за нивно зголемување. Од друга страна, многу компании се принудени набрзина да го совладаат концептот за работа од далечина од нула.
За да им помогне на бизнисите брзо да имплементираат удобен, безбеден и скалабилен VPN пристап за вработените, Cisco обезбедува до 13-неделни лиценци за клиентот AnyConnect SSL-VPN, богат со функции. .
.
Подготвив чекор-по-чекор инструкции за едноставна опција за распоредување на кластер за балансирање на оптоварување VPN како најскалабилна VPN технологија.
Примерот подолу ќе биде прилично едноставен од гледна точка на користените алгоритми за автентикација и авторизација, но ќе биде добра опција за брз почеток (што е нешто што сега им недостасува на многу луѓе) со можност за длабинска адаптација на вашите потреби за време на процесот на распоредување.
Кратки информации: Технологијата на кластер за балансирање на оптоварување на VPN не е неуспешна функција или функција за кластерирање во нејзината природна смисла; оваа технологија може да комбинира сосема различни модели на ASA (со одредени ограничувања) со цел да се вчитаат рамнотежа VPN конекции за далечински пристап. Нема синхронизација на сесии и конфигурации помеѓу јазлите на таков кластер, но можно е автоматски да се вчитаат балансирани VPN конекции и да се обезбеди толеранција на грешки на VPN конекциите додека барем еден активен јазол не остане во кластерот. Оптоварувањето во кластерот се балансира автоматски во зависност од обемот на работа на јазлите според бројот на VPN сесии.
За толеранција на грешки на специфични јазли на кластерот (ако е потребно), можете да користите датотека за датотеки, така што активната врска ќе биде обработена од Примарниот јазол на датотеката. Префрлањето на датотеки не е неопходен услов за да се обезбеди толеранција на грешки во кластерот Load-Balancing; во случај на дефект на јазолот, самиот кластер ќе ја префрли корисничката сесија на друг жив јазол, но без одржување на статусот на врската, што е токму она што датотеката обезбедува. Според тоа, овие две технологии може да се комбинираат доколку е потребно.
Кластерот за балансирање на оптоварување VPN може да содржи повеќе од два јазли.
Кластерот за балансирање на оптоварување VPN е поддржан на ASA 5512-X и повисоко.
Бидејќи секој ASA во кластерот VPN Load-Balancing е независна единица во однос на поставките, ние ги извршуваме сите чекори за конфигурација поединечно на секој поединечен уред.
Логичката топологија на дадениот пример е:

Почетно распоредување:
Ние распоредуваме ASAv примероци од шаблоните што ни се потребни (ASAv5/10/30/50) од сликата.
Доделуваме интерфејси INSIDE/OUTSIDE на истиот VLAN (Надвор во сопствен VLAN, ВНАТРЕ во свој, но вообичаен во кластерот, видете ја топологијата), важно е интерфејсите од ист тип да се наоѓаат во истиот L2 сегмент.
Лиценци:
- Во моментот на инсталацијата, ASAv нема да има никакви лиценци и ќе биде ограничен на 100 kbit/sec.
- За да инсталирате лиценца, треба да генерирате токен во вашата сметка на Smart-Account: -> Лиценцирање за паметен софтвер
- Во прозорецот што се отвора, кликнете на копчето Нов токен

- Проверете дали полето во прозорецот што се отвора е активно и полето за избор е означено Дозволете функционалност контролирана од извоз... Без ова активно поле, нема да можете да користите силни функции за шифрирање и, соодветно, VPN. Ако ова поле не е активно, ве молиме контактирајте го тимот на вашата сметка за да побарате активирање.

- По притискање на копчето Создадете знак, ќе се создаде токен што ќе го користиме за да добиеме лиценца за ASAv, копирајте го:

- Ајде да ги повториме чекорите C, D, E за секој распореден ASAv.
- За да го олесниме копирањето на токенот, ајде привремено да овозможиме телнет. Ајде да ја конфигурираме секоја ASA (примерот подолу ги илустрира поставките на ASA-1). телнет од надвор не работи, ако навистина ти треба, смени го безбедносното ниво на 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. Linux/Windows/MAC) ќе ви треба датотека со Пакет за распоредување на Headend Во насловот:

- Преземените датотеки може да се подигнат, на пример, на FTP сервер и да се подигнат на секој поединечен ASA:

- Конфигурираме ASDM и Self-Signed сертификат за SSL-VPN (се препорачува да се користи доверлив сертификат во производството). Воспоставениот FQDN на виртуелната адреса на кластерот (vpn-demo.ashes.cc), како и секој FQDN поврзан со надворешната адреса на секој јазол на кластерот мора да се реши во надворешната DNS зона до IP адресата на интерфејсот OUTSIDE (или до мапираната адреса ако се користи препраќање порта 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, не заборавајте да ја наведете портата, на пример:

- Ајде да ги извршиме основните поставки на тунелот:
- Ќе ја направиме корпоративната мрежа достапна преку тунел и ќе го поврземе интернетот директно (не е најбезбедниот метод во отсуство на безбедносни мерки на поврзувачкиот хост, можно е да се навлезе преку заразен домаќин и да се излезат корпоративни податоци, опција Сплит-тунел-политика тунел ќе го овозможи целиот сообраќај на домаќинот во тунелот. Сепак Сплит-тунел овозможува да се ослободи портата VPN и да не се обработува интернет сообраќајот на домаќинот)
- Ќе издадеме хостови во тунелот со адреси од подмрежата 192.168.20.0/24 (базен од 10 до 30 адреси (за јазол #1)). Секој јазол во кластерот мора да има сопствен VPN базен.
- Ајде да извршиме основна автентикација со локално креиран корисник на ASA (Ова не се препорачува, ова е наједноставниот метод), подобро е да се направи автентикација преку LDAP/RADIUS, или уште подобро, вратоврска Повеќефакторска автентикација (MFA), На пример, 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 !- (ИЗБОРЕН): Во горниот пример, користевме локален корисник на заштитниот ѕид за автентикација на далечински корисници, што секако е од мала корист освен во лабораторија. Ќе дадам пример за тоа како брзо да се прилагоди поставувањето за автентикација РАДИУС сервер, користен на пример Мотор за услуги за идентитет на 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 !Оваа интеграција овозможи не само брзо интегрирање на постапката за автентикација со услугата AD директориум, туку и да се направи разлика дали поврзаниот компјутер припаѓа на AD, да се разбере дали е корпоративен или личен уред и да се процени состојбата на поврзаниот уред.


- Ајде да го конфигурираме Transparent 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 од каде што се поврзани, треба да ги направите следните поставки
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 !- Исклучително е важно кога се користи кластер да се овозможи внатрешната мрежа да разбере која ASA да го насочува повратниот сообраќај до корисниците; за ова е неопходно да се прераспределат рутите /32 адреси издадени на клиентите.
Во моментов, сè уште не сме го конфигурирале кластерот, но веќе имаме работни VPN порти на кои можете индивидуално да се поврзете преку FQDN или IP.

Го гледаме поврзаниот клиент во рутирачката табела на првиот ASA:

Така што целиот наш VPN кластер и целата корпоративна мрежа ја знаат рутата до нашиот клиент, ние ќе го редистрибуираме префиксот на клиентот во динамичен протокол за рутирање, на пример 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Сега имаме рута до клиентот од втората порта ASA-2 и корисниците поврзани со различни VPN порти во кластерот можат, на пример, да комуницираат директно преку корпоративен мек телефон, исто како што ќе пристигне повратниот сообраќај од ресурсите што ги бара корисникот на саканиот VPN портал:

Ајде да продолжиме со поставувањето на кластерот Load-Balancing.
Адресата 192.168.31.40 ќе се користи како виртуелна IP (VIP - сите VPN клиенти првично ќе се поврзат со неа), од оваа адреса Cluster Master ќе се ПРЕДИРЕСИРА во помалку вчитан јазол на кластерот. Не заборавајте да се регистрирате напред и назад записи DNS и за секоја надворешна адреса/FQDN на секој јазол на кластерот, и за ВИП.
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)#- Ја проверуваме работата на кластерот со два поврзани клиенти:

- Ајде да го направиме искуството на клиентот поудобно со автоматски преземен AnyConnect профил преку ASDM.

Ние го именуваме профилот на пригоден начин и ја поврзуваме нашата групна политика со него:

По следното поврзување со клиентот, овој профил автоматски ќе се преземе и инсталира во клиентот AnyConnect, па ако треба да се поврзете, само треба да го изберете од списокот:

Бидејќи со користење на ASDM го создадовме овој профил само на еден ASA, не заборавајте да ги повторите чекорите на преостанатите ASA во кластерот.
Заклучок: Така, брзо распоредивме кластер од неколку VPN порти со автоматско балансирање на оптоварување. Додавањето нови јазли во кластерот е лесно, постигнувајќи едноставно хоризонтално скалирање со распоредување на нови виртуелни машини ASAv или користење на хардверски ASA. Клиентот AnyConnect богат со функции може значително да ги подобри вашите можности за безбедно далечинско поврзување користејќи го Поза (состојба на проценки), најефективно се користи во врска со централизиран систем за контрола на пристап и сметководство Мотор за услуги за идентитет.
Извор: www.habr.com


















