Перейти к содержанию

Общие сведения об OpenVPN

Механизмы безопасности OpenVPN#

В данном разделе представлен краткий обзор механизмов безопасности и режимов эксплуатации OpenVPN.

К требованиям безопасности при использовании виртуальных частных сетей относятся обеспечение проверки подлинности, конфиденциальности и целостности. В OpenVPN могут быть использованы два различных механизма безопасности: с использованием статических ключей и протокола TLS (transport layer security).

Примечание

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

Использование СКЗИ «МагПро КриптоПакет» версия 4.0#

В Numa Edge имеется возможность использования СКЗИ «МагПро КриптоПакет» версия 4.0 (СЕИУ.00009-05) в исполнении «OpenVPN-ГОСТ» (исполнение 7).

«МагПро КриптоПакет» 4.0 в исполнении «OpenVPN-ГОСТ» реализует следующие функции:

  • создание и проверку электронной подписи в соответствии с ГОСТ Р 34.10 для файлов и данных, содержащихся в областях оперативной памяти;
  • зашифрование и расшифрование в соответствии с ГОСТ Р 34.12-2015, ГОСТ Р 34.13-2015 и ГОСТ 28147-89 (только для взаимодействия с ПО, не поддерживающим ГОСТ Р 34.12-2015) файлов и данных, содержащихся в областях оперативной памяти;
  • имитозащиту в соответствии с ГОСТ Р 34.13-2015, HMAC на основе ГОСТ Р 34.11-2012, а также ГОСТ 28147-89 (только для взаимодействия с ПО, не поддерживающим ГОСТ Р 34.13-2015) файлов и данных, содержащихся в областях оперативной памяти;
  • вычисление ключа парной связи по алгоритму VKO с использованием как эфемерных, так и долговременных пар закрытых и открытых ключей, созданных в соответствии с ГОСТ Р 34.10;
  • вычисление значения хэш-функции в соответствии с ГОСТ Р 34.11 для файлов и данных, содержащихся в областях оперативной памяти;
  • выработку случайного числа заданной длины;
  • вычисление открытых и закрытых ключей проверки подписи в соответствии с ГОСТ Р 34.10;
  • формирование производного сеансового ключа;
  • импорт криптографических ключей в СКЗИ и их экспорт из СКЗИ;
  • реализацию протокола TLS с использованием российских криптонаборов, определенных реализациями ТК26.

При использовании Numa Edge c СКЗИ «МагПро КриптоПакет» должны соблюдаться требования следующих документов:

Конфигурирование виртуальной частной сети «OpenVPN-ГОСТ» (СКЗИ «МагПро КриптоПакет») осуществляется через стандартную систему конфигурирования Numa Edge и в целом не отличается от использования OpenVPN с общемировыми алгоритмами. Применение СКЗИ «МагПро КриптоПакет» 4.0 осуществляется при выборе специальных алгоритмов шифрования в блоке конфигурирования интерфейса OpenVPN interfaces openvpn <vtunx> encryption <алгоритм>. Алгоритмы (<алгоритм>), при которых для построения VPN будет использоваться непосредственно СКЗИ «МагПро КриптоПакет», отмечены суффиксом «-сс» (например, gost89-cc и magma-mgm-cc. За более подробным описанием обратитесь к документации соответствующего узла конфигурации).

При первом запуске сервиса OpenVPN с СКЗИ «МагПро КриптоПакет» 4.0 будет запущено создание файла инициализации программного датчика случайных чисел с использованием утилиты mkseed (СЕИУ.00009-05 34 10. Программа генерации файла инициализации программного ДСЧ mkseed. Руководство по использованию).

ВНИМАНИЕ

В каждом Изделии на производстве устанавливается уникальная лицензия СКЗИ «МагПро КриптоПакет», привязанная к аппаратной платформе. При переустановке Изделия с дистрибутива на компакт-диске или сброса Изделия к заводским настройкам из меню загрузки лицензия на СКЗИ «МагПро КриптоПакет» будет утеряна. Обратитесь в службу технической поддержки производителя для ее восстановления.

ВНИМАНИЕ

При использовании СКЗИ «МагПро КриптоПакет» не рекомендуется изменять MAC-адреса физических интерфейсов платформы Numa Edge. Одновременное изменение MAC-адресов всех физических интерфейсов платформы приведет к невозможности проверки лицензии на СКЗИ «МагПро КриптоПакет».

Требования к процедурам администрирования#

При использовании Numa Edge c СКЗИ «МагПро КриптоПакет» управление Изделия должно осуществляться при помощи специализированного автоматизированного рабочего места администратора (далее – АРМ администратора).

