Page tree

Общая информация

Для создания сети VPN и настройки аутентификации в ней нам понадобится:

  • Cisco ASA (в нашем случае будет использована виртуальная машина ASAv, эмулирующая его работу).
  • Сервер с УЦ (в нашем случае будет использован Windows Server с установленным и настроенным на нем Active Directory Certificate Services).
  • Клиент для подключения к сети VPN (в нашем случае это будет AnyConnect на Windows и OpenConnect  на 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-адрес для данного интерфейса в МЭ. Для этого выполните следующую последовательность команд:

Первичная настройка Cisco ASA
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:

Получение корневого сертификата УЦ и сертификата ASA

Настройте 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 в панели инструментов.

Настройка клиента VPN в Windows (AnyConnect)

Теперь осталось лишь установить корневой сертификат УЦ на клиенте и получить сертификат у него. Корневой сертификат получали выше. Для его установки на клиент запустите приложение 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 на клиенте:

Теперь откройте браузер и подключите к входному интерфейсу ASA -- https://192.168.92.22. Выберите сертификат, который хотите использовать для входа:

После выбора, будет произведен вход и можно скачать anyconnect с открывшейся страницы.

Установите приложение Cisco AnyConnect и подключитесь к сетевому экрану через интерфейс input. То есть по адресу 192.168.92.22:

В процессе подключения введите PIN-код токена:

Если соединение было установлено, то все шаги были произведены верно:


Настройка клиента VPN в Linux (OpenConnect)

В первую очередь установите все необходимое программное обеспечение. Для этого загрузите библиотеку PKCS#11 для Rutoken, установите недостающие пакеты:

sudo apt-get update
sudo apt-get install opensc openconnect libengine-pkcs11-openssl gnutls-bin

Сгенерируйте новую ключевую пару на токене и заявку на сертификат для нее:

Примечание

Если используете OpenSSL 3.0, то необходимо выполнить следующую инструкцию.

pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --id 42 --keypairgen --key-type rsa:2048 -l
openssl
OpenSSL> engine dynamic -pre SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/libpkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/lib/librtpkcs11ecp.so
OpenSSL> req -engine pkcs11 -new -key 0:42 -keyform engine -out client.req -outform PEM -subj "/CN=client2"

Импортируйте полученную заявку на токен:

pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y cert -w client.cer --id 42

Настройте p11tool, чтобы он мог видеть Рутокен и проверьте, что он распознается. 

sudo sh -c "echo 'module:/usr/lib/librtpkcs11ecp.so' > /usr/share/p11-kit/modules/opensc.module"
p11tool --list-tokens

Вывод должен быть таким:

Запомните URL Рутокена и узнайте путь до сертификатов на нем:

p11tool —list-all-certs "pkcs11:model=Rutoken%20ECP;manufacturer=Aktiv%20Co.;serial=363441ca;token=Rutoken%20ECP%20%3cno%20label%3e"

Вывод должен быть таким:

Данный URL нужно использовать, чтобы указать путь для сертификата для подключения в OpenConnect:

sudo openconnect -c "pkcs11:model=Rutoken%20ECP;manufacturer=Aktiv%20Co.;serial=363441ca;token=Rutoken%20ECP%20%3cno%20label%3e;id=%42;type=cert" 192.168.92.22

Запустите отдельное окно с командной строкой и посмотрите, создался ли интерфейс tun0, если он создался, то настройка прошла успешно:

Настройка закончена.

  • No labels