Настройка WebVPN (AnyConnect) на маршрутизаторах Cisco IOS (Cisco 2911/K9)

Функция WebVPN обеспечивает поддержку удаленного доступа пользователей к корпоративным сетям из любого места в Интернете. WebVPN обеспечивает три режима доступа:

 

  • Клиентский — Обеспечивает безопасный доступ к внутренним веб-ресурсам компании (прим. MS Outlook Web Access). Позволяет VPN-пользователям обозревать и получать доступ к файлам, расположенным на Windows серверах в корпоративной сети, посредством (CIFS).
  • Тонкий клиент (Проброс портов) — Позволяет VPN-пользователям запускать клиентские приложения на их ПК через шифрованное соединение в корпоративной сети.
  • Режим туннеля — Режим полного туннельного клиента обеспечивает легкий, централизованный и простой в использовании клиент SSL AnyConnect, который обеспечивает любой доступ к сетевому уровню компании.

 

Рассмотрим самый востребованный вариант настройки WebVPN в режиме туннеля. Настройка будет производится на оборудовании CISCO2911/K9 с версией прошивки 15.4(3)M9. Используемая версия  клиента AnyConnect 4.5.03040.

 

Загрузка AnyConnect Secure Mobility Client на маршрутизатор

Скачиваем пакеты AnyConnect Headend Deployment Package:

https://software.cisco.com/download/home/286281283/type/282364313/release/4.5.05030
Если у вас нет возможности скачать пакеты с оф. сайта cisco.com, то пишите в комментариях, я помогу скачать.

 

Загружаем пакеты на маршрутизатор, любым удобным способом (прим. TFTP):

mkdir flash:/webvpn

copy tftp://192.168.7.2/anyconnect-win-4.5.03040-webdeploy-k9.pkg flash:/webvpn/anyconnect-win-4.5.03040-webdeploy-k9.pkg
copy tftp://192.168.7.2/anyconnect-linux64-4.5.03040-webdeploy-k9.pkg flash:/webvpn/anyconnect-linux64-4.5.03040-webdeploy-k9.pkg 
copy tftp://192.168.7.2/anyconnect-macos-4.5.03040-webdeploy-k9.pkg flash:/webvpn/anyconnect-macos-4.5.03040-webdeploy-k9.pkg

 

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

crypto vpn anyconnect flash:/webvpn/anyconnect-win-4.5.03040-webdeploy-k9.pkg sequence 1 
crypto vpn anyconnect flash:/webvpn/anyconnect-linux64-4.5.03040-webdeploy-k9.pkg sequence 2 
crypto vpn anyconnect flash:/webvpn/anyconnect-macos-4.5.03040-webdeploy-k9.pkg sequence 3

 

Генерация RSA ключей

Выполняем генерацию RSA 1024-битных пары ключей:

crypto key generate rsa label SSLVPN_KEYPAIR modulus 1024 

The name for the keys will be: SSLVPN_KEYPAIR 
% The key modulus size is 1024 bits 
% Generating 1024 bit RSA keys, keys will be non-exportable... 

[OK] (elapsed time was 4 seconds)

 

Выпуск само-подписного сертификата

Объявляем на маршрутизаторе trustpoint, с необходимым набором характеристик и выпускаем сертификат:

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

crypto pki enroll SSLVPN_CERT
% Include the router serial number in the subject name? [yes/no]: yes
% Include an IP address in the subject name? [no]: no
Generate Self Signed Router Certificate? [yes/no]: yes

Router Self Signed Certificate successfully created

 

Включение и настройка AAA аутентификации

Включаем режим AAA (Authentication, Authorization and Accounting), создаем список аутентификации (прим. VPN_USERS), использующий локальную базу данных пользователей и создаем тестового пользователя (прим. test):

aaa new-model
aaa authentication login VPN_USERS local
username user secret cisco

 

Активируем работу https сервера:

ip http secure-server

 

Создание пула IP-адресов для WebVPN

Пользователям WebVPN необходимо назначить IP-адрес LAN, чтобы они могли общаться с нашей сетью. Указываем пул IP-адресов, которые будут назначены VPN-пользователям. Пул IP-адресов может быть либо частью нашей локальной сети, либо совершенно другой сети:

ip local pool VPN-POOL 192.168.100.1 192.168.100.50

 

Настройка Virtual-Template Interface (VTI)

При каждом VPN-подключении позволяет создаётся отдельный виртуальный интерфейс (Virtual-Access). Virtual-Access интерфейс клонируется с Virtual-Template-интерфейса, который настраивается следующим образом:

