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" поставить "Activ Active Directory Certificate ServiceServices". Для этого:

Нажимаем на "Manage"->"Add Roles and Features"

 Image Removed

Image Added


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

 Image Modified

На всех остальных вкладках нажимаем "Next".

После установки настраиваем наш УЦ. Для этого нажимаем на значек значок уведомления и выбираем вкладку "Configure Activ Active Directory Certificate ServiceServices

 Image Modified

На второй вкладке выставляем установите галочку напротив "Certification Authority"

 Image Modified, все остальные вкладки можно оставить нетронутыми

На всех остальных вкладках нажимаем "Next".

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

 Image RemovedImage Added

Настройка Cisco ASA

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

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

Для подключение подключения через ASDM, подключим управляющий интерфейс в одну сеть с нашим компьютером, на котором установлен "ASDM". В нашем случае данной сетью будет являться VMnet8 (192.168.10.0/24).

 Image Modified 

в В VMware узнать адрес данной сети можно через вкладку "Edit"→"Virtual Network Editor...".

Image Modified

, а подключить Подключить управляющий интерфейс к данной сети можно через настройку настройки виртуальной машины.

Image Modified

Теперь зададим статический IP-адрес для данного интерфейса в нашем МЭ. Для этого выполним следующую последовательность команд:

Code Block
languagebash
titleПервичная настройка Cisco ASA
ciscoasa> en
#тут ввод пароля
ciscoasa# conf t
ciscoasa(config)# int managmentmanagement 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

...

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

Image RemovedImage Added

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

Image Modified

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

Image Modified


Получение

...

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

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

Image RemovedImage Added

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

Image Modified

Копируем его в файл в Base64 кодировке в кодировке Base64  и отправляем его в ASDM.

Image Modified

В ASDM переходим во вкладку выбираем "Configuration"→"Device ManagmentManagement"→"Certificate ManagmentManagement"→"CA Certificates"→"Add" и вставляем туда корневой сертификат УЦ. Я это сделал скопировав содержимое файла ертификата сертификата в PEM формате, но можно импортировать его и через файл.

Image Modified

После того как корневой сертификат был импортирован, необходимо создать заявку на сертификат для ASA. Для этого переходим во на вкладку "Configuration"→"Device ManagmentManagement"→"Certificate ManagmentManagement"→"Identity Certificates"→"Add" и создаем заявку для ключа по умолчанию:

Image Modified

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

Image RemovedImage Added

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

Image RemovedImage Added

Подписанный сертификат можно получить в директории "Issued Certificates". Ищем наш сертификат и копируем его в файл в кодировке Base64 кодировке:

Image Modified

Полученный сертификат отправляем на сторону ASDM и добавляем его во на вкладке "Configuration"→"Device ManagmentManagement"→"Certificate ManagmentManagement"→"Identity Certificates"→"Install" для нашего запроса:

Image Modified

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

Image Modified

Для профиля "DefaultWEBVPNGroup" установите установим опцию SSL Enabled и отредактируйте отредактируем его, нажав "Edit":

Image Modified

В открывшемся окне установите аутентфикацию установим аутентификацию с помощью сертификата:

Image Modified

Примените Применим изменения, нажав "Apply".

Теперь необходимо задать диапазон VPN адресов для клиентов. Для этого переходим во на вкладку "Configuration"→"Remote access VPN"→"Network client Access"→"Address AssigmentAssignment"→"Address Pools"→"Add" и создайте создадим свой диапазндиапазон:

Image Modified

Применяем изменения.

Далее переходим во на вкладку "Configuration"→"Remote access VPN"→"Network client Access"→"Group Policy" и дважды кликаем на  политику DfltGrpPolicy:

Image Modified

В открывшемся окне устанавливаем выбранный диапазон адресов во на вкладке "Address Pools":

Image Modified

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

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

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

Image Modified

В открывшемся окне выбираем вкладку выбираем  "File"→"Add/Remove Snap-In...".

Image Modified

В открывшемся окне выбираем "Certificates" и нажимаем "Add".

 Image Modified

Всплывет Отобразится диалог и в нем необходимо выбрать "My user account". Нажимаем "Ok". В появившемся каталоге необходимо найти каталог "Trusted Root Certification Authorities", нажать на него правой кнопкой мыши и выбрать задачу импортирования нового сертификата:

Image Modified

В открывшемся окне указываем путь до корневого сертификата.

Image Modified


После того как мы импортировали корневой сертификат на наш клиент, необходимо создать заявку на сертификат для ключа, который будет создан на токене. Чтобы на windows в Windows можно было взаимодействовать работать с токеном, установим драйверы и вставим подключим токен.

После того как все необходимые действия были выполнены перейдем обратно в mcc и правой кнопкой мыши кликнем по директории "Personal" и выберем задачу создания запроса на сертификат:

Image Modified

В На первых двух вкладках нажимаем "Next" и в третьей вкладке необходимо выбрать , на третьей выбираем "Legacy key".

Image Modified

В следующем окне задаем опции заявки и ключа, для которого она будет создана:

Image Modified

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

Image RemovedImage Added

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

Image RemovedImage Added

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

Image Modified

И для создания ключа на токене укажем укажем криптопровайдер Рутокен и зададим размер ключа в 2048;.

Image Modified


От нас потребуют ввести пароль от PIN-код токена:

Image RemovedImage Added


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

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

Image Modified

Image Modified

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

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

Image Added

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

Image Added

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

Image Modified

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

Image RemovedImage Added

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

Image Modified


Настройка клиента 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


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