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"
Переходим на вкладку Доходим до вкладки "Server Roles" и выбираем "Activ Active Directory Certificate ServiceServices"
На всех остальных вкладках нажимаем "Next".
После установки настраиваем наш УЦ. Для этого нажимаем на значек значок уведомления и выбираем вкладку "Configure Activ Active Directory Certificate ServiceServices"
На второй вкладке выставляем установите галочку напротив "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-адрес для данного интерфейса в нашем МЭ. Для этого выполним следующую последовательность команд:
Code Block | ||||
---|---|---|---|---|
| ||||
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 можно из на этой страницыстранице.
Запустим ASDM и подключимся к МЭ.
Через данный графический менеджер можно настроить оставшиеся входные и выходные интерфейсы МЭ. это Это можно сделать во на вкладке "Configuration"→"Interface settings"→"Interfaces":
Получение
...
корневого сертификата УЦ и сертификата ASA
Приступим к настройке VPN. Для аутентификации с помощью сертификатов, необходимо в первую очередь получить корневой сертификат УЦ и запросить у него сертификат для себя. Получить сертификат УЦ можно через менеджер управления УЦ. Кликнем правой кнопкой мыши по нашем нашему УЦ и выберем вкладку "Properties":
Находим наш корневой сертификат и нажимаем на "View Certificate".
Копируем его в файл в Base64 кодировке в кодировке Base64 и отправляем его в ASDM.
В ASDM переходим во вкладку выбираем "Configuration"→"Device ManagmentManagement"→"Certificate ManagmentManagement"→"CA Certificates"→"Add" и вставляем туда корневой сертификат УЦ. Я это сделал скопировав содержимое файла ертификата сертификата в PEM формате, но можно импортировать его и через файл.
После того как корневой сертификат был импортирован, необходимо создать заявку на сертификат для ASA. Для этого переходим во на вкладку "Configuration"→"Device ManagmentManagement"→"Certificate ManagmentManagement"→"Identity Certificates"→"Add" и создаем заявку для ключа по умолчанию:
Заявку отправляем на сервер и добавляем заявку ее в менеджер УЦ. , кликнув правой кнопкой мыши на сервер и выбрав "All Tasks"→"Submit new request...":
В открывшемся окне указываем путь до заявки и дальше переходим в директорию "Pending requests" и подписываем заявку. Для этого кликнем правой кнопкой мыши на нашей заявке и нажимаем выбираем "All Tasks"→"Issue":
Подписанный сертификат можно получить в директории "Issued Certificates". Ищем наш сертификат и копируем его в файл в кодировке Base64 кодировке:
Полученный сертификат отправляем на сторону ASDM и добавляем его во на вкладке "Configuration"→"Device ManagmentManagement"→"Certificate ManagmentManagement"→"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 AssigmentAssignment"→"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 в 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 отсюда и установим недостающие пакеты:
Code Block | ||
---|---|---|
| ||
sudo apt-get update
sudo apt-get install opensc openconnect libengine-pkcs11-openssl gnutls-bin |
Сгенерируем новую ключевую пару на токене и заявку на сертификат для нее:
Tip | ||
---|---|---|
| ||
Если вы используете OpenSSL 3.0, то необходимо выполнить следующую инструкцию |
Code Block | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y cert -w client.cer --id 42 |
Настроим p11tool, чтобы он мог видеть Рутокен и проверим, что токен распознается.
Code Block | ||
---|---|---|
| ||
sudo sh -c "echo 'module:/usr/lib/librtpkcs11ecp.so' > /usr/share/p11-kit/modules/opensc.module"
p11tool --list-tokens |
Вывод должен быть таким:
Запоминаем URL Рутокена и узнаем путь до сертификатов на нем:
Code Block | ||
---|---|---|
| ||
p11tool —list-all-certs "pkcs11:model=Rutoken%20ECP;manufacturer=Aktiv%20Co.;serial=363441ca;token=Rutoken%20ECP%20%3cno%20label%3e" |
Вывод должен быть таким:
Данный URL нужно использовать, чтобы указать путь для сертификата для подключения в OpenConnect:
Code Block | ||
---|---|---|
| ||
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, если он создался, то настройка прошла успешно:
Настройка закончена.