Конфигурирование Numa Edge с АРМ администратора может осуществляться следующими способами:

  • локально, путем подключения по последовательному интерфейсу RS-232;
  • удаленно по протоколу SSH;
  • удаленно через веб-интерфейс по протоколам HTTP/HTTPS.

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

  • из контролируемой зоны по незащищенному каналу только при невозможности подключения к этому каналу нарушителя;
  • из-за пределов контролируемой зоны или при возможности подключения к каналу нарушителя – только по защищенным с использованием сертифицированного ФСБ СКЗИ соединениям.

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

Запрещается установление незащищенных управляющих соединений по беспроводным каналам связи.

При первом сеансе конфигурирования Numa Edge администратору необходимо:

  • создать необходимые учетные записи администраторов и операторов Numa Edge;
  • установить пароли учетным записям администраторов Numa Edge, от имени которых может осуществляться конфигурирование (управление), устанавливаемые пароли должны соответствовать требованиям СЕИУ.00009–05 94 «Средство криптографической защиты информации «МагПро КриптоПакет» 4.0. Правила пользования»;
  • предустановленная учетная запись администратора должна быть удалена, деактивирована или для нее должен быть установлен пароль, соответствующий требованиям, указанным выше, либо отключена парольная аутентификация;
  • при получении конфигурационного файла из сторонних источников он должен передаваться по надежному каналу, исключающему его искажение. В противном случае администратор должен иметь возможность убедиться в целостности получаемой конфигурации любым иным способом.

Требования к АРМ администратора:

  • на АРМ администратора следует устанавливать только лицензионное программное обеспечение фирм-изготовителей, необходимое для целей управления;
  • на АРМ администратора должна быть установлена коммуникационная программа (например, HyperTerminal или putty для OC Windows, minicom для OC Linux), позволяющая работать с соединениями по последовательному интерфейсу RS-232 (в том числе эмулируемому) и/или сетевому соединению по протоколу ssh;
  • АРМ администратора должно быть защищено от НСД сертифицированными ФСБ России средствами, сертифицированными ФСТЭК России средствами или организационно-техническими мерами, исключающими доступ к ним посторонних лиц;
  • АРМ администратора должно быть защищено от воздействия вредоносного кода сертифицированными ФСБ России средствами, сертифицированными ФСТЭК России средствами или организационно-техническими мерами, обеспечивающими невозможность воздействия вредоносного кода;
  • в отношении АРМ администратора должны выполняться требования по защите от НСД, в том числе администратором безопасности должен осуществляться периодический контроль целостности установленного ПО (включая коммуникационную программу);
  • в отношении АРМ администратора необходимо предусмотреть меры, исключающие возможность несанкционированного и необнаруживаемого изменения аппаратной части технических средств;
  • на АРМ администратора запрещается устанавливать средства разработки ПО и отладчики. Если средства отладки приложений нужны для технологических потребностей организации, то их использование должно быть санкционировано администратором безопасности.

Программное обеспечение, устанавливаемое на АРМ администратора, за исключением являющегося частью ОС или средствами защиты информации, такими как СКЗИ, антивирусное ПО, СЗИ от НСД и др., не должно содержать возможностей, позволяющих:

  • модифицировать содержимое произвольных областей памяти;
  • модифицировать собственный код и код других подпрограмм;
  • модифицировать память, выделенную для других подпрограмм;
  • передавать управление в область собственных данных и данных других подпрограмм;
  • несанкционированно модифицировать файлы, содержащие исполняемые коды, при их хранении на жестком диске;
  • повышать предоставленные привилегии;
  • несанкционированно модифицировать настройки ОС;
  • использовать недокументированные фирмой-разработчиком функции ОС.

Хранение настроек (конфигураций) Numa Edge на АРМ администратора допускается только при условии обеспечения контроля их целостности и разграничении права доступа к ним, ограничивающим доступ для всех пользователей, за исключением уполномоченных администраторов.

Статические ключи#

Примечание

Механизм шифрования со статическим ключем несовместим с ГОСТ алгоритмами, соответственно, при их использовании возможно осуществление шифрования только используя механизм TLS.

При использовании статических ключей OpenVPN функционирует следующим образом:

  • администратор, используя команду эксплуатационного режима vpn openvpn-key generate <имя_ключа>, генерирует файл, содержащий определенное число случайных байтов данных. Эти данные представляют собой секретный ключ, часть данных которого будут использоваться для шифрования и расшифровки передаваемых данных, а часть данных для проверки целостности этих данных. Поскольку эти ключи получаются из файла и не изменяются в течение всего срока действия соединения (в отличие от режима TLS), данные ключи называются статическими;
  • администратор передает секретный файл каждому из двух оконечных устройств, используя заранее установленный безопасный канал. Например, файл может быть создан на одном из двух оконечных устройств и затем передан на другое устройство при помощи защищенного протокола передачи файлов, например, такого как SCP. Поскольку наличие этого общего ключа на каждом из устройств является обязательным условием для установления защищенного соединения, он также называется предварительно-распределённым ключом;
  • когда потребуется установить туннель VPN между оконечными устройствами, OpenVPN на одном оконечном устройстве осуществляет проверку подлинности другого оконечного устройства. Проверка подлинности осуществляется на основе предположения, что статический ключ известен только второму оконечному устройству; то есть проверка подлинности осуществляется исходя из предположения, что если некоторому устройству известен предварительно-распределенный ключ, то это устройство является правомерным оконечным устройством;
  • после осуществления проверки подлинности оконечных узлов, OpenVPN формирует на каждой из сторон набор ключей из предварительно-распределенного ключа. Данные ключи используются в следующих целях:
    • некоторые из них используются для шифрования данных, передаваемых через туннель, что позволяет обеспечить конфиденциальность;
    • другие используются в кодах аутентификации сообщений (MAC, message authentication code), которые применяют ключевой хэш-алгоритм к данным, передаваемым через туннель, что позволяет обеспечить целостность.

TLS#

TLS — криптографический протокол, обеспечивающий защищённую передачу данных между узлами в сети Интернет, не требующий наличия предварительно-распределенного ключа. TLS предоставляет возможности аутентификации и безопасной передачи данных через Интернет с использованием криптографических средств. Для взаимной аутентификации каждая из сторон должна поддерживать инфраструктуру открытых ключей (PKI).

OpenVPN использует TLS с сертификатами стандарта X.509 и требует наличия инфраструктуры открытых ключей (PKI) для генерации сертификатов. При использовании TLS OpenVPN работает следующим образом:

  1. используя инфраструктуру открытых ключей, администратор создает сертификаты и связывает их с оконечными узлами. Все сертификаты подписываются удостоверяющим центром (CA). Сертификат оконечного устройства содержит необходимые сведения об узле, в том числе имя оконечного устройства, которое указано в поле Common Name сертификата;
  2. администратор передает каждый сертификат и связанные с ним файлы на соответствующее оконечное устройство, используя заранее установленное безопасное соединение, например, SCP;
  3. при установке туннеля VPN между оконечными устройствами, одно из них имеет пассивную роль, а другое – активную, и соответственно устанавливает TLS-соединение с пассивным устройством;
  4. после установления соединения TLS обе стороны осуществляют проверку подлинности друг друга, используя свою пару открытого и секретного ключа, а также открытый ключ удостоверяющего центра, который известен обоим оконечным устройствам;
  5. после осуществления проверки подлинности устанавливается разделяемый секретный ключ при помощи асимметричных криптографических алгоритмов. Каждое оконечное устройство после этого получает набор сеансовых ключей. Как и в случае с механизмом безопасности, использующим статические ключи, сеансовые ключи затем используются для шифрования данных и аутентификации сообщений (MAC), передаваемых через туннель, для обеспечения целостности и конфиденциальности. Однако в отличие от механизма безопасности, использующего статические ключи, сеансовые ключи используются только для одного сеанса и, соответственно, называются сеансовыми ключами. Для каждого последующего сеанса вырабатывается новый набор сеансовых ключей.

Создание и распределение сертификатов с использованием PKI включает в себя множество вопросов, связанных с обеспечением безопасности, рассмотрение которых выходит за рамки данного документа.

Использование расширений сертификатов X.509#

Для того чтобы избежать возможных атак типа «человек посередине», при подключении клиентского узла к другому клиентскому узлу, выдающему себя за сервер, рекомендуется использовать в сертификатах узлов VPN расширение ExtendedKeyUsage (значения clientAuth и serverAuth). Для получения подробных сведений об использовании расширений сертификатов см. RFC3280.

Примечание

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

Таким образом, следует учитывать, что если в используемом сертификате узла используется расширение ExtendedKeyUsage, и в этом расширении не указано значение clientAuth (или serverAuth), то удаленный сертификат будет признан недопустимым для использования по назначению и его проверка завершится с ошибкой.

Межфилиальный режим#

На рисунке ниже представлен простой пример межфилиального подключения на базе OpenVPN. Данный пример может быть использован, например, для установки соединения между удаленным офисом и центром обработки данных.

vpn1

VPN в межфилиальном режиме на базе OpenVPN

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

Следует отметить, что на каждом оконечном устройстве установлены два IP-адреса:

  • туннельный IP-адрес: виртуальный адрес (VIP) на каждой оконечной точке туннеля. IP-адреса на каждой из оконечных точек туннеля должны лежать в одной подсети. В примере, представленном на рисунке 1, IP-адресами туннеля являются адреса 192.168.100.1 и 192.168.100.2;
  • физический IP-адрес: IP-адрес, назначаемый физическому интерфейсу, поверх которого устанавливается туннель VPN. В данном примере физическими IP-адресами являются адреса 203.0.113.1 и 203.0.113.2.

В большинстве случаев туннель VPN используется для передачи трафика между частными подсетями через глобальную вычислительную сеть (WAN). В текущем примере частные сети 192.168.10.0/24 и 192.168.20.0/24 расположены за оконечными узлами туннеля VPN. При этом на каждом оконечном устройстве следует добавить статический маршрут, направляющий трафик от и к удаленной частной подсети через туннельный интерфейс.

При использовании межфилиального режима одно и то же устройство может установить несколько туннелей к различным точкам. Даже в том случае, если несколько туннелей используют один и тот же физический интерфейс, каждый туннель представлен отдельным IP-адресом туннельного интерфейса и функционирует независимо.

Примеры базовой настройки#

В данном разделе приведены несколько основных вариантов использования OpenVPN, а также описания их настройки.

Межфилиальный режим с использованием статических ключей#

На рисунке ниже приведен вариант подключения VPN в межфилиальном режиме между узлами Edge1 и Edge2 с использованием статических ключей. В данном примере:

  • физические IP-адреса для узлов Edge1 и Edge2 – 203.0.113.1 и 203.0.113.2 соответственно;
  • туннельные IP-адреса для узлов Edge1 и Edge2 – 192.168.100.1 и 192.168.100.2 соответственно;
  • подсети, между которыми организуется взаимодействие:
  • подсеть, которая расположена за узлом Edge1 – 192.168.10.0/24;
  • подсеть, которая расположена за узлом Edge2 – 192.168.20.0/24;
  • статический ключ заранее создан при помощи команды vpn openvpn-key generate <имя_ключа>, где <имя_ключа> – имя секретного ключа, используемое в дальнейшем.

Для настройки туннеля OpenVPN следует создать туннельный интерфейс. Имя интерфейса имеет следующий формат vtun номер; например, vtun0, vtun1 и так далее. В дополнение необходимо добавить статический маршрут для интерфейса, который будет направлять трафик, предназначенный для удаленной подсети через туннельный интерфейс vtun0.

vpn2

Пример подключения в межфилиальном режиме между узлами Edge1 и Edge2 с использованием статических ключей

В этом разделе представлены следующие примеры:

Для настройки оконечного устройства Edge1 следует выполнить указанные шаги в режиме настройки.

Пример – Межфилиальный режим с использованием статических ключей: оконечное устройство Edge1#
  1. Создание узла конфигурации vtun0:
    [edit]
    admin@Edge1# set interfaces openvpn vtun0
    
  2. Назначение туннельного IP-адреса локальному оконечному устройству:
    [edit]
    admin@Edge1# set interfaces openvpn vtun0 local-address 192.168.100.1
    
  3. Установка межфилиального режима OpenVPN:
    [edit]
    admin@Edge1# set interfaces openvpn vtun0 mode site-to-site
    
  4. Назначение туннельного IP-адреса удаленного оконечного устройства:
    [edit]
    admin@Edge1# set interfaces openvpn vtun0 remote-address 192.168.100.2
    
  5. Указание физического IP-адреса удаленного устройства:
    [edit]
    admin@Edge1# set interfaces openvpn vtun0 remote-host 203.0.113.2
    
  6. Указание расположения файла, содержащего статический ключ:
    [edit]
    admin@Edge1# set interfaces openvpn vtun0 shared-secret-key secret
    
  7. Указание используемого алгоритма шифрования:
    [edit]
    admin@Edge1# set interfaces openvpn vtun0 encryption aes256
    
  8. Фиксация изменений:
    [edit]
    admin@Edge1# commit
    
  9. Вывод настройки OpenVPN:
    1
    2
    3
    4
    5
    6
    7
    8
    [edit]
    admin@Edge1# show interfaces openvpn vtun0
       encryption aes256
       local-address 192.168.100.1
       mode site-to-site
       remote-address 192.168.100.2
       remote-host 203.0.113.2
       shared-secret-key secret
    

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

Пример – Межфилиальный режим с использованием статических ключей: статический маршрут на узле Edge1#
  1. Создание статического маршрута для получения доступа к удаленной подсети через туннель OpenVPN:
    [edit]
    admin@Edge1# set protocols static interface-route 192.168.20.0/24 next-hop-interface vtun0
    
  2. Фиксация изменений:
    [edit]
    admin@Edge1# commit
    
  3. Вывод статических маршрутов:
    1
    2
    3
    4
    5
    [edit]
    admin@Edge1# show protocols static
    interface-route 192.168.20.0/24 {
       next-hop-interface vtun0
    }
    

Настройка оконечного устройства VPN Edge2 аналогична настройке Edge1 за исключением того, что локальный и удаленный туннельные IP-адреса меняются местами. Предварительно на устройство Edge2 необходимо передать файл, содержащий статический ключ, при этом следует помнить, что статический ключ следует сохранять в секрете и для его передачи должны использоваться только защищенные каналы. Например, файл статического ключа можно передать на другое оконечное устройство с использованием флэш-накопителя или протокола SCP. Для передачи файла статического ключа по протоколу SCP следует выполнить на устройстве Edge1 следующую команду:

vpn openvpn-key export <имя_ключа> to scp://<пользователь>@<ip-адрес>/<путь_к_файлу>

где

  • имя_ключа – имя статического ключа;
  • пользователь – имя пользователя на устройстве Edge2;
  • ip-адрес – IP-адрес устройства Edge2;
  • путь_к_файлу – путь к файлу на устройстве Edge2, куда будет скопирован ключ.

После доставки файла статического ключа на устройство Edge2 его необходимо импортировать. Для этого следует выполнить команду:

vpn openvpn-key import <имя_ключа> from <путь_к_файлу>

где

  • имя_ключа – имя статического ключа, под которым он будет сохранен в системе;
  • путь_к_файлу – путь к файлу на локальном устройстве.

После чего скопированный ранее файл ключа на носителе устройства Edge2 рекомендуется удалить.

В примере ниже приведен экспорт файла статического ключа на устройство Edge2 по протоколу SCP и его импорт под именем openvpn_key.

Пример – Экспорт и импорт файла статического ключа по протоколу SCP#
admin@edge1:~$ vpn openvpn-key export <имя_ключа> to scp://admin@203.0.113.2/home/admin/secret
admin@edge2:~$ vpn openvpn-key import openvpn_key from secret

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

Пример – Межфилиальный режим с использованием статических ключей: оконечное устройство Edge2#
  1. Создание узла конфигурации vtun0:
    [edit]
    admin@Edge2# set interfaces openvpn vtun0
    
  2. Назначение туннельного IP-адреса локальному оконечному устройств:
    [edit]
    admin@Edge2# set interfaces openvpn vtun0 local-address 192.168.100.2
    
  3. Установка межфилиального режима OpenVPN:
    [edit]
    admin@Edge2# set interfaces openvpn vtun0 mode site-to-site
    
  4. Назначение туннельного IP-адреса удаленного оконечного устройства:
    [edit]
    admin@Edge2# set interfaces openvpn vtun0 remote-address 192.168.100.1
    
  5. Указание физического IP-адреса удаленного устройства:
    [edit]
    admin@Edge2# set interfaces openvpn vtun0 remote-host 203.0.113.1
    
  6. Указание расположения файла, содержащего статический ключ:
    [edit]
    admin@Edge2# set interfaces openvpn vtun0 shared-secret-key openvpn_key
    
  7. Указание используемого алгоритма шифрования:
    [edit]
    admin@Edge2# set interfaces openvpn vtun0 encryption aes256
    
  8. Фиксация изменений:
    [edit]
    admin@Edge2# commit
    Вывод настройки OpenVPN [edit]
    admin@Edge2# show interfaces openvpn vtun0
       encryption aes256
       local-address 192.168.100.2
       mode site-to-site
       remote-address 192.168.100.1
       remote-host 203.0.113.1
       shared-secret-key openvpn_key
    

Разделяемый секретный файл должен быть один и тот же на обоих оконечных узлах (при этом имя ключа может быть различным, как продемонстрировано в примере выше). Следует отметить, что параметр remote-host требуется только на одном из оконечных устройств; таким образом, межфилиальный туннель VPN может быть установлен при условии наличия хотя бы у одного из оконечных устройств достаточной информации для установки соединения с другим.

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

Пример – Межфилиальный режим OpenVPN с использованием статических ключей: статический маршрут на узле Edge2#
  1. Создание статического маршрута для получения доступа к удаленной подсети через туннель OpenVPN:
    [edit]
    admin@Edge2# set protocols static interface-route 192.168.10.0/24 next-hop-interface vtun0
    
  2. Фиксация изменений:
    [edit]
    admin@Edge2# commit
    
  3. Вывод настройки статических маршрутов:
    1
    2
    3
    4
    [edit]
    admin@Edge2# show protocols static interface-route 192.168.10.0/24 {
       next-hop-interface vtun0
    }
    

