Общая информация
Для создания сети VPN и настройки аутентификации в ней нам понадобится:
- Cisco ASA (в нашем случае будет использована виртуальная машина ASAv, эмулирующая его работу).
- Сервер с УЦ (в нашем случае будет использован WIndows Server с установленным и настроенным на нем Active Directory Certificate Services).
- Клиент для подключения к сети VPN (в нашем случае это будет AnyConnect на Windows и Linux).
Настройка УЦ
Для начала настроим наш УЦ, который расположен у нас на Windows Server. Чтобы развернуть УЦ необходимо через "Server Manager" поставить "Active Directory Certificate Services". Для этого:
Нажимаем на "Manage"->"Add Roles and Features"
Переходим на вкладку "Server Roles" и выбираем "Active Directory Certificate Services"
На всех остальных вкладках нажимаем "Next".
После установки настраиваем наш УЦ. Для этого нажимаем на значок уведомления и выбираем вкладку "Configure Active Directory Certificate Services"
На второй вкладке установите галочку "Certification Authority"
На всех остальных вкладках нажимаем "Next".
Далее откроем программу для управления УЦ, для этого выбираем "AD CS"->"Tools"→"Certification Authority".
Настройка Cisco ASA
Первичная настройка
Теперь приступим к настройке Cisco ASA. Для упрощения процесса настройки, все действия будем производиться через Cisco ASDM. Это графическое приложение для управление ASA.
Для подключения через ASDM, подключим управляющий интерфейс в одну сеть с нашим компьютером, на котором установлен "ASDM". В нашем случае данной сетью будет являться VMnet8 (192.168.10.0/24).
В VMware узнать адрес данной сети можно через вкладку "Edit"→"Virtual Network Editor...".
Подключить управляющий интерфейс к данной сети можно через настройки виртуальной машины.
Теперь зададим статический IP-адрес для данного интерфейса в нашем МЭ. Для этого выполним следующую последовательность команд:
ciscoasa> en #тут ввод пароля ciscoasa# conf t ciscoasa(config)# int management 0/0 ciscoasa(config-if)# ip add 192.168.10.22 255.255.255.0 ciscoasa(config-if)# nameif mgmt ciscoasa(config-if)# security-level 100 ciscoasa(config-if)# no shut ciscoasa(config-if)# exit ciscoasa(config)# http server enable ciscoasa(config)# http 0 0 mgmt #создание администратора для удаленного подключение ciscoasa(config)# username <admin_name> password <password> privilege 15 ciscoasa(config)# wr
После этого через браузер нашего клиента подключимся к запущенному веб-серверу ASA. В нашем случае подключаемся по адресу https://192.168.10.22/. Установить ASDM можно на этой страницы.
Запустим ASDM и подключимся к МЭ.
Через данный графический менеджер можно настроить оставшиеся входные и выходные интерфейсы МЭ. Это можно сделать на вкладке "Configuration"→"Interface settings"→"Interfaces":
Получение сертификатов для УЦ
Приступим к настройке VPN. Для аутентификации с помощью сертификатов, необходимо в первую очередь получить корневой сертификат УЦ и запросить у него сертификат для себя. Получить сертификат УЦ можно через менеджер управления УЦ. Кликнем правой кнопкой мыши по нашему УЦ и выберем вкладку "Properties":
Находим наш корневой сертификат и нажимаем на "View Certificate".
Копируем его в файл в кодировке Base64 и отправляем его в ASDM.
В ASDM выбираем "Configuration"→"Device Management"→"Certificate Management"→"CA Certificates"→"Add" и вставляем туда корневой сертификат УЦ. Я это сделал скопировав содержимое файла сертификата в PEM формате, но можно импортировать его и через файл.
После того как корневой сертификат был импортирован, необходимо создать заявку на сертификат для ASA. Для этого переходим на вкладку "Configuration"→"Device Management"→"Certificate Management"→"Identity Certificates"→"Add" и создаем заявку для ключа по умолчанию:
Заявку отправляем на сервер и добавляем ее в менеджер УЦ, кликнув правой кнопкой мыши на сервер и выбрав "All Tasks"→"Submit new request...":
В открывшемся окне указываем путь до заявки и дальше переходим в директорию "Pending requests" и подписываем заявку. Для этого кликнем правой кнопкой мыши на нашей заявке и выбираем "All Tasks"→"Issue":
Подписанный сертификат можно получить в директории "Issued Certificates". Ищем наш сертификат и копируем его в файл в кодировке Base64:
Полученный сертификат отправляем на сторону ASDM и добавляем его на вкладке "Configuration"→"Device Management"→"Certificate Management"→"Identity Certificates"→"Install" для нашего запроса:
Настройка VPN на ASA
На стороне МЭ осталось настроить сам VPN. Для этого переходим на вкладку "Configuration"→"Remote access VPN"→"Network client Access"→"AnyConnect Connection Profiles". Установим галку напротив "Enable Cisco AnyConnect VPN Client access on the interfaces selected in the table below" (после установки данной опции от вас могут потребовать установить в МЭ пакеты с AnyConnect для Windows и Linux). Также необходимо разрешить подключение через входной интерфейс:
Для профиля "DefaultWEBVPNGroup" установим опцию SSL Enabled и отредактируем его, нажав "Edit":
В открывшемся окне установим аутентификацию с помощью сертификата:
Применим изменения, нажав "Apply".
Теперь необходимо задать диапазон VPN адресов для клиентов. Для этого переходим на вкладку "Configuration"→"Remote access VPN"→"Network client Access"→"Address Assignment"→"Address Pools"→"Add" и создадим свой диапазон:
Применяем изменения.
Далее переходим на вкладку "Configuration"→"Remote access VPN"→"Network client Access"→"Group Policy" и дважды кликаем на политику DfltGrpPolicy:
В открывшемся окне устанавливаем выбранный диапазон адресов на вкладке "Address Pools":
Применяем изменения и нажимаем на кнопку "Save" в панели инструментов.
Настройка клиента
Теперь осталось лишь установить корневой сертификат УЦ на клиенте и получить сертификат у него. Корневой сертификат мы уже с вами получали выше. Для его установки на клиент запустим приложение mmc.
В открывшемся окне выбираем "File"→"Add/Remove Snap-In...".
В открывшемся окне выбираем "Certificates" и нажимаем "Add".
Отобразится диалог и в нем необходимо выбрать "My user account". Нажимаем "Ok". В появившемся каталоге необходимо найти каталог "Trusted Root Certification Authorities", нажать на него правой кнопкой мыши и выбрать задачу импортирования нового сертификата:
В открывшемся окне указываем путь до корневого сертификата.
После того как мы импортировали корневой сертификат на наш клиент, необходимо создать заявку на сертификат для ключа, который будет создан на токене. Чтобы в Windows можно было работать с токеном, установим драйверы и подключим токен.
После того как все необходимые действия были выполнены перейдем обратно в mcc и правой кнопкой мыши кликнем по директории "Personal" и выберем задачу создания запроса на сертификат:
На первых двух вкладках нажимаем "Next" , на третьей выбираем "Legacy key".
В следующем окне задаем опции заявки и ключа, для которого она будет создана:
Как минимум: зададим Friendly name – его можно выбрать произвольным, это будет идентификатором вашего пользователя:
Зададим "Общее имя", оно должно быть идентификатором вашего пользователя:
Установим предназначение ключа для подписи:
И для создания ключа на токене укажем криптопровайдер Рутокен и зададим размер ключа в 2048.
От нас потребуют ввести PIN-код токена:
Заявку на сертификат сохраним в файл в кодировке Base64 и отправим ее на сторону УЦ. В УЦ подписываем заявку также как и заявку для ASA из инструкции выше.
Выписанный сертификат импортируем в директорию "Personal" на клиенте:
Устанавливаем приложение Cisco AnyConnect и подключаемся к нашему сетевому экрану через интерфейс input. То есть по адресу 192.168.92.22:
В процессе подключение, от нас потребуют ввести PIN-код токена:
Если соединение было установлено, то все шаги были произведены верно: