Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

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

Для создания сети 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"

 Image RemovedImage Added


Переходим на вкладку "Server Roles" и выбираем "Active Directory Certificate Services"

...

Далее откроем программу для управления УЦ, для этого выбираем "AD CS"->"Tools"→"Certification Authority".

 Image RemovedImage Added

Настройка Cisco ASA

Первичная настройка

Теперь приступим к настройке Cisco ASA. Для упрощения процесса настройки, все действия будем производиться через Cisco ASDM. Это графическое приложение для управление ASA. 

...

После этого через браузер нашего клиента подключимся к запущенному веб-серверу ASA. В нашем случае подключаемся по адресу https://192.168.10.22/. Установить ASDM можно на этой страницы.

Image RemovedImage Added

Запустим ASDM и подключимся к МЭ.

...

Через данный графический менеджер можно настроить оставшиеся входные и выходные интерфейсы МЭ. Это можно сделать на вкладке "Configuration"→"Interface settings"→"Interfaces":


Получение

...

корневого сертификата УЦ и сертификата ASA

Приступим к настройке VPN. Для аутентификации с помощью сертификатов, необходимо в первую очередь получить корневой сертификат УЦ и запросить у него сертификат для себя. Получить сертификат УЦ можно через  менеджер управления УЦ. Кликнем правой кнопкой мыши по нашему УЦ и выберем вкладку "Properties":

Image RemovedImage Added

Находим наш корневой сертификат и нажимаем на "View Certificate".

...

Заявку отправляем на сервер и добавляем ее в менеджер УЦ, кликнув правой кнопкой мыши на сервер и выбрав "All Tasks"→"Submit new request...":

Image RemovedImage Added

В открывшемся окне указываем путь до заявки и дальше переходим в директорию "Pending requests" и подписываем заявку. Для этого кликнем правой кнопкой мыши на нашей заявке и выбираем "All Tasks"→"Issue":

Image RemovedImage Added

Подписанный сертификат можно получить в директории "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). Также необходимо разрешить подключение через входной интерфейс:

...

Применяем изменения и нажимаем на кнопку "Save" в панели инструментов.

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

Теперь осталось лишь установить корневой сертификат УЦ на клиенте и получить сертификат у него. Корневой сертификат мы уже с вами получали выше. Для его установки на клиент запустим приложение mmc.

...

Как минимум: зададим Friendly name – его можно выбрать произвольным, это будет идентификатором вашего пользователя:

Image RemovedImage Added

Зададим "Общее имя", оно должно быть идентификатором вашего пользователя:

Image RemovedImage Added

Установим предназначение ключа для подписи:

...

Заявку на сертификат сохраним в файл в кодировке Base64 и отправим ее на сторону УЦ. В УЦ подписываем заявку также как и заявку для ASA из инструкции выше.

Выписанный сертификат импортируем в директорию "Personal" на клиенте:

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

Image Added

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

Image Added

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

...

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


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

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

Code Block
languagebash
titleУстановка пакетов
sudo apt-get update
sudo apt-get install opensc openconnect libengine-pkcs11-openssl gnutls-bin


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

Tip
titleПримечание

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

Code Block
languagebash
titleгенерация ключа и заявки на сертификат
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"


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

Code Block
languagebash
titleимпорт сертификата на токен
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y cert -w client.cer --id 42


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

Code Block
languagebash
titleНастройка p11tool
sudo sh -c "echo 'module:/usr/lib/librtpkcs11ecp.so' > /usr/share/p11-kit/modules/opensc.module"
p11tool --list-tokens

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

Image Added


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

Code Block
languagebash
titleУзнаем пути до сертификатов на токене
p11tool —list-all-certs "pkcs11:model=Rutoken%20ECP;manufacturer=Aktiv%20Co.;serial=363441ca;token=Rutoken%20ECP%20%3cno%20label%3e"

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

Image Added


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

Code Block
languagebash
titleПодключение к VPN с использованием сертификата на токене
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, если он создался, то настройка прошла успешно:

Image Added


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