Межфилиальный режим с использованием TLS#

При использовании TLS в межфилиальном режиме настройка аналогична приведенной в предыдущем разделе за исключением того, что необходимо настроить параметры, относящиеся к TLS, вместо параметра shared-secret-key. Как было указано выше, одно оконечное устройство выполняет пассивную роль, а другое – активную роль.

Следующая настройка аналогична настройке, приведенной в предыдущем разделе. Для использования TLS необходимо предварительно сгенерировать сертификаты x509 для каждого из устройств. Для их генерации может использоваться внутренний удостоверяющий центр Numa Edge. Предполагается, что Edge1 и Edge2 исполняют пассивную и активную роль соответственно, генерация х509 сертификатов осуществляется на устройстве Edge1.

Для генерации сертификатов х509 необходимо выполнить следующие действия:

Пример – Edge1 – Генерация сертификатов для межфилиального режима VPN с использованием TLS#
  1. Создание удостоверяющего центра:
    [edit]
    admin@Edge1# set pki ca MainCA
    
  2. Указание общего имени (common name) удостоверяющего центра:
    [edit]
    admin@Edge1# set pki ca MainCA cn "Main Certification Authority"
    
  3. Указание города в качестве одного из атрибутов идентификатора УЦ:
    [edit]
    admin@Edge1# set pki ca MainCA city SPb
    
  4. Указание страны в качестве одного из атрибутов идентификатора УЦ:
    [edit]
    admin@Edge1# set pki ca MainCA country RU
    
  5. Указание периода действия сертификата удостоверяющего центра:
    [edit]
    admin@Edge1# set pki ca MainCA expiration 1095
    
  6. Фиксация настройки:
    [edit]
    admin@Edge1# commit
    
  7. Вывод настройки:
    1
    2
    3
    4
    5
    6
    7
    8
    [edit]
    admin@Edge1# show -all pki ca MainCA
       city SPb
       cn "Main Certification Authority"
       country RU
       expires-on "Thu Nov  7 12:35:42 2021"
       key-size 256
       key-type gost2012
    
  8. Создание сертификата для узла Edge1:
    [edit]
    admin@Edge1# set pki ca MainCA certificate Edge1-cert
    
  9. Указание общего имени (common name), которое будет указано в сертификате узла Edge1:
    [edit]
    admin@Edge1# set pki ca MainCA certificate Edge1-cert cn "Edge1-cert"
    
  10. Указание срока действия сертификата. Срок действия выпускаемого сертификата не должен превышать срок действия сертификата УЦ:
    [edit]
    admin@Edge1# set pki ca MainCA certificate Edge1-cert expiration 365
    
  11. Создание сертификата для узла Edge2:
    [edit]
    admin@Edge1# set pki ca MainCA certificate Edge2-cert
    
  12. Указание общего имени (common name), которое будет указано в сертификате узла Edge2:
    [edit]
    admin@Edge1# set pki ca MainCA certificate Edge2-cert cn "Edge2-cert"
    
  13. Указание срока действия сертификата. Срок действия выпускаемого сертификата не должен превышать срок действия сертификата УЦ:
    [edit]
    admin@Edge1# set pki ca MainCA certificate Edge2-cert expiration 365
    
  14. Фиксация настройки:
    [edit]
    admin@Edge1# commit
    
  15. Вывод настройки созданных сертификатов:
    [edit]
    admin@Edge1# show pki ca MainCA certificate
       Edge1-cert {
           cn "Edge1 VPN Peer certificate"
           expires-on "Thu Nov 14 11:20:48 2019"
           key-size 256
           key-type gost2012
       }
       Edge2-cert {
           cn "Edge2 VPN Peer certificate"
           expires-on "Thu Nov 14 11:20:48 2019"
           key-size 256
           key-type gost2012
       }
    
  16. Экспорт сертификатов и ключей на устройство Edge2:
    admin@Edge1:~$ pki export certificate Edge2-cert to scp://admin@203.0.113.2/home/admin/
    
  17. Импорт экспортированных сертификатов и ключей на устройстве Edge2. (Имя файла export-archive.9451.tar.gz может различаться и определяется на этапе экспорта сертификатов):
    admin@Edge2:~$ pki import from /home/admin/export-archive.9451.tar.gz
    

