Вы здесь

Установка AnyConnect SSLVPN на IOS Router

Web VPN, SSL VPN или AnyConnect VPN - это названия одной и той же технологии, которая позволяет пользователю подключаться к сети предприятия извне, используя протокол HTTPS.
Существуют различные протоколы, позволяющие туннелировать IP пакеты, т.е. создавать виртуальную частную сеть, например IPSec или PPTP, но для конечного пользователя проблема заключается в том, что не все провайдеры пропускают наружу все порты.

Очень часто из интернет кафе мы можем использовать только лишь соединения http и https. Тут как раз и не обойтись без AnyConnect SSLVPN.
С AnyConnect мы можем подключаться из любой заправки или Аэропорта по безопасному соединению.
AnyConnect на сегодняшний день передовая технология от Cisco, которая полноценно пришла на замену старого клиента "Cisco systems VPN Client".
AnyConnect активно поддерживается и регулярно обновляется; существуют дистрибутивы AnyConnect для Windows, Linux, Android, iOS: можно подключаться не только из любого места, но и с использованием практически любого устройства.

Данная статья есть переработанный материал Web VPN: подключение отовсюду, и ориентирована на настройку anyconnect на Cisco IOS Router.
Если у вас Cisco ASA, см. Работа с ASA Anyconnect SSL VPN HUB

Следует отметить, что под работу anyconnect гораздо лучше "заточена" Cisco ASA, поэтому в крупных предприятиях имеет смысл поднимать выделенный сервер VPN на ASA.
С другой стороны, то что умеет делать IOS вполне достаточно для небольшого офиса или для дома.

ustanovka_anyconnect_sslvpn_na_ios_router_01_ciscomaster.ru_0.jpg

Используемое оборудование и версии

CISCO891-K9
IOS Version 15.4(3)M4

Загрузка и установка AnyConnect Secure Mobility Client Package

Сам клиент можно скачать с сайта циски, при этом на роутер следует устанавливать пакеты с расширением .pkg
Существуют пакеты для Linux (32-bit), Linux 64-bit, macosx, win. Важно понимать, что для поддержки определённой ОС, должен быть установлен соответствующий пакет.
При первом подключении пользователи могут загрузить и установить соответствующий package на свою машину.

mkdir flash:/webvpn copy tftp://10.6.14.32/anyconnect-win-3.1.14018-k9.pkg flash:/webvpn/anyconnect-win-3.1.14018-k9.pkg copy tftp://10.6.14.32/anyconnect-macosx-i386-3.1.14018-k9.pkg flash:/anyconnect-macosx-i386-3.1.14018-k9.pkg copy tftp://10.6.14.32/anyconnect-linux-64-3.1.14018-k9.pkg flash:/anyconnect-linux-64-3.1.14018-k9.pkg

Далее устанавливаем пакеты. При установке нескольких пакетов необходимо выставить у пакетов sequence.

crypto vpn anyconnect flash:/webvpn/anyconnect-win-3.1.14018-k9.pkg sequence 1 crypto vpn anyconnect flash:/webvpn/anyconnect-macosx-i386-3.1.14018-k9.pkg sequence 2 crypto vpn anyconnect flash:/webvpn/anyconnect-linux-3.1.14018-k9.pkg sequence 3 crypto vpn anyconnect flash:/webvpn/anyconnect-linux-64-3.1.14018-k9.pkg sequence 4

Генерируем RSA Keypair а также Self-Signed Certificate

SSL используется технологии Public Key Infrastructure (PKI) а также Digital Certificates.
Rivest-Shamir-Adleman (RSA) keypair необходима для формирования signing of the certificate.
В нашем случае мы будем генерировать сертификат для себя, т.е. Self-Signed Certificate, - для этого мы предварительно сгенерируем RSA keypair.

Router(config)#crypto key generate rsa label SSLVPN_KEYPAIR modulus 2048 The name for the keys will be: SSLVPN_KEYPAIR % The key modulus size is 2048 bits % Generating 2048 bit RSA keys, keys will be non-exportable... [OK] (elapsed time was 4 seconds)

Проверяем что у нас получилось:

Router#show crypto key mypubkey rsa SSLVPN_KEYPAIR % Key pair was generated at: 11:00:40 MSK Sep 30 2016 Key name: SSLVPN_KEYPAIR Key type: RSA KEYS Storage Device: not specified Usage: General Purpose Key Key is not exportable. Key Data: 30820122 300D0609 2A864886 F70D0101 01050003 82010F00 3082010A 02820101 00D7464D DD92F508 F9D736B5 8EC168E2 FFC3D9F1 A11D6372 C2ACCB66 1FDCDB93

Создаём PKI trustpoint. Common Name (CN) прописываем внешний IP адрес.

crypto pki trustpoint SSLVPN_CERT enrollment selfsigned subject-name CN=31.24.93.198 rsakeypair SSLVPN_KEYPAIR

Генерируем самоподписный сертификат:

Router(config)#crypto pki enroll SSLVPN_CERT The router has already generated a Self Signed Certificate for trustpoint TP-self-signed-3459063180. If you continue the existing trustpoint and Self Signed Certificate will be deleted. Do you want to continue generating a new Self Signed Certificate? [yes/no]: yes % Include the router serial number in the subject name? [yes/no]: no % Include an IP address in the subject name? [no]: no Generate Self Signed Router Certificate? [yes/no]: yes Router Self Signed Certificate successfully created

Проверяем созданный сертификат:

Router#show crypto pki certificates SSLVPN_CERT Router Self-Signed Certificate Status: Available Certificate Serial Number (hex): 01 Certificate Usage: General Purpose Issuer: hostname=zzzservice_890.zzz.local cn=31.24.93.198 Subject: Name: zzzservice_890.zzz.local hostname=zzzservice_890.zzz.local cn=31.24.93.198 Validity Date: start date: 11:32:51 MSK Sep 30 2016 end date: 04:00:00 MSK Jan 1 2020 Associated Trustpoints: SSLVPN_CERT

Включаем AAA и настраиваем дефолтную и аутентификацию для VPN

aaa new model aaa authentication login default local aaa authentication login vpn_ls local aaa authorization exec default local

Определяем Address Pool, а также необходимые ACL

Address Pool - задаёт адреса, которые будут раздаваться клиентам:

ip local pool ezvpn_pool 10.6.6.5 10.6.6.254
ip access-list extended ssl_vpn_acl permit ip any any ! ip access-list standard ssl_vpn_split_acl permit 10.6.0.0 0.0.255.255

Здесь ssl_vpn_acl задаёт адресацию, куда разрешено ходить клиентам VPN.
ssl_vpn_split_acl определяет Split Tunnel, т.е. на клиенте трафик в сторону 10.6.0.0 0.0.255.255 будет отправлен в туннель, всё остальное согласно локальной маршрутизации. Без этого весь трафик будет