Содержание

Skip to end of metadata
Go to start of metadata

Данная статья применима к:

  • ОС ОН Орёл 2.12;
  • ОС СН Смоленск 1.6;
  • ОС СН Ленинград 8.1.


Установка пакета

Пакет openvpn входит в дистрибутивы ОС ОН Орёл 2.12 и ОС СН Смоленск 1.6 , и устанавливается по умолчанию.

Для быстрой настройки можно рекомендовать дополнительно установить пакеты

  • для машины, предназначенной на роль сервера: 
    • графический инструмент fly-admin-openvpn-server
    • или инструмент командной строки astra-openvpn-sever
  • для клинентской машины дополнительных пакетов не требуется

При установке пакетов fly-admin-openvpn-server и astra-openvpn-server автоматически будет установлен пакет libgost-astra,
подерживающий защитное преобразвание информации в соответствии с алгоритмами ГОСТ.

Быстрая настройка сервера

После установки пакетов для быстрой настройки и запуска сервера OpenVPN можно воспользоваться командной строкой:

astra-openvpn-server start
Или использовать графический инструмент fly-admin-openvpn-server, который после установки будет доступен в меню:

"Пуск" > "Панель управления" > "Сеть" > "Настройка OpenVPN сервера"

При настройке сервера OpenVPN автоматически будет настроен пакет libgost-astra,
поддерживающий защитное преобразвание информации в соответствии с алгоритмами ГОСТ.

При настройке пакета libgost-astra будет переписан конфигурационный файл службы openssl (/etc/ssl/openssl.cnf).

При удачной установке пакета libgost-astra сервер OpenVPN будет автоматически настроен на работу с использованием преобразования "Кузнечик" (grasshopper-cbc).
Если пакет libgost-astra установить не удастся, будет выбран метод защитного преобразования AES-256-GCM.
При необходимости алгоритм защитного преобразования можно изменить из графического инструмента fly-admin-openvpn-server или из командной строки, например:


astra-openvpn-server cipher AES-256-GCM

Настройка клиента

Настройку клиентов можно выполнить с помощью штатного предустановленного графического менеджера сетевых соединений.

Для генерации пар ключей для идентификации клиентов желательно использовать графический инструмент XCA
или использовать возможности, встроенные в пакеты astra-openvpn-server и fly-admin-openvpn-server (см. документацию по этим пакетам).

В случае, если сервер OpenVPN использует метод защитного преобразоания Кузнечик,
на клиентской машине также должен быть установлен и активирован пакет libgost-astra.

Дальнейшие настройки сервиса OpenVPN

Первый запуск

При первом запуске графического инструмента fly-admin-openvpn-server будет создана конфигурация по умолчанию, и будут выпущены сертификаты сервера.

Выполнение этой операции может занять продолжительное время, поэтому пользователю будет показано диалоговое окно с уведомлением и предложением подождать.

ВАЖНО! Графический инструмент не производит автоматический запуск сервиса openvpn, так как предполагается, что пользователь может захотеть внести в созданную конфигурацию свои изменения. Для запуска сервиса openvpn после создания и редактирования конфигурации следует нажать кнопку «Запустить».

При первом запуске будут выполнены следующие операции:

  • будет автоматически создан файл конфигурации сервиса, содержащий достаточные для запуска сервиса настройки;

  • будет создан локальный удостоверяющий центр и выпущены необходимые для работы сертификаты;

  • будут созданы необходимые для работы сервиса файлы;

  • в случае, если на компьютере установлены и настроены библиотеки, поддерживающие матод защитного преобразования по алгоритму ГОСТ Р 34.12-2015 («Кузнечик») , для защиты канала данных openvpn будет выбран этот метод. В противном случае будет выбран метод защитного преобразования AES-256-GCM;

  • будут выполнены настройки сетевого файрволла, и другие настройки операционной системы для работы openvpn как системного сервиса.

При этом, сервис openvpn будет настроен как стандартный системный сервис с автоматических запуском при включении компьютера.

Настройка сервиса OpenVPN

После создания конфигурации по умолчанию, пользователю станет доступно основное окно программы, которое включает две вкладки:

  • «Настройки» и

  • «Клиентские сертификаты»,

кнопки

  • «Запустить»,

  • «Остановить»,

и текстовое поле для вывода сообщений.

На вкладке «Настройки» находятся элементы управления для настройки сервера OpenVPN.

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

Базовые настройки

