...
Оглавление |
---|
Введение
...
OpenVPN — — кроссплатформенное , гибкое и удобное решение для организации VPNвиртуальных защищенных сетей.
Для допуска в виртуальную сеть, построенную на базе OpenVPN, клиент должен авторизоваться. В OpenVPN это можно сделать 3 способами:
- по логину и паролю;
- по ключу и сертификату в файлах ( См. Управление сертификатами и ключами для клиентов OpenVPN);
- по ключу и сертификату на «борту» криптографического USB-токена в ключевом носителе (токене или смарт-картыкарте).
Далее в статье описана настройка авторизации В статье будет описана авторизация в OpenVPN с помощью криптографического USB-токена ключевого носителя Рутокен ЭЦП. Рутокен ЭЦП надежно защищен PIN-кодом от несанкционированного доступа и блокируется при исчерпании попыток ввода PIN-кода, поэтому злоумышленник не попадет в VPN даже в случае кражи токена. Кроме того, в . В Рутокен ЭЦП аппаратно реализованы алгоритмы ГОСТ и RSA, поэтому аутентификация производится «на борту» проверка аутентификационных данных производится внутри токена. Благодаря этому закрытый Закрытый ключ никогда не покидает токен и его невозможно украсть извлекается из носителя, что предотвращает его возможную утечку из оперативной памяти компьютера с помощью троянов.
В статье будет показано, как развернуть тестовый VPN , а также корпоративный УЦ на базе приложения XCA. С помощью УЦ будет создан ключ и сертификат сервера OpenVPN и произведена инициализация токена клиента. Затем настроим клиент OpenVPN таким образом, чтобы пользователь мог авторизоваться в OpenVPN с помощью Рутокен ЭЦП.
...
Стенд с сервером OpenVPN и XCA поднят на Astralinux Smolensk построен на Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.6 update оперативное обновление 2
Установка и настройка удостоверяющего центра на сервере
...
Для начала установим системные компоненты и утилиты, необходимые для работы Рутокен ЭЦП и XCA:
Блок кодаcommand |
---|
sudo apt -get install libccid libpcsclite1 pcscd xca |
Для установки библиотеки librtpkcs11ecp.so следует перейти по указанной ссылке и скачать необходимую версию:
https://www.rutoken.ru/support/download/pkcs/
Блок кодаcommand |
---|
sudo dpkg -i librtpkcs11ecp_1.8.2.0-1_amd64.deb |
Запустим XCA:
Меню "Пуск" → Утилиты → Цифровые сертификаты XCA
...
Создадим сертификат УЦ: раздел "Сертификаты" → "Новый сертификат" согласно согласно нижеуказанным скриншотамснимкам:
Создание сертификата сервера OpenVPN
...
Создадим сертификат сервера: раздел "Сертификаты"→ "СертификатыНовый сертификат" согласно представленным скриншотам.снимкам:
Создание сертификата клиента на Рутокен ЭЦП
...
Для этого указываем путь к ней: Файл → Опции → PKCS#11 provider → "Добавить" и указываем путь до библиотеки pkcs11(/opt/aktivco/rutokenecp/x86_64/librtpkcs11ecp.so)
Информация |
---|
XCA: графический интерфейс инструмент для работы с токенамисертификатами и ключевыми носителями |
Генерация ключей на Рутокен ЭЦП
...
При установке пакетов fly-admin-openvpn-server и astra-openvpn-server автоматически будет установлен пакет libgost-astra, поддерживающий защитное преобразование информации в соответствии с алгоритмами ГОСТ.
Устанавливаем OpenVPN:
Блок кодаcommand |
---|
$ sudo apt-get install fly-admin-openvpn-server |
Настройка
...
Создание DH (Diffie Hellman) ключа
Вы можете создать файл параметров Diffie Hellman (Диффи-Хелмана) с помощью openssl:
Блок кодаcommand |
---|
openssl dhparam -out dh2048.pem 2048 |
Информация |
---|
Вы можете заменить 2048 на другие цифры, например на 4096. Если число выше, безопасность параметров будет выше, но вашему серверу или компьютеру потребуется больше времени для генерации двух простых чисел этой длины. Более низкие номера имеют более низкую безопасность, но требуют значительно меньшего времени для создания |
...
Создаем конфигурационный файл сервера OpenVPN:
Блок кодаcommand |
---|
$ nano openvpn.conf |
Cо следующими параметрами:
...
Запуск OpenVPN
Запускаем сервер OpenVPN
Блок кодаcommand |
---|
$ sudo openvpn --config /home/u/openvpn/openvpn.conf |
Примечание |
---|
В "боевой" конфигурации сервер следует запускать как демон и ключи/сертификаты не должны лежать в /home |
...
На клиентской машине устанавливаем пакеты, необходимые для работы Рутокен ЭЦП:
Блок кодаcommand |
---|
$ sudo apt -get install pcscd libpcsclite1 libccid |
и библиотеку librtpkcs11ecp.so
Блок кодаcommand |
---|
sudo dpkg -i librtpkcs11ecp_1.8.2.0-1_amd64.deb |
Установка OpenVPN на клиенте
Устанавливаем OpenVPN:
Блок кодаcommand |
---|
$ sudo apt -get install openvpn |
Копируем с сервера сертификат Удостоверяющего Центра (УЦ) к примеру в раздел /home/client/openvpn/CA.crt
Создаем конфигурационный файл клиента
Блок кодаcommand |
---|
$ nano openvpnclient.conf |
Cо следующими параметрами:
...
Примечание | ||
---|---|---|
В параметре remote указываем ip-адрес VPN-сервера В параметре pkcs11-providers указываем путь к библиотеке PKCS#11 Рутокен. В параметре
|
Подключение к VPN-серверу
Подключаемся к VPN-серверу:
Блок кодаcommand |
---|
sudo openvpn --config /home/client/openvpnclient.conf |
По запросу следует ввести PIN-код к Рутокену ЭЦП.
...