interface Virtual-Template1 
ip unnumbered GigabitEthernet0/0
В моем случае интерфейс GigabitEthernet0/0, смотрит в сторону локальной сети

 

Если в настройке маршрутизатора используется VRF, то необходимо так же это указать:

interface Virtual-Template1
vrf forwarding LAN
ip unnumbered GigabitEthernet0/0

 

Настройка и включение WEBVPN шлюза

Виртуальный шлюз WebVPN позволяет использовать интерфейс или IP-адрес и номер порта, на котором служба WebVPN будет «прослушивать» входящие соединения:

webvpn gateway VPN_GW
ip interface GigabitEthernet0/1 port 443
ssl trustpoint SSLVPN_CERT
logging enable
inservice

 

Пояснения по командам:

  • Создаем шлюз WebVPN.
  • Указываем используемый интерфейс и порт (GigabitEthernet0/1 — порт провайдера).
  • Указываем какой trustpoint использовать (используем ранее созданный).
  • Включаем логирование.
  • Активируем работу шлюза.

 

Настройка и включение WEBVPN контекста

Контекст WebVPN используется для настройки ряда параметров для нашего VPN-сервера.

 

Пример типовой настройки контекста WebVPN:

webvpn context VPN_CONTEXT
title "WebVPN - Powered By Cisco"
login-message "Enter your credentials"
virtual-template 1
aaa authentication list VPN_USERS
gateway VPN_GW
max-users 5
ssl authenticate verify all

policy group VPN_USERS
functions svc-enabled
timeout idle 600
svc address-pool "VPN_POOL" netmask 255.255.255.0
svc default-domain "example.local"
svc split dns "example.local"
svc split include 192.168.1.0 255.255.255.0
svc dns-server primary 192.168.1.2

default-group-policy VPN_USERS

inservice

 

Пояснения по командам:

  • Задаем текст, который будет отображаться в заголовке страницы веб-браузера.
  • Задаем текст, который будет отображаться в разделе входа в веб-страницу webvpn.
  • Указываем какой шаблон Virtual-Template интерфейса использовать.
  • Указываем какой список аутентификации использовать.
  • Указываем какой использовать шлюз WebVPN.
  • Задаем максимальное кол-во пользователей, которые могут подключится к данному VPN-соединению.
  • Указываем использовать проверку подлинности SSL.
  • (Далее идет настройка политики пользователей)
  • Включаем туннельный режим. Подключившийся VPN-пользователь, получит возможность загрузить на свой ПК клиентское программное обеспечение AnyConnect.
  • Задаем время простоя, после которого пользователь будет отключен.
  • Указываем какой пул IP-адресов использовать, для выдачи IP-адресов подключившимся пользователям.
  • Указываем какой домен использовать по-умолчанию (Если таковой имеется в вашей инфраструктуре).
  • Команды svc split (dns, include) позволяет разделить туннелирование, указав, какой сетевой трафик и dns запросы домена будут отправлены через туннель VPN. Если эта команда не включена, пользователям VPN не будет разрешен доступ к Интернету при подключении к VPN.
  • Указываем какой DNS-сервер использовать при подключении к VPN.
  • Назначаем групповую политику используемую по-умолчанию.
  • Активируем работу контекста.

 

Использование нескольких политик в контексте

К примеру необходимо использовать различный уровень туннельного доступа, для VPN-пользователей, то можно использовать несколько policy group в текущем контексте.

 

К примеру к ранее настроенной policy group VPN_USERS, необходимо еще добавить VPN_ADMINS, в которой будет использоваться split include в другую подсеть компании.

policy group VPN_USERS
 functions svc-enabled
 timeout idle 600
 svc address-pool "VPN_POOL" netmask 255.255.255.0
 svc default-domain "example.local"
 svc split dns "example.local"
 svc split include 192.168.1.0 255.255.255.0
 svc dns-server primary 192.168.1.2

policy group VPN_ADMINS
 functions svc-enabled
 timeout idle 600
 svc address-pool "VPN_POOL" netmask 255.255.255.0
 svc default-domain "example.local"
 svc split dns "example.local"
 svc split include 192.168.2.0 255.255.255.0
 svc dns-server primary 192.168.1.2

 

Принадлежность пользователя к той или иной policy group, можно задать с помощью локальной базы пользователей и при помощи RADIUS. Рассмотрим оба варианта.

 

Локальная политика аутентификации

Ранее мы создали список аутентификации (VPN_USERS), его и будем использовать:

aaa authentication login VPN_USERS local

 

Определим списки атрибутов и зададим имя политики WebVPN, с которой мы хотим сопоставить этот список атрибутов:

