Настройка 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-lite + ENV RR, то необходимо так же это указать:

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

 

Понравилась или оказалась полезной статья, поблагодари автора

 

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

Оставить ответ

шестнадцать + 11 =