Для настройки Edge1 в межфилиальном режиме VPN с использованием TLS необходимо выполнить следующие действия в режиме настройки:

Пример – Edge1 – Настройка OpenVPN – межфилиальный режим с использованием TLS#
  1. Создание узла конфигурации vtun0:
    [edit]
    admin@Edge1# set interfaces openvpn vtun0
    
  2. Назначение локального IP-адреса туннеля VPN:
    [edit]
    admin@Edge1# set interfaces openvpn vtun0 local-address 192.168.100.1  
    
  3. Установка режима OpenVPN:
    [edit]
    admin@Edge1# set interfaces openvpn vtun0 mode site-to-site
    
  4. Установка удаленного IP-адреса туннеля VPN:
    [edit]
    admin@Edge1# set interfaces openvpn vtun0 remote-address 192.168.100.2
    
  5. Указание физического IP-адреса удаленного устройства:
    [edit]
    admin@Edge1# set interfaces openvpn vtun0 remote-host 203.0.113.2
    
  6. Указание транспортного протокола:
    [edit]
    admin@Edge1# set interfaces openvpn vtun0 protocol tcp-passive
    
  7. Установка роли данного оконечного устройства:
    [edit]
    admin@Edge1# set interfaces openvpn vtun0 tls role passive
    
  8. Указание имени сертификата в модуле PKI локального узла:
    [edit]
    admin@Edge1# set interfaces openvpn vtun0 tls x509-cert Edge1-cert
    
  9. Фиксация изменений:
    [edit]
    admin@Edge1# commit
    
  10. Вывод настройки OpenVPN:
    [edit]
    admin@Edge1# show interfaces openvpn vtun0
       local-address 192.168.100.1
       mode site-to-site
           protocol tcp-passive
       remote-address 192.168.100.2
       remote-host 203.0.113.2
       tls {
          role passive
          x509-cert Edge1-cert
       }
    

Следует отметить, что приведенная настройка аналогична приведенной в предыдущем разделе за исключением того, что параметр shared-secret-key заменен на параметр tls.

Для настройки Edge2 в межфилиальном режиме VPN с использованием TLS необходимо выполнить следующие шаги в режиме настройки:

Пример – Edge2 – Настройка OpenVPN – межфилиальный режим с использованием TLS#
  1. Создание узла конфигурации vtun0:
    [edit]
    admin@Edge2# set interfaces openvpn vtun0
    
  2. Назначение локального IP-адреса туннеля VPN:
    [edit]
    admin@Edge2# set interfaces openvpn vtun0 local-address 192.168.100.2
    
  3. Установка режима OpenVPN:
    [edit]
    admin@Edge2# set interfaces openvpn vtun0 mode site-to-site
    
  4. Установка удаленного IP-адреса туннеля VPN:
    [edit]
    admin@Edge2# set interfaces openvpn vtun0 remote-address 192.168.100.1
    
  5. Указание физического IP-адреса удаленного устройства:
    [edit]
    admin@Edge2# set interfaces openvpn vtun0 remote-host 203.0.113.1
    
  6. Указание транспортного протокола:
    [edit]
    admin@Edge1# set interfaces openvpn vtun0 protocol tcp-active
    
  7. Установка роли данного оконечного устройства:
    [edit]
    admin@Edge2# set interfaces openvpn vtun0 tls role active
    
  8. Указание имени сертификата в модуле PKI локального узла:
    [edit]
    admin@Edge2# set interfaces openvpn vtun0 tls x509-cert Edge2-cert
    
  9. Фиксация изменений:
    [edit]
    admin@Edge2# commit
    

Настройка аналогична приведенной в предыдущем примере за исключением того, что указан параметр tls.

Клиент-серверный режим#

При построении VPN удаленного доступа одно оконечное устройство OpenVPN исполняет роль сервера. Удаленные пользователи OpenVPN являются клиентами, которые подключаются к серверу и устанавливают туннели VPN. Такой тип подключения приведен на рисунке ниже.

vpn3

Клиент-серверный режим

Следует отметить, что при использовании клиент-серверного режима OpenVPN требуется использование TLS, при этом сервер исполняет пассивную роль, а клиенты – активную. Таким образом, при использовании этого режима не требуется указывать параметр tls role. В следующем примере предполагается, что устройство Edge1 является сервером, а устройство Edge2 является клиентом. Следует отметить, что клиентом OpenVPN может выступать любое другое устройство.