Базовые настройки включают IP-адрес, сетевую маску, порт и метод защитного преобразования.

  • IP-адрес — позволяет задать IP-адрес создаваемой сети VPN. По умолчанию установлено значение 10.8.0.0. Поддерживается только формат адресов протокола IPv4;

  • Маска – позволяет задать маску создаваемой сети VPN. По умолчанию установлено значение 255.255.255.0. Поддерживается только формат масок протокола IPv4;

  • Порт – сетевой порт сервера, который будут использовать клиенты для подключения. По умолчанию установлено значение 1194. Поддерживаются номера свободных портов от 1 до 65535;

  • Метод защитного преобразования - по умолчанию установлено значение «grasshopper-cbc» («Кузнечик»). Поддерживаются следующие методы:

    • grasshopper-cbc - алгоритм «Кузнечик» ГОСТ Р 34.13–2015;

    • AES-256-GCM - Рекомендован для применения в системах общего назначения;

    • AES-256-CBC - Допустим для применения в системах общего назначения;

    • AES-128-CBC - Для совместимости со старыми системами, к применению не рекомендуется.

Расширенные настройки

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

Задать расположение ранее предустановленных файлов ключей и сертификатов внешнего удостоверяющего центра можно используя следующие поля:

  • Сертификат пользователя – сертификат открытого ключа (например, server.crt);

  • Сертификат ЦС – сертификат открытого ключа удостоверяющего центра (например, ca.crt);

  • Личный ключ – закрытый ключ сервера (например, server.key);

  • Файл Диффи-Хеллмана – файл параметров Диффи-Хеллмана (например, dh2048.pem);

  • Файл аутентификации TLS – файл дополнительной аутентификации TLS (например, ta.key).

Проверка файлов на корректность не проводится.

Кнопка «Сбросить сертификаты» предназначена для удаления всех сертификатов локального удостоверяющего центра и повторного выпуска сертификатов сервера. После выполнения этого действия сертификаты клиентов станут недействительными, и клиенты потеряют возможность подключения к серверу OpenVPN.

Данная операция:

  • останавливает сервис openvpn;

  • удаляет все файлы удостоверяющего центра;

  • удаляет все копии сертификатов сервера и клиентов;

  • создаёт новый удостоверяющий центр;

  • создаёт новые сертификаты сервера;

  • повторно запускает сервер.

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

При использовании собственного удостоверяющего центра, инструмент fly-admin-openvpn-server поддерживает возможность создания ключей и сертификатов для клиентов.

Для управления клиентскими сертификатами перейдите на вкладку
«Клиентские сертификаты».

На данной вкладке расположены

  • таблица с данными о клиентских сертификатах,

кнопки

  • «Создать сертификат»,

  • «Удалить сертификат» и

  • «Открыть директорию сертификатов».

Поля таблицы с данными о клиентских сертификатах:

  • Номер – номер сертификата в базе данных удостоверяющего центра;

  • Имя пользователя – уникальное имя сертификата;

  • Состояние — сертификат действителен или отозван;

  • Страна – название страны;

  • Область – название области;

  • Город – название города;

  • Организация – название организации;

  • Email – адрес электронной почты;

  • Подразделение – название подразделения организации;

  • Имя – имя пользователя;

  • Истекает – дата истечения сертификата;

  • Отозван – дата отзыва сертификата, если он был отозван.

Создание сертификатов

Для создания ключа и сертификата пользователя используется кнопка
«Создать сертификат».
При нажатии на эту кнопку, будет открыт диалог со следующими полями:

  • Имя пользователя – имя сертификата. Имя сертификата должно быть уникальным, не может быть пустым и не может содержать пробелы.

  • Страна – двухбуквенный код страны. Если поле пустое, то по умолчанию будет установлено значение RU;

  • Область – название области. Если поле пустое, то по умолчанию будет установлено значение MO;

  • Город – название города. Если поле пустое, то по умолчанию будет установлено значение Moscow;

  • Организация – название организации. Если поле пустое, то по умолчанию будет установлено значение none;

  • Email – адрес электронной почты. Если поле пустое, то по умолчанию будет установлено значение none;

  • Отдел – название подразделения организации; Если поле пустое, то по умолчанию будет установлено значение none;

  • Имя –имя пользователя. Если поле пустое, то по умолчанию будет установлено значение noname.

При нажатии на кнопку «Да» будут созданы следующие файлы:

  • будет создан новый файл закрытого ключа для клиента с указанным именем клиента (ivanov.key)

  • будет создан файл сертификата открытого ключа, подписанный удостоверяющим центром (ivanov.crt)

  • для удобства последующей передачи клиенту, созданные файлы будут скопированы в каталог /etc/opnvpn/clients-keys/имя_клиента (/etc/opnvpn/clients-keys/ivanov в используемом примере)

  • дополнительно, в это же каталог /etc/opnvpn/clients-keys/имя_клиента, будут скопированы и другие, необходимые для работы клиента, файлы:

    • файл сертификата удостоверяющего центра (по умолчанию - ca.crt) и

    • файл дополнительной аутентификации TLS (ta.key).

ВАЖНО! Клиентские ключи генерируются в открытой (без защитного преобразования) форме, чтобы избежать ввода паролей при подключении клиента к серверу.

Отзыв сертификатов