aaa attribute list VPN_USERS  
attribute type user-vpn-group "VPN_USERS"

aaa attribute list VPN_ADMINS  
attribute type user-vpn-group "VPN_ADMINS"

 

Теперь создаем пользователей и назначаем их к определенным спискам атрибутов:

username user1 secret cisco
username user1 aaa attribute list DefaultVPNPolicy
username user2 secret cisco
username user2 aaa attribute list FULLVPNPolicy

 

В контексте указываем какой список аутентификации использовать:

webvpn context VPNCONTEXT
aaa authentication list VPN_USERS

 

Теперь при аутентификации пользователей, будет учитываться принадлежность их к той или иной policy group.

 

RADIUS аутентификация

Как настроить Radius аутентификацию с Windows Server 2012 NPS (Network Policy Server) на Cisco IOS можно посмотреть в статье. Принцип настройки аналогичен, с небольшими изменениями.

 

Первым делом создадим в Active Directory две группы безопасности (VPN_Users и VPN_Admins):

 

В оснастке Сервер политики сети (Network Policy Server) добавляем сетевые политики, по аналогии с выше упомянутой статьей. За исключением нескольких параметров:

  • в условиях аутентификации не забываем указать соответственные группы безопасности (VPN_Users и VPN_Admins)
  • в параметрах зависящие от поставщика, используем параметр Cisco-AV-Pair со значением webvpn:user-vpn-group=VPN_ADMINS и webvpn:user-vpn-group=VPN_USERS (где — VPN_ADMINS и VPN_USERS это политики WebVPN)

 

В итоге должна получится такие сетевые политики:

 

Переходим к конфигурации маршрутизатора, добавляем RADIUS-сервер и создаем список аутентификации при помощи RADIUS-сервера:

radius server NPS
address ipv4 192.168.7.2 auth-port 1645 acct-port 1646
key CISCO
exit

aaa group server radius NPS
server name NPS
exit

aaa authentication login VPN group NPS

 

В контексте WebVPN указываем какой список аутентификации использовать:

webvpn context VPNCONTEXT
aaa authentication list VPN

 

Проверка работы

Запускаем на клиенте браузер, вводим внешний адрес нашего роутера 212.212.0.1 и видим приглашение:

 

После авторизации, мы попадаем в своего рода внутренний портал, где так же можем скачать клиент VPN AnyConnect, посредством которого установить туннельное соединение с корпоративной сетью.

 

 

Так же приведу список полезных команд, для получения той или иной статистики по работе WebVPN:

  1. Состояние пула IP-адресов.
  2. Отобразить текущие VPN сессии.
  3. Отобразить детальную статистику по VPN-пользователю.
  4. Отобрать статистику по туннелю.
  5. Отобразить общую статистику по WebVPN.
  6. Включение debug режима.
show ip local pool
show webvpn session context all
show webvpn session user vs context all
show webvpn stats tunnel
show webvpn stats
debug webvpn
 

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОБЛАГОДАРИ АВТОРА

БесполезноСлабоватоПриемлемоОтличноПревосходно (Еще нет оценок)
Загрузка...

