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 Modified

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

 Image Modified

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

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

 Image Modified

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

 Image Modified

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

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

Image Modified

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

Image Modified

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

...

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

Image Modified

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

Image Modified

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

Image Modified

Получение

...

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

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

Image Modified

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

Image Modified

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

Image Modified

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

Image Modified

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

Image Modified

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

Image Modified

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

Image Modified

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

Image Modified

Полученный сертификат отправляем на сторону ASDM и добавляем его на вкладке "Configuration"→"Device Management"→"Certificate Management"→"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 Assignment"→"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 можно было работать с токеном, установим драйверы и подключим токен.

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

Image Modified

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

Image Modified

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

Image Modified

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

Image Modified

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

Image Modified

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

Image Modified

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

Image Modified


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

Image RemovedImage Added


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

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

Image Modified

Image Modified

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

Image Modified

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

Image Modified

Устанавливаем приложение 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
languagebashtitleимпорт сертификата на токен
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y cert -w client.cer --id 42

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

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

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

Image Modified

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

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

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

Image Modified

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

Code Block
languagebashtitleПодключение к 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 Modified

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