При использовании центра сертификации, созданного с помощью инструмента fly-admin-openvpn-server, поддерживается отзыв клиентских сертификатов.

Отзыв сертификатов применяется для запрета подключений клиента, даже тогда, когда в распоряжении клиента имеются копии всех сертификатов и ключей.

Для отзыва сертификата выберите в таблице клиентов строку с отзываемым сертификатом и нажмите кнопку «Отозвать сертификат».

При выполнении этой операции:

  • сертификат клиента ivanov в базе данных удостоверяющего центра будет помечен, как «отозванный»;

  • будет создан (или обновлён ранее созданный) список отозванных сертифкатов;

  • новый список отозванных сертификатов будет скопирован в каталог /etc/openvpn/keys, и сервер openvpn будет автоматически перезапущен, чтобы обновления немедленно вошли в силу.


Кнопка «Открыть директорию сертификатов» позволяет открыть директорию
/etc/openvpn/keys
в файловом менеджере.

Управление сервисом OpenVPN

Доступность кнопок «Запустить» и «Остановить» отображает статус сервиса.

Когда сервис запущен, становится доступна кнопка «Остановить», а кнопка «Запустить» блокируется, и наоборот.

Для сохранения настроек и запуска сервиса OpenVPN нажмите кнопку «Запустить».

Для остановки сервиса нажмите кнопку «Остановить».

Диагностика работы сервиса и клиента OpenVPN

В процессе работы сервиса и клиента openvpn информация о происходящих событиях записывается в системный журнал сервера или клиента, на котором работает сервис или клиент openvpn.

Для просмотра системного журнала можно использовать следующие команды

journalctl

просмотр всего системного журнала

journalctl -f

просмотр последних событий, и вывод на экран новых событий по мере их появления


Возможен также вывод журнала на экран по мере добавления в него новых сообщений от openvpn:

tail -f /var/log/syslog | grep ovpn-server
будет выводить только сообщения от сервиса openvpn по мере их добавления в системный журнал.

Проверка метода защитного преобразования, используемого при передаче данных openvpn

При каждом подключении VPN-клиента в системный журнал VPN-сервера записывается информация о параметрах подключения, в том числе — о выбранном методе защитного преобразования передаваемых данных для входящего и исходящего каналов, например, в сообщениях о подключении с методом защитного преобразования ГОСТ Р 34.13–2015 «Кузнечик» будет содержаться следующая информация:

Outgoing Data Channel: Cipher 'grasshopper-cbc' initialized with 256 bit key
Outgoing Data Channel: Using 160 bit message hash 'SHA1' for HMAC authentication
Incoming Data Channel: Cipher 'grasshopper-cbc' initialized with 256 bit key
Incoming Data Channel: Using 160 bit message hash 'SHA1' for HMAC authentication

Проверить метод защиного преобразования можно следующей командой:

grep "Data Channel: Cipher" /var/log/syslog

Проверка включения ГОСТ Р 34.13–2015 «Кузнечик»

Отдельно использование метода защитного преобразования можно проверить командой 

grep "grasshopper-cbc" /var/log/syslog

7 Comments

  1. Unknown User (a.zasechkin)

    Подскажите, коллеги.

    grasshopper-cbc шифрование штатным графическим менеджером сетевых соединений поддерживается ?

    В списке его нет.

    Пакет libgost-astra установлен. Сборка Смоленска 1.6-20.06.2018_15.56

    При выборе метода шифрования "По умолчанию" соединение устанавливается, но обрывается серез 120 секуд. (нет обмена)

    Ошибка Authenticate/Decrypt packet error: cipher final failed

    1. Что в файле /etc/ssl/openssl.cnf?

      На компьютер можно посмотреть?

  2. Unknown User (a.zasechkin)

    openssl.cnf

    Собственно в нем ручками не правил ничего.

    Не уточнил.  Это с клиента.

  3. Не вижу в конфигурации включенного ГОСТа.

    Ручная настройка конфигурации openssl

    Добавить в начало файла /etc/ssl/openssl.cnf строку

    openssl_conf = openssl_def

    В конец файла добавить строчки

    [openssl_def]
    engines = engine_section

    [engine_section]
    gost-astra = gost_section

    [gost_section]
    engine_id = gost-astra
    dynamic_path = /usr/lib/x86_64-linux-gnu/engines-1.1/gost-astra.so
    default_algorithms = ALL
    CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet

    1. Unknown User (a.zasechkin)

      Значит при установке пакета libgost-astra  /etc/ssl/openssl.cnf не правится

    2. Александр Левдонский , нашел алгоритм для госта 2012. Следует явно указать gost2012_256 или gost2012_512

      Генерация ключевой пары ГОСТ в файл

      openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out seckey.pem

  4. В upload выложена новая версия libgost-astra 0.0.5, в которую добавлены правильные триггеры для настройки openssl