Всего комментариев: 15 Комментировать

  1. Григорий /

    //Если у вас нет возможности скачать пакеты с оф. сайта cisco.com, то пишите в комментариях, я помогу скачать.
    Можете помочь с пакетами?

    1. Жаконда / Автор записи

      Отправил письмо вам, ссылкой на скачивание

  2. Денис /

    тоже хотел бы получить.
    Заранее спасибо.

  3. Melisa /

    Так же хотелось бы получить актуальные пакеты. Благодарю заранее.

  4. Роман /

    Можно и мне пакеты? Спасибо!!!

    1. Жаконда / Автор записи

      К сожалению на данный момент, нет такой возможности у меня.

  5. Serg /

    есть вопрос по разделению ролей без radius
    aaa authentication login default local
    aaa authentication login VPN_USERS local
    aaa authorization exec default local
    !
    aaa attribute list VPN_ADMINS
    attribute type user-vpn-group «VPN_ADMINS»
    !
    aaa attribute list VPN_USERS
    attribute type user-vpn-group «VPN_USERS»

    username ADMIN privilege 15 secret 4 WWHfkWR04.1VSyplx2CaWJ3bPgNubTSCvZdY3kk0m0Q
    username VPNADMIN privilege 15 secret 5 $1$JxGY$HdJbwqvy3Xkd23CUE.EVE.
    username VPNADMIN aaa attribute list VPN_ADMINS
    username VPNBUH secret 5 $1$F7V5$FbFtiCBSbXNei5q3j7TtS/
    username VPNBUH aaa attribute list VPN_USERS
    username VPNTDIR secret 5 $1$3TPP$5Zgf8qucluvriO/Tj4P8J1
    username VPNTDIR aaa attribute list VPN_USERS

    webvpn gateway VPN_GW
    ip interface GigabitEthernet0/1.55 port 443
    ssl trustpoint SSLVPN_CERT
    logging enable
    inservice
    !
    webvpn context VPN_CONTEXT
    title «WebVPN — Powered By Cisco»
    login-message «Enter your credentials»
    aaa authentication list VPN_USERS
    gateway VPN_GW
    max-users 40
    !
    ssl authenticate verify all
    inservice
    !
    policy group VPN_USERS
    functions svc-enabled
    timeout idle 600
    svc address-pool «VPN_POOL» netmask 255.255.255.0
    svc split include acl 25
    !
    policy group VPN_ADMINS
    functions svc-enabled
    timeout idle 600
    svc address-pool «VPN_POOL» netmask 255.255.255.0
    svc split include 10.150.10.0 255.255.255.0
    default-group-policy VPN_USERS —эту строку оставляем?

    —————————
    в данном случаи все username отрабатывает через aaa authentication login VPN_USERS local и на aaa attribute list внимания не обращает . Даже пользователь без aaa attribute list будет логиниться через aaa authentication login VPN_USERS local и policy group VPN_USERS потому что оно стоит по default-group-policy VPN_USERS(если строку убрать то выдает ошибку что не прошла авторизация)

    Спасибо!

  6. Антон /

    Привет. Есть возможность поделиться пакетами?

  7. Евгений /

    Добрый день.
    Имеется в наличии Cisco C881W-E-K9
    Настроено все аналогично как в данной статье (за исключением Radius — не используется).
    Но anyconnect постоянно реконектится, поэтому работать на RDP через данный тунель невозможно.
    МОжет кто то сталкивался? Может какието мысли, советы?
    Спасибо!

    1. Жаконда / Автор записи

      А что по нагрузке на самом роутере в момент обырыва ? Да и в целом ? Такое ощущение что именно в этом кроется проблема.

    2. Digital /

      Удалось ли победить эту проблему?

      Похожая ситуация
      Максимальная скорость закачки 2-3 Мегабайта в секунду при этом процессор на маршрутизаторе грузится под 80%. Периодически при копировании больших файлов разрывает связь с anyconnect.

      в логах при разрыве:
      323554: Sep 22 16:10:39: %SYS-2-MALLOCFAIL: Memory allocation of 1740 bytes failed from 0x300B0F54, alignment 128
      Pool: I/O Free: 93936 Cause: Memory fragmentation
      Alternate Pool: None Free: 0 Cause: No Alternate pool
      -Process= «encrypt proc», ipl= 3, pid= 338
      -Traceback= 30011630z 300AD45Cz 300AD0D4z 300B0708z 3291FAD0z 3700AD9Cz 3700B0BCz 36FFCE68z 301CA58Cz 33D21D08z 33D20224z 30032B5Cz 30032B40z
      323555: Sep 22 16:10:40: %TCP-6-NOBUFF: TTY0, no buffer available -Process= «encrypt proc», ipl= 3, pid= 338
      323556: Sep 22 16:10:40: %TCP-6-NOBUFF: TTY0, no buffer available -Process= «encrypt proc», ipl= 3, pid= 338

  8. Евгений /

    Да нет, я бы не сказал что сильно загружен роутер, вот вывод команды загрузки процессора при одном установленом тенеле webvpn + 4 ipsec тунеля :
    show processes cpu sorted
    CPU utilization for five seconds: 8%/1%; one minute: 9%; five minutes: 9%

    Кстати, на этом же роутере еще настроен cisco vpn client — все работает отлично и без нареканий — связть не рвется. Но дело в том что на Windows 10 его ставить проблематично, да и вообще для конечного пользователя удобнее конечно anyconnect.

    Кстати, а какой версия IOS у вас используется? У меня c800-universalk9-mz.SPA.154-1.T

  9. Serick /

    Так же хотелось бы получить актуальные пакеты. Благодарю заранее.

  10. Nikolay /

    Добрый день, коллеги!
    Поделитесь, пожалуйста, со мной тоже ссылочкой на скачивание anyconnect.
    Заранее огромное спасибо!

Оставить ответ Жаконда Отменить ответ

семнадцать − одиннадцать =

© IT-блог Жаконды All Rights Reserved.
Яндекс.Метрика