Для того чтобы настроить Edge1 для работы в клиент-серверном режиме с использованием TLS, необходимо выполнить следующие действия в режиме настройки. В этом примере:

  • параметр mode позволяет указать, что данное устройство будет работать в серверном режиме (server);
  • параметр server subnet позволяет указать подсеть 192.168.100.0/24, из которой сервер будет назначать клиентам туннельные IP-адреса. Также этот параметр определяет туннельный IP-адрес сервера (адрес vtun0 на сервере) 192.168.100.254;
  • значение для параметра remote-host не устанавливается, так как инициировать подключения к серверу будут клиенты.
Пример – Edge1 - Настройки OpenVPN - клиент-серверный режим с использованием TLS (сервер)#
  1. Создание настройки vtun0:
    [edit]
    admin@Edge1# set interfaces openvpn vtun0
    
  2. Установка режима OpenVPN:
    [edit]
    admin@Edge1# set interfaces openvpn vtun0 mode server
    
  3. Указание физического адреса, на котором будут приниматься входящие подключения:
    [edit]
    admin@Edge1# set interfaces openvpn vtun0 local-host 203.0.113.1
    
  4. Установка подсети для туннеля OpenVPN:
    [edit]
    admin@Edge1# set interfaces openvpn vtun0 server subnet 192.168.100.0/24
    
  5. Указание имени сертификата в модуле PKI локального узла:
    [edit]
    admin@Edge1# set interfaces openvpn vtun0 tls x509-cert Edge1-cert
    
  6. Указание транспортного протокола:
    [edit]
    admin@Edge1# set interfaces openvpn vtun0 protocol tcp-passive
    
  7. Фиксация изменений:
    [edit]
    admin@Edge1# commit
    
  8. Вывод настройки OpenVPN:
    [edit]
    admin@Edge1# show interfaces openvpn vtun0
    local-host 203.0.113.1
    mode server
    protocol tcp-passive
    server {
       subnet 192.168.100.0/24
    }
    tls {
       x509-cert Edge1-cert
    }
    

Для настройки Edge2 для работы в клиент-серверном режиме с использованием TLS необходимо выполнить следующие действия в режиме настройки. В этом примере:

  • Edge2 работает в режиме клиента, и для того чтобы клиент имел возможность подключаться к серверу, его IP-адрес должен быть указан в настройке клиента при помощи параметра remote-host;
  • после того как туннель установлен, IP-адрес туннеля устройства Edge2 (то есть адрес vtun0 на Edge2) будет назначен устройством Edge1 из подсети 192.168.100.0/24.
Пример – Edge2 – Настройка OpenVPN – клиент-серверный режим с использованием TLS (клиент)#
  1. Создание узла конфигурации vtun0:
    [edit]
    admin@Edge2# set interfaces openvpn vtun0
    
  2. Установка режима OpenVPN:
    [edit]
    admin@Edge2# set interfaces openvpn vtun0 mode client
    
  3. Указание физического IP-адреса удаленного устройства:
    [edit]
    admin@Edge2# set interfaces openvpn vtun0 remote-host 203.0.113.1
    
  4. Указание транспортного протокола:
    [edit]
    admin@Edge1# set interfaces openvpn vtun0 protocol tcp-active
    
  5. Указание имени сертификата в модуле PKI локального устройства:
    [edit]
    admin@Edge2# set interfaces openvpn vtun0 tls x509-cert Edge2-cert
    
  6. Фиксация изменений:
    [edit]
    admin@Edge2# commit
    
  7. Вывод настройки OpenVPN:
    1
    2
    3
    4
    5
    6
    7
    8
    [edit]
    admin@Edge2# show interfaces openvpn vtun0
    mode client
    protocol tcp-active
    remote-host 203.0.113.1
    tls {
       x509-cert Edge2-cert
    }
    

Настройка межсетевого экрана#

Применение правил межсетевого экрана к туннельному интерфейсу OpenVPN аналогично применению правил к интерфейсам другого типа.

Для настройки межсетевого экрана на устройстве Edge1 необходимо выполнить следующие действия в режиме настройки.

Пример – Настройка правил межсетевого экрана для интерфейса OpenVPN#
  1. Создание узла конфигурации vtun0:
    [edit]
    admin@Edge1# set interfaces openvpn vtun0
    
  2. Установка правила межсетевого экрана для входящего трафика на интерфейсе vtun0. (Политика фильтрации FW-vpn-outbound должна быть ранее определена в блоке police firewall):
    [edit]
    admin@Edge1# set interfaces openvpn vtun0 policy out firewall FW-vpn-outbound
    
  3. Фиксация изменений:
    [edit]
    admin@Edge1# commit
    
  4. Вывод настройки OpenVPN:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [edit]
    admin@Edge1# show interfaces openvpn vtun0
    ...
      policy {
        out {
          firewall FW-vpn-outbound
        }
      }
    ...