Openvpn гост шифрование. Шифрование OpenVPN

«УТВЕРЖДЕН СЕИУ.00022-01 31 01 - ЛУ Подп. и дата СРЕДСТВО КРИПТОГРАФИЧЕСКОЙ ЗАЩИТЫ ИНФОРМАЦИИ МагПро OpenVPN-ГОСТ вер. 1.0 Взам. инв.№ ...»

УТВЕРЖДЕН

СЕИУ.00022-01 31 01 - ЛУ

Подп. и дата

СРЕДСТВО КРИПТОГРАФИЧЕСКОЙ ЗАЩИТЫ ИНФОРМАЦИИ

МагПро OpenVPN-ГОСТ вер. 1.0

Взам. инв.№ Инв. № дубл.

Руководство системного администратора

СЕИУ.00022-01 31 01

Листов 138

Инв.№ подп. Подп. и дата

Аннотация

Настоящий документ содержит руководство системного администратора по работе с СКЗИ

«МагПро OpenVPN-ГОСТ».

«МагПро» является зарегистрированной торговой маркой ООО «Криптоком».

СЕИУ.00022-01 31 01 3 Содержание 1 ВВЕДЕНИЕ 7 2 УСТАНОВКА МагПро OpenVPN-ГОСТ 8

2.1 Замечания по Linux (использование пакета RPM).................. 8

2.2 Замечания по Linux (без RPM)............................ 8

2.3 Замечания по FreeBSD................................. 8

2.4 Замечания по Windows................................. 8 2.4.1 Установка МагПро OpenVPN-ГОСТ под Windows для запуска пользователями, не имеющими административных прав............... 9 2.4.2 Контроль над сервисом МагПро OpenVPN-ГОСТ из графического интерфейса МагПро OpenVPN-ГОСТ........................ 9 2.4.3 Windows «Run as»................................ 10 2.4.4 Создание иконки Run As в Windows 2000.................. 10 2.4.5 Создание иконки Run As в Windows XP................... 10 2.4.6 Запуск МагПро OpenVPN-ГОСТ под Windows................ 10


3 ВЫБОР МЕЖДУ МАРШРУТИЗИРОВАННОЙ VPN И VPN ТИПА «МОСТ» 12

4 НЕВОЗМОЖНОСТЬ РАБОТЫ МагПро OpenVPN-ГОСТ ПО ПРОТОКОЛУ UDP 14 5 НУМЕРАЦИЯ ЧАСТНЫХ ПОДСЕТЕЙ 15

6 УСТАНОВКА ВАШЕГО СОБСТВЕННОГО УДОСТОВЕРЯЮЩЕГО ЦЕНТРА

(УЦ) И СОЗДАНИЕ СЕРТИФИКАТОВ И КЛЮЧЕЙ ДЛЯ СЕРВЕРА МагПро

OpenVPN-ГОСТ И БОЛЕЕ ОДНОГО КЛИЕНТА 16

6.1 Введение......................................... 16

6.2 Генерация самоподписанного сертификата и ключа удостоверяющего центра.. 17

–  –  –

13 КОНФИГУРИРОВАНИЕ КЛИЕНТ-СПЕЦИФИЧНЫХ ПРАВИЛ И ПОЛИТИК

ДОСТУПА 36

14 ИСПОЛЬЗОВАНИЕ АЛЬТЕРНАТИВНЫХ СПОСОБОВ АУТЕНТИФИКАЦИИ 38

14.1 Использование скриптовых плагинов......................... 38

14.2 Использование объектов общего доступа или DLL в качестве плагинов..... 38

14.3 Использование аутентификации по логину и паролю как единственной формы клиентской аутентификации.............................. 39

–  –  –

1 ВВЕДЕНИЕ МагПро OpenVPN-ГОСТ - полноценная VPN на основе SSL, которая реализует расширение сетевой безопасности слоя OSI 2 или 3 с использованием промышленного стандарта - протокола SSL/TLS, поддерживает гибкие способы аутентификации, основанные на сертификатах и/или на логине/пароле, и позволяет использовать пользовательские или групповые политики контроля доступа с использованием правил брандмауэра, применимые к виртуальному интерфейсу VPN. МагПро OpenVPN-ГОСТ не является сетевым прокси-сервером и не работает через веб-браузер.

МагПро OpenVPN-ГОСТ предлагает масштабируемый режим клиент/сервер, позволяет нескольким клиентам подключаться к одному и тому же серверному процессу МагПро OpenVPN-ГОСТ через один TCP-порт.

Этот документ предоставляет пошаговые инструкции для конфигурирования МагПро OpenVPN-ГОСТ.

–  –  –

2 УСТАНОВКА МагПро OpenVPN-ГОСТ Исполняемые файлы МагПро OpenVPN-ГОСТ следует установить и на клиентской, и на серверной машинах, потому что одни и те же исполняемые файлы предоставляют и клиентские, и серверные функции.

2.1 Замечания по Linux (использование пакета RPM) Если вы пользуетесь дистрибутивом Linux, который поддерживает пакеты RPM (SuSE, Fedora, Redhat, и т.д.), следует инсталлировать МагПро OpenVPN-ГОСТ с использованием этого механизма. Для этого необходимо воспользоваться существующим бинарным файлом RPM для вашего дистрибутива. Имея файл.rpm, вы можете установить его с помощью обычной команды rpm -ivh openvpn-2.1_i386.rpm или rpm -ivh openvpn-2.1_x86_64.rpm или обновить существующую установку с помощью rpm -Uvh openvpn-2.1_i386.rpm.rpm или rpm -Uvh openvpn-2.1_x86_64.rpm

Установка МагПро OpenVPN-ГОСТ из бинарного пакета RPM имеет три зависимости:

2.2 Замечания по Linux (без RPM) Если вы пользуетесь Debian или дистрибутивом Linux, не основанным на RPM, воспользуйтесь пакетным механизмом, специфичным для вашего дистрибутива, таким как apt-get для Debian.

2.3 Замечания по FreeBSD Установка МагПро OpenVPN-ГОСТ на данном типе системы осуществляется путем установки бинарных пакетов.

2.4 Замечания по Windows Помните, что МагПро OpenVPN-ГОСТ будет работать только на Windows 2000 или новее.

Заметьте также, что МагПро OpenVPN-ГОСТ должна быть установлена и запущена пользователем, имеющим административные привилегии (это ограничение определяется Windows, а не МагПро OpenVPN-ГОСТ). Это ограничение можно обойти, запуская МагПро OpenVPNГОСТ в фоновом режиме как сервис, в этом случае даже не имеющие прав администратора пользователи смогут иметь доступ к VPN, когда она будет установлена.

Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 9 2.4.1 Установка МагПро OpenVPN-ГОСТ под Windows для запуска пользователями, не имеющими административных прав В установочный пакет МагПро OpenVPN-ГОСТ включена небольшая сервисная оболочка. Этот сервис просто запускает все конфигурационные файлы, которые находит в каталоге OpenVPN\config. Если вы хотите, чтобы ваш туннель МагПро OpenVPN-ГОСТ работал всегда, вне зависимости от того, вошли вы в систему или нет, вы можете просто сконфигурировать сервис МагПро OpenVPN-ГОСТ автоматически запускаться при запуске Windows. Но может быть, удобнее запускать и выключать туннель по желанию, что можно делать, запуская и выключая сервис.

Крупный недостаток этого способа заключается в том, что нет возможности предоставить службе МагПро OpenVPN-ГОСТ пароль, который был применен для зашифрования вашего закрытого ключа. Это значит, что вы должны использовать незашифрованный закрытый ключ. Чтобы избежать необходимости хранить закрытый ключ незащищенным на жестком диске, следует импортировать его в хранилище сертификатов MS и использовать опцию cryptoapicert для его загрузки. Помните, что сервис работает как локальная система (по умолчанию), так что вы должны импортировать ключ и сертификат в системный аккаунт, а не в свой пользовательский.

Как правило, запуск и остановка сервиса требуют прав администратора, но вы можете дать обычному пользователю право контролировать индивдиуальный сервис. Это делается с помощью утилиты subinacl.exe, включенной в Windows Resource Kit.

Чтобы предоставить пользователю John право запускать и выключать сервис МагПро

OpenVPN-ГОСТ, войдите в систему с правами администратора и выполните следущую команду:

subinacl /SERVICE "OpenVPNService" /GRANT=john=TO 2.4.2 Контроль над сервисом МагПро OpenVPN-ГОСТ из графического интерфейса МагПро OpenVPN-ГОСТ Умолчательная установка графического интерфейса МагПро OpenVPN-ГОСТ не дает вам возможности контролировать сервис МагПро OpenVPN-ГОСТ. Существуют два способа это сделать. Если вы работаете как администратор, и просто хотите удобный способ контролировать сервис МагПро OpenVPN-ГОСТ, вы можете делать это через скрытое меню.

Для этого необходимо установить следующее значение регистра в 1:

HKEY_LOCAL_MACHINE\SOFTWARE\OpenVPN-GUI\allow_service Существует специальный режим «Только сервис», подходящий для пользователей, работающих без прав администратора. Этот режим меняет поведение действий Connect и Disconnect таким образом, что они запускают и останавливают сервис МагПро OpenVPN-ГОСТ вместо прямого запуска openvpn.exe, как обычно. Он также прячет меню «Настройка прокси», поскольку оно не влияет на сервис.

Чтобы запустить этот режим, установите следующее значение регистра в 1:

HKEY_LOCAL_MACHINE\SOFTWARE\OpenVPN-GUI\service_only Также помните, что обычный пользователь не имеет прав записи в каталог OpenVPN\config, поэтому он не сможет редактировать конфигурационный файл МагПро OpenVPN-ГОСТ или менять свой пароль, если вы не дадите ему права на запись в эти файлы.

Чтобы спрятать эти пункты меню, установите следующие значения регистра в 0:

HKEY_LOCAL_MACHINE\SOFTWARE\OpenVPN-GUI\allow_edit HKEY_LOCAL_MACHINE\SOFTWARE\OpenVPN-GUI\allow_password Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 10 2.4.3 Windows «Run as»

Начиная с Windows 2000, существует возможность запустить приложение от лица другого пользователя, нежели вошедший в систему. Лучший способ использовать эту возможность в данном случае - запустив графический интерфейс МагПро OpenVPN-ГОСТ. Поскольку графический интерфейс работает от лица администратора, то пока он работает, может быть открыто и закрыто любое количество туннелей МагПро OpenVPN-ГОСТ.

Помните, что, используя эту возможность, вы даете пользователям возможность расширить свои права до административных. Если вы не хотите, чтобы машина работала под администратором, для того, чтобы защититься от вредоносного кода из сети, выполняющегося с правами администратора, то это может быть хороший способ, но если вашим пользователям ни при каких обстоятельствах нельзя запускать приложения с правами администратора, вы НЕ должны использовать этот способ работы с графическим интерфейсом МагПро OpenVPN-ГОСТ!

Устанавливая графический интерфейс, обязательно отключите опцию AutoStart OpenVPN GUI, поскольку вам понадобится создавать иконку для запуска вручную.

2.4.4 Создание иконки Run As в Windows 2000

– Поставьть галочку Run as a different user.

2.4.5 Создание иконки Run As в Windows XP

– Создайте обычную иконку для openvpn-gui.exe (c:\program files\openvpn\bin\openvpn-gui.exe) на рабочем столе.

– Щелкните правой клавишей мыши по иконке и выберите Свойства.

– Щелкните на Advanced...

– Поставьте галочку Run with different credentials.

Когда вы щелкаете двойным щелчком мыши по этой иконке, появится окно, в котором нужно будет ввести логин и пароль для пользователя, от лица которого вы хотите запустить графический интерфейс. Если вы хотите, чтобы он запускался автоматически, когда вы входите в систему, перенесите эту иконку в каталог Startup в меню Start-Programs. Тогда у вас будут запрашивать логин и пароль непосредственно каждый раз при входе в систему.

2.4.6 Запуск МагПро OpenVPN-ГОСТ под Windows После того, как вы выполните установку, МагПро OpenVPN-ГОСТ готова к использованию и ассоциирована с файлами с расширением.ovpn. Чтобы запустить МагПро OpenVPN-ГОСТ, вы можете:

–  –  –

– Щелкнуть правой клавишей на конфигурационном файле МагПро OpenVPN-ГОСТ (.ovpn) и выбрать Start OpenVPN с этим конфигурационным файлом. Чтобы выйти, можно воспользоваться клавишей F4.

– Запустить МагПро OpenVPN-ГОСТ из командной строки Windows такой командой, как:

openvpn myconfig.ovpn Запущенную из окна командной строки МагПро OpenVPN-ГОСТ можно отключить клавишей F4.

– Запустить МагПро OpenVPN-ГОСТ как сервис, поместив один или больше конфигурационных файлов.ovpn в каталог \Program Files\OpenVPN\config и запустив сервис МагПро OpenVPN-ГОСТ, который может управляться из Start Menu - Control Panel Administrative Tools - Services.

Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 12

3 ВЫБОР МЕЖДУ МАРШРУТИЗИРОВАННОЙ VPN И VPN

ТИПА «МОСТ»

Маршрутизирование и связь типа «мост» (бриджинг) - два способа связи систем через VPN.

Когда клиент подключается к удаленной сети через VPN типа «мост», ему присваивается IP-адрес, являющийся частью удаленной физической подсети Ethernet, и после этого он может взаимодействовать с другими машинами удаленной сети, как будто они соединены локально.

Настройки VPN типа «мост» требуют специального инструмента, зависящего от операционной системы, чтобы связать адаптер подсети Ethernet с виртуальным устройством стиля TAP.

Например, для Linux такой инструмент - brctl. На Windows XP и выше выберите адаптер TAP-Win32 и адаптер сети Ethernet в Control Panel-Network connections, затем щелкните правой клавишей мыши и выберите Bridge Connections.

Когда клиент подключается через маршрутизированную VPN, он использует собственную отдельную подсеть, и маршруты устанавливаются и на клиентской машине и на удаленном гейте, чтобы пакеты данных беспрепятственно проходили через VPN. Здесь клиент - необязательно отда машина, это может быть подсеть из нескольких машин.

Маршрутизация и связь типа «мост» с функциональной точки зрения очень похоже, с важным различием в том, что маршрутизированная VPN не пропускает широковещательные рассылки IP-пакетов, а VPN типа «мост» пропускает.

Эти разновидности VPN связаны с использованием различных адаптеров. Устройство TAP

Виртуальный адаптер сети Ethernet, устройство TUN - виртуальная IP-связь точка-в-точку.

Когда вы используете VPN типа «мост», вы должны всегда использовать -dev tap на обоих концах соединения. Если вы используете маршрутизированную VPN, вы можете использовать и -dev tap, и -dev tun, но вы должны использовать одно и то же на обоих концах соединения.

Dev tun немного более эффективный вариант для случая маршрутизации.

Преимущества VPN типа «мост»:

– Не нужно конфигурировать маршрутизационных утверждений.

– Работает с любым протоколом, который может функционировать в сети Ethernet, включая IPv4, IPv6, Netware IPX, AppleTalk, etc.

– Решение, относительно легкое для конфигурирования.

Недостатки VPN типа «мост»:

– Менее эффективна, чем маршрутизирование, и плохо масштабируется.

Преимущества маршрутизированной VPN:

– Эффективность и масштабируемость

– Позволяет лучшую настройку MTU для эффективности.

Недостатки маршрутизированной VPN:

– Клиенты должны использовать сервер WINS (например, Samba), чтобы позволить работать просмотру сети через VPN.

– Необходимо настроить маршруты, связывающие каждую подсеть.

– Программное обеспечение, зависящее от броадкастов, не будет «видеть» машины на другой стороне VPN.

Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 13

– Работает в основном только с IPv4, и с IPv6 в случаях, когда драйверы tun на обоих концах соединения эффективно поддерживают его.

В общем, маршрутизирование, вероятно, лучший выбор для большинства пользователей, потому что оно более эффективно и его легче настроить (как и саму конфигурацию МагПро OpenVPN-ГОСТ). Маршрутизирование также предоставляет большую возможность избирательно контролировать права доступа на клиентски-специфичной основе.

1. VPN должна работать с не-IP протоколами, такими как IPX

2. Вы запускаете приложения над VPN, которые полагаются на сетевую ретрансляцию (такие как сетевые игры)

3. Вы бы хотели позволить просматривать через VPN совместно используемые ресурсы, не устанавливая сервера Samba или WINS.

Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 14 4 НЕВОЗМОЖНОСТЬ РАБОТЫ МагПро OpenVPN-ГОСТ ПО

ПРОТОКОЛУ UDP

Следует принять во внимание, что в силу специфики RFC4357 (http://www.ietf.org/rfc/rfc4357.txt) данная реализация МагПро OpenVPNГОСТ (в целом, как и любая другая реализация МагПро OpenVPN-ГОСТ), не будет работать по UDP.

–  –  –

5 НУМЕРАЦИЯ ЧАСТНЫХ ПОДСЕТЕЙ

Установка VPN часто требует связывания вместе частных подсетей из разных локаций.

IANA зарезервировала следующие три блока пространства IP-адресов для частных сетей (кодифицировано в RFC 1918):

–  –  –

172.16.0.0 172.31.255.255 (префикс 172.16/12) 192.168.0.0 192.168.255.255 (префикс 192.168/16) В то время как адреса из этих блоков следует в норме использовать в конфигурациях VPN, важно выбирать адреса, которые минимизируют возможность конфликтов IP-адресов или подсетей. Типы конфликтов, которых следует избегать:

– Конфликты разных мест в VPN, использующих одинаковую нумерацию подсетей LAN;

– Соединения удаленного доступа из мест, которые используют частные подсети, конфликтущие с вашими подсетями VPN.

Например, предположим, что вы используете популярную подсеть 192.168.0.0/24 как вашу частную подсеть LAN. Теперь вы пытаетесь соединиться с VPN из интернет-кафе, использующего ту же подсеть для своего WiFi LAN. У вас будет проблема маршрутизации, потому что ваша машина не поймет, относится ли 192.168.0.1 к локальному WiFi-гейту или к тому же адресу на VPN.

В качестве другого примера, предположим, что вы хотите соединить вместе несколько точек с помощью VPN, но каждая точка использует 192.168.0.0/24 в качестве своей подсети LAN. Это не будет работать, если не добавить дополнительный слой трансляции NAT, потому что VPN не поймет, как маршрутизировать пакеты между несколькими точками, если эти точки не используют подсеть, которая уникально идентифицирует их.

Лучшее решение - избегать пользоваться 10.0.0.0/24 или 192.168.0.0/24 в качестве сетевых адресов LAN. Вместо этого используйте что-нибудь, что с более низкой вероятностью будет использовано в WiFi-кафе, аэропорту или отеле, откуда вы, возможно, захотите установить удаленнй доступ. Лучшие кандидаты - подсети в середине большого блока 10.0.0.0/8 (например, 10.66.77.0/24).

Чтобы избежать кросс-локационных конфликтов номеров IP, всегда используйте уникальную нумерацию для ваших подсетей LAN.

Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 16

6 УСТАНОВКА ВАШЕГО СОБСТВЕННОГО

УДОСТОВЕРЯЮЩЕГО ЦЕНТРА (УЦ) И СОЗДАНИЕ

СЕРТИФИКАТОВ И КЛЮЧЕЙ ДЛЯ СЕРВЕРА МагПро

OpenVPN-ГОСТ И БОЛЕЕ ОДНОГО КЛИЕНТА

6.1 Введение

Первый шаг в создании конфигурации МагПро OpenVPN-ГОСТ - создание PKI (инфраструктуры открытых ключей). PKI состоит из:

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

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

И сервер, и клиент будут аутентифицировать друг друга, сначала проверив, что представленный кандидат был подписан на сертификате удостоверяющего центра, а затем тестируя информацию в заголовке уже аутентифицированного сертификата, такую, как common name сертификата или его тип (клиентский или серверный).

Эта модель безопасности имеет ряд желательных признаков с точки зрения VPN:

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

– Сервер будет принимать только клиентов, чьи сертификаты были подписаны на сертификате удостоверяющего центра (который будет генерирован ниже). И поскольку сервер может выполнять эту проверку подписи без необходимости доступа к самому закрытому ключу УЦ, ключ УЦ (самый чувствительный ключ во всей PKI) может находиться на совершенно другой машине, даже на машине без сетевого соединения.

– Если закрытый ключ скомпрометирован, он может быть дезактивирован путем добавления его сертификата в CRL (список отзыва сертификатов). CRL позволяет скомпрометированным сертификатам быть отвергнутыми избирательно, не требуя перестраивать всю PKI.

– Сервер может усилить клиентски-специфичные права доступа, основанные на внутренних полях сертификата, таких как Common Name.

Обратите внимание, что часы сервера и клиента должны быть более-менее синхронизированы, иначе сертификаты могут работать некорректно.

Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 17

6.2 Генерация самоподписанного сертификата и ключа удостоверяющего центра Для генерации комплекта ключей и сертификатов, необходимых для работы OpenVPNГОСТ, рекомендуем использовать набор утилит easy-gost или miniUC, поставляемый в составе дистрибутива.

Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 18

7 СОЗДАНИЕ КОНФИГУРАЦИОННЫХ ФАЙЛОВ ДЛЯ

СЕРВЕРА И КЛИЕНТОВ

7.1 Получение примеров конфигурационных файлов

Лучше всего использовать готовые примеры конфигурационных файлов МагПро OpenVPNГОСТ в качестве старта для вашей собственной конфигурации. Эти файлы можно найти в:

(В Windows) C:\Program Files\OpenVPN\samples (В Unix-подобных системах) Зависит от системы, но чаще всего на Linux в каталоге /etc/openvpn/, а на FreeBSD в каталоге /usr/local/etc/openvpn Обратите внимание что в Linux, BSD или Unix-подобных операционных системах примеры конфигурационных файлов называются server.conf и client.conf. В Windows они называются server.ovpn и client.ovpn.

7.2 Редактирование серверного конфигурационного файла Пример серверного конфигурационного файла - идеальная стартовая точка для серверной конфигурации МагПро OpenVPN-ГОСТ. Он создаст VPN с использованием виртуального сетевого интерфейса TUN (для маршрутизирования), будет слушать клиентские соединения на tcp-порту 1194 (номер порта, зарезервированный для VPN), и будет распределять виртуальные адреса для подключающихся клиентов из подсети 10.9.1.0/24.

Прежде чем использовать пример конфигурационного файла, вам прежде всего следует отредактировать параметры ca, cert и key так, чтобы они указывали на файлы, которые вы сгенерировали раньше.

Теперь конфигурацию сервера можно использовать, но вы можете захотеть ее еще больше модифицировать.

1. Если вы используете VPN типа «мост», вы должны использовать server-bridge и dev tap вместо server и dev tun.

2. Если вы хотите использовать другой набор виртуальных IP-адресов, нежели 10.9.1.0/24, вам следует модифицировать директиву server. Помните, что этот набор виртуальных адресов должен быть частным набором, который не используется в вашей сети.

3. Добавьте директиву client-to-client, если вы хотите, чтобы подключающиеся клиенты могли видеть друг друга через VPN. По умолчанию клиенты могут видеть только сервер.

4. Если вы используете Windows, необходимо закомментировать директивы user nobody и group nobody.

Если вы хотите запустить несколько экземпляров МагПро OpenVPN-ГОСТ на одной и той же машине, каждый со своим конфигурационным файлом, это возможно если вы:

1. используете отдельный номер порта для каждого экземпляра.

2. Если вы используете Windows, каждая конфигурация МагПро OpenVPN-ГОСТ должна использовать свой собственный адаптер TAP-Win32. Вы можете добавить дополнительные адаптеры в Start Menu - All Programs - МагПро OpenVPN-ГОСТ - Add a new TAP-Win32 virtual ethernet adapter.

3. Если вы запускаете несколько экземпляров МагПро OpenVPN-ГОСТ из одного и того же каталога, обязательно отредактируйте директивы, которые создают выходные файлы, чтобы различные экземпляры не переписывали выходные файлы друг друга. Эти директивы включают log, log-append и status.

Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 19

7.3 Редактирование клиентских конфигурационных файлов Пример клиентской конфигурации (client.conf на Linux/BSD/Unix или client.ovpn на Windows) отражает умолчательные директивы, установленные в примере серверного конфигурационного файла.

1. Как и с серверным конфигурационным файлом, сначала отредактируйте параметры ca, cert и key так, чтобы они указывали на файлы, которые вы создали раньше. Обратите внимание, что каждый клиент должен иметь свою собственную пару cert/key. Только файл ca универсален для сервера МагПро OpenVPN-ГОСТ и всех клиентов.

2. Далее, отредактируйте директиву remote так, чтобы она указывала на hostname/IP-адрес и номер порта сервера МагПро OpenVPN-ГОСТ (если ваш сервер МагПро OpenVPNГОСТ будет работать на машине с одним сетевым адаптером за брандмауэром/NATгейтом, используйте публичный IP-адрес гейта и номер порта, который вы сконфигурировали для гейта для форвардинга на сервер МагПро OpenVPN-ГОСТ).

3. Наконец, убедитесь, что клиентский конфигурационный файл соответствует директивам в серверном конфигурационном файле. Самое главное - проверить, что директивы dev (tun или tap) и proto (tcp) совпадают. Также убедитесь, что comp-lzo и fragment, если использутся, присутствуют и в серверном, и в клиентском конфигурационном файле.

Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 20

8 ЗАПУСК VPN И ТЕСТ НА НАЧАЛЬНУЮ

ПОДКЛЮЧАЕМОСТЬ

8.1 Запуск сервера Сначала убедитесь, что сервер МагПро OpenVPN-ГОСТ будет доступен из интернета. Это значит:

– Открыть TCP-порт 1194 на брандмауэре (или любой другой TCP-порт, который вы сконфигурировали) или

– Установить правило форвардинга порта, чтобы произвести форвардинг TCP-порта 1194 с брандмауэра/гейта на машину, где работает сервер МагПро OpenVPN-ГОСТ.

Чтобы упростить поиск ошибок, лучше сначала запустить сервер МагПро OpenVPN-ГОСТ из командной строки (или щелкнуть правой клавишей по файлу.ovpn в Windows), а не запускать ее как демон или сервис:

Openvpn Нормальное начало работы сервера должно выглядеть примерно так (вывод может быть разным на разных операционных системах):

Sun Feb 6 20:46:38 2005 OpenVPN 2.1 i686-suse-linux built on Feb 5 2005 Sun Feb 6 20:46:38 2005 Diffie-Hellman initialized with 1024 bit key

Sun Feb 6 20:46:38 2005 TLS-Auth MTU parms [ L:1542 D:138 EF:38 EB:0

ET:0 EL:0 ] Sun Feb 6 20:46:38 2005 TUN/TAP device tun1 opened Sun Feb 6 20:46:38 2005 /sbin/ifconfig tun1 10.9.0.1 pointopoint 10.9.0.2 mtu 1500 Sun Feb 6 20:46:38 2005 /sbin/route add -net 10.9.0.0 netmask 255.255.255.0 gw 10.9.0.2 Sun Feb 6 20:46:38 2005 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:23 ET:0 EL:0 AF:3/1 ] Sun Feb 6 20:46:38 2005 UDPv4 link local (bound): :1194 Sun Feb 6 20:46:38 2005 UDPv4 link remote: Sun Feb 6 20:46:38 2005 MULTI: multi_init called, r=256 v=256 Sun Feb 6 20:46:38 2005 IFCONFIG POOL: base=10.9.0.4 size=62 Sun Feb 6 20:46:38 2005 IFCONFIG POOL LIST Sun Feb 6 20:46:38 2005 Initialization Sequence Completed

8.2 Запуск клиента Как и в случае серверной конфигурации, лучше запустить клиент МагПро OpenVPN-ГОСТ из командной строки (или в Windows щелкнуть правой клавишей мыши по файлу client.ovpn), а не запускать ее как демон или сервис:

openvpn Нормальное начало работы клиента на Windows будет похоже на серверный вывод, приведенный выше, и должен закончиться сообщением Initialization Sequence Completed.

Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 21 Теперь попробуйте отправить сигнал ping через VPN от клиента. Если вы используете маршрутизацию (т.е.

dev tun в серверном конфигурационном файле), попробуйте:

ping 10.9.

1.0 Если вы используете VPN типа «мост» (т.е. dev tap в серверном конфигурационном файле), попытайтесь отправить сигнал ping на IP-адрес машины на подсети серверной сети Ethernet.

Если сигнал проходит успешно, поздравляем! У вас теперь действующая VPN.

8.3 Поиск ошибок Если сигнал ping не прошел или инициализация клиента МагПро OpenVPN-ГОСТ не закончилась, вот список обычных симптомов и их решений:

1. Вы получаете сигнал ошибки: TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity). Эта ошибка указывает, что клиент не сумел установить сетевую связь с сервером.

Решения:

– Убедитесь, что клиент использует корректный hostname/IP-адрес и номер порта, который позволит ему соединиться с сервером МагПро OpenVPN-ГОСТ.

– Если машина сервера МагПро OpenVPN-ГОСТ является компьютером с одним сетевым адаптером внутри защищенной LAN, убедитесь, что вы пользуетесь корректным правилом форвардинга порта на брандмауэр сервера. Например, предположим, что ваш сервер МагПро OpenVPN-ГОСТ находится на 192.168.4.4 внутри брандмауэра, слушая клиентские подключения на TCP-порту 1194. Гейт NAT, обслуживающий подсеть 192.168.4.x должен иметь правило форвардинга порта, которое говорит «переадресовать TCP-порт 1194 с моего публичного IP-адреса на 192.168.4.4.»

– Откройте брандмауэр сервера, чтобы разрешить входящие соединения на TCP-порт 1194 (или любой TCP-порт, который вы сконфигурировали в серверном конфигурационном файле).

2. Вы получаете сообщение об ошибке: Initialization Sequence Completed with errors - Эта ошибка может произойти на Windows, если а) у вас нет запущенного доступного сервиса DHCP или б) вы используете определенные персональные брандмауэры третьей стороны на XP SP2.

Решение: запустите сервер для клиента DHCP и убедитесь, что вы используете персональный брандмауэр, который, как точно известно, корректно работает на XP SP2.

3. Вы получаете сообщение Initialization Sequence Completed, но сигнал ping не проходит - это обычно указывает, что брандмауэр на серверной или клиентской стороне блокирует передачу по сети VPN, фильтруя на интерфейсе TUN/TAP.

Решение: отключите в клиентском брандмауэре (если он существует) фильтрацию интерфейса TUN/TAP на клиенте. Например на Windows XP SP2 вы можете это сделать, пойдя на Windows Security Center - Windows Firewall - Advanced и сняв галочку, которая соответствует адаптеру TAP-Win32 (отключение в клиентском брандмауэре фильтрования адаптера TUN/TAP в общем рационально с точки зрения безопасности, поскольку вы в сущности говорите брандмауэру не блокировать аутентифицированную передачу VPN). Также убедитесь, что интерфейс TUN/TAP на сервере не фильтруется брандмауэром (заметьте, что избирательное перекрывание брандмауэром интерфейса TUN/TAP на серверной стороне может иметь определенные выгоды с точки зрения безопасности.) Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 22 9 КОНФИГУРИРОВАНИЕ МагПро OpenVPN-ГОСТ ДЛЯ

АВТОМАТИЧЕСКОГО ЗАПУСКА ПРИ СТАРТЕ СИСТЕМЫ

Недостаток стандартов в этой области означает, что большинство операционных систем имеет собственный способ конфигурирования демонов/сервисов для запуска при запуске системы. Лучший способ получить эту функциональность сконфигурированной по умолчанию - установить МагПро OpenVPN-ГОСТ как пакет, например чере RPM на Linux или воспользовавшись инсталлятором Windows.

9.1 Linux Если вы устанавливаете МагПро OpenVPN-ГОСТ через пакет RPM на Linux, инсталлятор установит initscript. При выполнении initscript будет искать конфигурационные файлы.conf в /etc/openvpn, и если таковые найдены, запустит отдельный демон МагПро OpenVPN-ГОСТ для каждого файла.

9.2 Windows Инсталлятор Windows установит сервисную оболочку, но оставит ее отключенной по умолчанию. Чтобы активировать ее, идите в Control Panel / Administrative Tools / Services, выберите сервис OpenVPN, щелкните правой клавишей на свойствах и установите Startup Type в Automatic. Это сконфигурирует сервис для автоматического старта при следующей перезагрузке.

При запуске сервисная оболочка МагПро OpenVPN-ГОСТ просканирует каталог \Program Files\OpenVPN\config в поисках конфигурационных файлов.ovpn, начиная отдельный процесс МагПро OpenVPN-ГОСТ для каждого файла.

Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 23 10 УПРАВЛЕНИЕ ЗАПУЩЕННЫМ ПРОЦЕССОМ МагПро OpenVPN-ГОСТ

10.1 Работа на Linux/BSD/Unix

МагПро OpenVPN-ГОСТ принимает несколько сигналов:

SIGUSR1 - условный перезапуск, предназначенный для перезапуска без привилегий суперпользователя SIGHUP - жесткий перезапуск SIGUSR2 - статистика исходящего соединения в файл журнала или системный журнал SIGTERM, SIGINT - выход Используйте директиву writepid, чтобы записать PID демона МагПро OpenVPN-ГОСТ в файл, чтобы вы знали, куда отправить сигнал (если вы запускаете openvpn с помощь initscript, скрипт может уже передавать директиву –writepid в командную строку openvpn).

10.2 Работа в Windows в графическом интерфейсе Хотя МагПро OpenVPN-ГОСТ может быть запущена как демон, сервис или из командной строки, возможно управлять МагПро OpenVPN-ГОСТ через графический интерфейс.

10.3 Работа в окне командной строки Windows В Windows вы можете запустить МагПро OpenVPN-ГОСТ, кликнув правой клавишей мыши на конфигурационном файле МагПро OpenVPN-ГОСТ (файл.ovpn) и выбрав Start OpenVPN on this config file.

Если МагПро OpenVPN-ГОСТ запущена таким образом, доступны несколько клавишных команд:

F1 - условный перезапуск (не закрывает/переоткрывает адаптер TAP) F2 - показать статистику соединения F3 - жесткий перезапуск F4 - выход

10.4 Работа в качестве сервиса Windows Когда МагПро OpenVPN-ГОСТ запущена в качестве сервиса на Windows, управлять ей можно только:

– Через менеджер управления сервисами (Control Panel / Administrative Tools / Services), который дает возможность запускать и выключать сервис;

– Через интерфейс управления (см. раздел 10.7)

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

Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 24 client-config-dir - эта директива устанавливает каталог клиентской конфигурацкии, которую МагПро OpenVPN-ГОСТ будет сканировать при каждом входящем соединении в поисках клиент-специфичного конфигурационного файла. Файлы в этом каталоге могут быть изменены в ходе работы, без перезапуска сервера. Обратите внимание, что изменения в этом каталоге повлияют только на новые соединения, не на существующие соединения. Если вы хотите, чтобы изменение клиент-специфичного конфигурационного файла немедленно подействовало на уже соединившегося клиента (или на клиента, который уже отключился, но сервер еще не уничтожил его экземпляр), уничтожьте экземпляр клиента, воспользовавшись интерфейсом управления (см. раздел 10.7). Это заставит клиента переподключиться и использованть новый файл client-config-dir.

crl-verify - эта директива именует список отзыва сертификатов, описанный ниже в разделе «Отзыв сертификатов». Файл списка отзыва сертификатов можно менять в ходе работы, и изменения немедленно повлияют на новые соединения, или на существующие соединения, которые обновляют свой канал SSL/TLS (по умолчанию это происходит раз в час). Если вы хотите уничтожить подключенного клиента, чей сертификат только что добавили в список отзыва сертификатов, воспользуйтесь интерфейсом управления (см. раздел 10.7).

10.6 Файл статуса Умолчательный файл server.conf имеет строку status openvpn-status.log которая будет выводить список текущих клиентских соединений в файл openvpn-status.log раз в минуту.

10.7 Использование интерфейса управления Интерфейс управления МагПро OpenVPN-ГОСТ позволяет административно управлять МагПро OpenVPN-ГОСТ из внешней программы через TCP-сокет.

Интерфейс был специально разработан для разработчиков графического интерфейса и для тех, кто хотел бы программно или удаленно управлять демоном МагПро OpenVPN-ГОСТ.

Интерфейс управления реализован с использованием клиент-серверного TCP-соединения, где МагПро OpenVPN-ГОСТ будет слушать на предоставленном IP-адресе и порту входящие управляющие клиентские соединения.

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

Интерфейс управления включается в конфигурационном файле МагПро OpenVPN-ГОСТ с помощью следующх директив:

–management-query-passwords

–management-log-cache Когда МагПро OpenVPN-ГОСТ запущена с подключенным слоем управления, вы можете подключиться через telnet к порту управления (обязательно используйте клиент telnet, который понимает «грубый» режим).

–  –  –

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

10.7.1 Команда echo Эта команда используется, чтобы дать возможность или вписать в конфигурационный файл МагПро OpenVPN-ГОСТ, или передать на клиент МагПро OpenVPN-ГОСТ с сервера параметры, специфичные для графического интерфейса.

Примеры команды:

echo on - включает нотификацию сообщений echo в реальном времени echo all - выводит текущий список истории echo echo off - отключает нотификацию сообщений echo в реальном времени echo on all - атомно включает нотификацию в реальном времени, плюс показывает все сообщения в буфере истории Например, предположим, что вы разрабатываете графический интерфейс МагПро OpenVPN-ГОСТ и хотите дать серверу МагПро OpenVPN-ГОСТ способность просить интерфейс забыть все сохраненные пароли.

В серверном конфигурационном файле МагПро OpenVPN-ГОСТ добавьте:

push "echo forget-passwords" Когда клиент МагПро OpenVPN-ГОСТ получает свой список директив с сервера, директива echo forget-passwords будет в списке и заставит интерфейс управления сохранить строку forgetpasswords в своем списке параметров echo.

Клиент управления может использовать echo all для вывода полного списка параметров echo, echo on для включения нотификации этих параметров в реальном времени через префикс ECHO:, или echo off для отключения нотификации в реальном времени.

Когда графический интерфейс подключается к сокету управления МагПро OpenVPNГОСТ, он может отдать команду echo all, которая даст вывод типа:

1101519562,forget-passwords END По сути команда echo позволила нам передать параметры с сервера МагПро OpenVPNГОСТ на клиент, а затем на клиент управления (такой как графический интерфейс). Большое целое число - юниксовая дата/время, когда был получен параметр echo.

Если клиент управления отдал команду echo on, она включит нотификацию параметров echo в реальном времени.

В этом случае наше сообщение forget-passwords будет иметь вывод типа:

ECHO:1101519562,forget-passwords

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

echo on all Размер буфера echo в настоящее время жестко ограничен 100 сообщениями.

10.7.2 Команда exit, quit Закрывает сеанс управления и восстанавливает слушание соединений от других клиентов на порту управления. В настоящее время демон МагПро OpenVPN-ГОСТ может поддерживать самое большее один клиент управления в любой момент времени.

–  –  –

10.7.3 Команда help Выводит краткий список команд.

10.7.4 Команда hold Команда hold может быть использована для манипуляций с флагом hold или освобождения МагПро OpenVPN-ГОСТ из состояния hold.

Если флаг hold установлен при первоначальном запуске или перезагрузке, МагПро OpenVPN-ГОСТ будет находиться в замершем состоянии перед инициализацией туннеля, пока интерфейс управления не получит команду hold release.

Директива МагПро OpenVPN-ГОСТ –management-hold может быть использована, чтобы запустить МагПро OpenVPN-ГОСТ с установленным флагом hold.

Установка флага hold постоянна и не будет переключена перезагрузками.

МагПро OpenVPN-ГОСТ укажет, что она в состоянии hold, отправив нотификацию в реальном времени клиенту управления:

HOLD:Waiting for hold release

Примеры команды:

hold - показать текущий флаг hold, 0=отключен, 1=включен.

hold on - включить флаг hold, чтобы будущие перезагрузки приводили в состояние hold.

hold off - отключить флаг hold, чтобы будущие перезагрузки не приводили в состояние hold.

hold release - выйти из состояния hold и запустить МагПро OpenVPN-ГОСТ, но не изменить текущее состояние флага hold.

10.7.5 Команда kill В режиме сервера уничтожить конкретный экземпляр клиента.

Примеры команды:

kill Test-Client - уничтожить экземпляр клиента с Common Name «Test-Client».

kill 1.2.

3.4.4000 - уничтожить экземпляр клиента с исходящим адресом и портом 1.2.3.4.4000.

Используйте команду «status», чтобы посмотреть, какие клиенты подключены.

10.7.6 Команда log Показывает файл журнала МагПро OpenVPN-ГОСТ. Интерфейсом управления кэшируются только последние n строк файла журнала, где n управляется МагПро OpenVPN-ГОСТ - директивой management-log-cache.

Примеры команды:

log on - Включить вывод журнальных сообщений в реальном времени log all - Показать текущую кэшированную историю файла журнала log on all - Атомно показать всю текущую кэшированную историю файла журнала, потом включить вывод журнальных сообщений в реальном времени log off - Отключить нотификацию сообщений журнала в реальном времени log 20 - показать последние 20 строк истории файла журнала

Формат нотификации в реальном времени:

–  –  –

Сообщения журнала в реальном времени начинаются с префикса LOG:, за которым следуют разделенные запятой поля:

1. юниксовое целое дата/время

2. ноль или больше флагов сообщений в одной строке:

I - информационное F - фатальная ошибка N - не фатальная ошибка W - предупреждение D - отладка, и

3. текст сообщения.

10.7.7 Команда mute Меняет параметр МагПро OpenVPN-ГОСТ –mute. Этот параметр используется, чтобы не выводить повторяющиеся сообщения одной и той же категории сообщений.

Примеры команды:

mute 40 - установить параметр mute в 40 mute - показать текущее значение mute 10.7.8 Команда net (Только для Windows) Дает эквивалент вывода директивы МагПро OpenVPN-ГОСТ –shownet. Вывод включает взгляд МагПро OpenVPN-ГОСТ на список системных сетевых адаптеров и таблицу маршрутизации, основанный на информации, возвращенной Windows IP helper API.

10.7.9 Команда password и username Команда password используется, чтобы передавать пароли в МагПро OpenVPN-ГОСТ.

Если МагПро OpenVPN-ГОСТ запущена с директивой –management-query-passwords, она будет запрашивать у интерфейса управления пароли закрытых ключей и пароль/логин –authuser-pass.

Когда МагПро OpenVPN-ГОСТ нуждается в пароле с интерфейса управления, она выводит сообщение PASSWORD: в реальном времени.

Пример 1:

PASSWORD:Need ’Private Key’ password МагПро OpenVPN-ГОСТ указывает, что она нуждается в пароле типа «закрытый ключ».

Клиент управления должен отвечать на этот запрос так:

password "Private Key" foo

Пример 2:

PASSWORD:Need ’Auth’ username/password МагПро OpenVPN-ГОСТ нуждается в пароле –auth-user-pass.

Клиент управления должен ответить:

Username "Auth" foo password "Auth" bar Сами логин и пароль могут быть в кавычках, и специальные символы, такие как двойные кавычки или обратный слэш, должны быть под escape-последовательностью, например:

Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 28 password "Private Key" "foo\"bar" Правила составления escape-последовательностей такие же, как для конфигурационного файла.

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

Пример 3: пароль закрытого ключа некорректен и МагПро OpenVPN-ГОСТ завершает работу:

PASSWORD:Verification Failed: ’Private Key’

Пример 4: логин/пароль –auth-user-pass некорректен, и МагПро OpenVPN-ГОСТ завершает работу:

PASSWORD:Verification Failed: ’Auth’ 10.7.10 Команда signal Команда signal посылает сигнал демону МагПро OpenVPN-ГОСТ. Сигнал может быть одним из SIGHUP, SIGTERM, SIGUSR1 или SIGUSR2.

Пример команды:

signal SIGUSR1 - посылает демону сигнал SIGUSR1 10.7.11 Команда state Показывает текущее состояние МагПро OpenVPN-ГОСТ, показывает историю состояний или включает нотификацию перемен состояния в реальном времени.

Существуют состояния МагПро OpenVPN-ГОСТ:

– CONNECTING - исходное состояние МагПро OpenVPN-ГОСТ

– WAIT - (только клиент) ждет первого ответа от сервера

– AUTH - (только клиент) аутентифицируется на сервере

– GET_CONFIG - (только клиент) загружает конфигурационные опции с сервера.

– ASSIGN_IP - присваивает IP-адрес виртуальному сетевому интерфейсу.

– ADD_ROUTES - добавляет к системе маршрутизацию

– CONNECTED - инициализационная последовательность завершена.

– RECONNECTING - произошла перезагрузка

– EXITING - в процессе аккуратного выхода.

Примеры команды:

state - Вывести текущее состояние МагПро OpenVPN-ГОСТ.

state on - включить нотификацию изменений состояния в реальном времени state off - выключить нотификацию изменений состояния в реальном времени state all - вывести текущую историю состояния state 3 - вывести 3 последних перехода состояний state on all - атомно показать историю состояний и в то же время включить нотификацию будущих переходов состояний в реальном времени.

Формат вывода состоит из 4 разделенных запятыми параметров:

1. целое юниксовое дата/время

2. наименование состояния

3. опциональная описательная строка (используется в основном при RECONNECTING или EXITING, чтобы показать причину разрыва связи)

–  –  –

4. опциональный локальный IP-адрес TUN/TAP (показывается для ASSIGN_IP и CONNECTED).

Сообщения о состояниях в реальном времени будут иметь префикс STATE:.

10.7.12 Команда status Показывает текущую информацию о статусе демона, в том же формате, какой используется директивой МагПро OpenVPN-ГОСТ –status.

Примеры команды:

status - показать информацию о статусе, используя умолчательную версию формата статуса.

status 2 - показать информацию о статусе, используя версию формата статуса 2.

10.7.13 Команда username См. раздел 10.7.9.

10.7.14 Команда verb Изменяет параметр МагПро OpenVPN-ГОСТ –verb. Параметр verb контролирует подробность вывода и может варьироваться от 0 (нет вывода) до 15 (максимальный вывод).

Примеры команды:

verb 4 - изменяет параметр verb в 4 verb - показать текущую установку параметра verb 10.7.15 Команда version Показывает текущие версии МагПро OpenVPN-ГОСТ и интерфейса управления.

10.7.16 Команда auth-retry Устанавливает параметр auth-retry, контролирующий, как МагПро OpenVPN-ГОСТ отвечает на аутентификационные ошибки логина/пароля.

Примеры команды:

auth-retry interact - не завершать работу, если введены некорректные логин и пароль.

Запросить новый ввод и повторить попытку.

10.7.17 Формат сообщений в реальном времени

Интерфейс управления МагПро OpenVPN-ГОСТ производит два вида вывода:

1. ответ на команду

2. асинхронный вывод в реальном времени, который может быть сгенерирован в любое время.

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

Сейчас определены следущие типы:

ECHO - сообщения echo, подобные контролируемым командой echo Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 30 FATAL - фатальная ошибка, сообщение выводится в журнал сразу перед завершением работы МагПро OpenVPN-ГОСТ.

HOLD - используется для указания, что МагПро OpenVPN-ГОСТ находится в замершем состоянии и не начнет работать, пока не получит команду hold release.

INFO - информационные сообщения, такие, как приветственное сообщение.

LOG - вывод журнального сообщения, подобный контролируемым командой log PASSWORD - используется, чтобы сообщить клиенту управления, что МагПро OpenVPNГОСТ нуждается в пароле, а также чтобы сообщить о неудаче проверки пароля.

STATE - показывает текущее состояние МагПро OpenVPN-ГОСТ, подобное контролируемому командой state.

10.7.18 Разбор команд МагПро OpenVPN-ГОСТ использует тот же лексический анализатор командных строк, что используется парсером конфигурационного файла МагПро OpenVPN-ГОСТ.

Параметры разделяются пробелом.

Двойные кавычки ("") можно использовать, чтобы ограничить параметры, содержащие пробел Используются escape-последовательности, основанные на обратном слэше, со следующей символикой:

\\ - означает один символ обратного слэша (\) \" - передает буквальный символ двойных кавычек ("), не интерпретируя его как ограничение параметра \ - передает буквальный символ пробела или табуляции, не интерпретируя его как разделитель параметров.

10.8 Управление процессом МагПро OpenVPN-ГОСТ с помощью интерфейса управления Интерфейс управления МагПро OpenVPN-ГОСТ дает большие возможности управления процессом МагПро OpenVPN-ГОСТ. Вы можете использовать интерфейс управления непосредственно, подключаясь через telnet к порту интерфейса управления, или косвенно, используя графический интерфейс МагПро OpenVPN-ГОСТ, который сам подключается к интерфейсу управления.

Чтобы включить интерфейс управления на сервере или клиенте МагПро OpenVPN-ГОСТ, добавьте к конфигурационному файлу следующую строку:

management localhost 7505 Эта строка прикажет МагПро OpenVPN-ГОСТ слушать на TCP-порту 7505 клиенты интерфейса управления (порт 7505 - произвольный выбор, вы можете выбрать любой свободный порт)

Когда МагПро OpenVPN-ГОСТ запущена, вы можете подключиться к интерфейсу управления, воспользовавшись клиентом telnet. Например:

ai:~ # telnet localhost 7505 Trying 127.0.0.1...

Connected to localhost.

Escape character is ’^]’.

INFO:МагПро OpenVPN-ГОСТ Management Interface Version 1 -

–  –  –

11 РАСШИРЕНИЕ ОБЛАСТИ ДЕЙСТВИЯ VPN С

ВКЛЮЧЕНИЕМ ДОПОЛНИТЕЛЬНЫХ МАШИН В

КЛИЕНТСКУЮ ИЛИ СЕРВЕРНУЮ ПОДСЕТЬ

11.1 Включение нескольких машин со стороны сервера при использовании маршрутизированной VPN (dev tun) Поскольку VPN работает в режиме «точка-точка» между клиентом и сервером, может быть желательно расширить область действия VPN так, чтобы клиенты могли связаться с несколькими машинами в сети сервера, а не только с самой машиной сервера.

Для целей этого примера предположим, что серверная LAN использует подсеть 10.66.0.0/24, а множество IP-адресов VPN использует 10.9.1.0/24, как показано в директиве server в конфигурационном файле сервера МагПро OpenVPN-ГОСТ.

Сначала вы должны объявить подсеть 10.66.0.0/24 клиентам VPN как доступную через VPN.

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

push "route 10.66.0.0 255.255.255.0" Затем вы должны установить маршрут на гейте серверной LAN, чтобы маршрутизировать подсеть клиента VPN (10.9.1.0/24) на сервер МагПро OpenVPN-ГОСТ (это необходимо только в том случае, если сервер МагПро OpenVPN-ГОСТ и гейт LAN - различные машины.) Убедитесь, что вы включили форвардинг IP и TUN/TAP на серверной машине МагПро OpenVPN-ГОСТ.

11.2 Включение нескольких машин на серверной стороне при использовании VPN типа «мост» (dev tap) Одно из преимуществ использования VPN типа «мост» через Ethernet заключается в том, что это вы получаете без дополнительного конфигурирования.

11.3 Включение нескольких машин на клиентской стороне при использовании маршрутизированной VPN (dev tun) В типичном сценарии удаленного доступа клиентская машина подключается к VPN как одиночная машина. Но предположим, что клиентская машина - гейт локальной сети (например, домашнего офиса), и вы бы хотели, чтобы все машины клиентской сети могли подключаться к VPN.

Для этого примера предположим, что клиентская локальная сеть использует подсеть 192.168.4.0/24, а клиент VPN использует сертификат с Common Name client2. Наша цель - так настроить VPN, чтобы любая машина клиентской сети могла общаться с любой машиной серверной сети через VPN.

Перед настройкой необходимо обеспечить несколько основных требований:

– Клиентская локальная подсеть (в нашем примере 192.168.4.0/24) не должна экспортироваться в VPN сервером или любыми другими клиентскими локациями, которые используют ту же подсеть. Каждая подсеть, объединенная VPN через маршрутизацию, должна быть уникальной.

Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 33

– Клиент должен иметь уникальное поле Common Name в своем сертификате (в нашем примере client2), и флаг duplicate-cn не должен использоваться в серверном конфигурационном файле МагПро OpenVPN-ГОСТ.

Прежде всего убедитесь, что на клиентской машине включен форвардинг IP и TUN/TAP.

Если серверный конфигурационный файл не указывает на каталог клиентской конфигурации, добавьте указание сейчас:

client-config-dir ccd В вышеуказанной директиве ccd должен быть именем каталога, который был заранее создан в каталоге по умолчанию, где работает серверный демон МагПро OpenVPN-ГОСТ. В Linux это обычно /etc/openvpn, а в Windows \Program Files\OpenVPN\config. Когда новый клиент связывается с сервером МагПро OpenVPN-ГОСТ, демон просканирует этот каталог в поисках файла, который соответствует полю common name соединяющегося клиента. Если соответствующий файл найден, он будет прочитан и обработан для применения дополнительных директив конфигурационного файла к поименованному клиенту.

Следующий шаг - создать файл под названием client2 в каталоге ccd.

Этот файл должен содержать строку:

iroute 192.168.4.0 255.255.255.0 Это скажет серверу МагПро OpenVPN-ГОСТ, что подсеть 192.168.4.0/24 следует маршрутизировать на client2.

route 192.168.

4.0 255.255.255.0 Вы можете спросить, почему используются и route, и iroute? Причина в том, что route контролирует маршрутизацию из ядра на сервер МагПро OpenVPN-ГОСТ (через интерфейс TUN), а iroute контролирует маршрутизацию от сервера МагПро OpenVPN-ГОСТ к удаленным клиентам. Оба необходимы.

Если да, добавьте к серверному конфигурационному файлу следующее:

client-to-client push "route 192.168.4.0 255.255.255.0" Это заставит сервер МагПро OpenVPN-ГОСТ объявить подсеть client2 остальным подключающимся клиентам.

Последний шаг, который часто забывают - добавить маршрут к гейту серверной локальной сети, который направляет 192.168.4.0/24 к серверу МагПро OpenVPN-ГОСТ (вам это не понадобится, если сервер МагПро OpenVPN-ГОСТ - гейт для сервера локальной сети). Предположим, что вы пропустили этот шаг и попытались передать сигнал ping машине (не самому серверу МагПро OpenVPN-ГОСТ) в серверной сети из 192.168.4.8. Внешний сигнал, вероятно, достигнет машины, но она не будет знать, как машрутизировать ответный сигнал, потому что не будет знать, как достичь 192.168.4.0/24. Основное правило пользования состоит в том, что когда вы машрутизируете целые локальные сети через VPN (где сервер VPN - не та же машина, что гейт локальной сети), убедитесь, что гейт локальной сети маршрутизирует все подсети VPN на серверную машину VPN.

Подобным же образом, если клиентская машина, на которой работает МагПро OpenVPNГОСТ, не является гейтом клиентской локальной сети, то гейт клиентской локальной сети Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 34 должен иметь маршрут, который направляет все подсети, которые можно видеть через VPN, на клиенскую машину МагПро OpenVPN-ГОСТ.

11.4 Включение нескольких машин на клиенской стороне при использовании VPN типа «мост» (dev tap) Это требует более сложной настройки (может быть, не сложнее на практике, но сложнее для объяснения в деталях):

– Необходимо соединить клиентский интерфейс TAP с сетевым адаптером, соединенным с локальной сетью на клиенте, в режиме «мост».

– Необходимо вручную установить IP/маску сети на интерфейсе TAP на клиенте.

– Необходимо сконфигурировать машины на клиентской стороне так, чтобы они использовали IP/маску сети, которая находится внутри подсети, соединенной в режиме «мост», возможно, запрашивая сервер DHCP на стороне сервера МагПро OpenVPN-ГОСТ в VPN.

Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 35

12 ПЕРЕДАЧА ОПЦИЙ DHCP КЛИЕНТАМ

Сервер МагПро OpenVPN-ГОСТ может передавать опции DHCP, такие как адреса серверов DNS и WINS, клиентам. Клиенты Windows могут принимать переданные опции DHCP сами по себе, а клиенты дргуих операционных систем могут их принимать, используя скрипт up на клиентской стороне, который анализирует список переменных среды foreign_option_n.

Например, предположим, что вы бы хотели, чтобы соединяющиеся клиенты использовалы внутренний DNS-сервер на 10.66.0.4 или 10.66.0.5 и сервер WINS на 10.66.0.8.

Добавьте в конфигурацию сервера МагПро OpenVPN-ГОСТ:

Push "dhcp-option DNS 10.66.0.4" push "dhcp-option DNS 10.66.0.5" push "dhcp-option WINS 10.66.0.8" Чтобы протестировать эту возможность на Windows, запустите следующую команду из окна командной строки после того, как машина подключилась к серверу МагПро OpenVPNГОСТ:

ipconfig /all Запись для адаптера TAP-Win32 должна показать опции DHCP, переданные сервером.

Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 36

13 КОНФИГУРИРОВАНИЕ КЛИЕНТ-СПЕЦИФИЧНЫХ

ПРАВИЛ И ПОЛИТИК ДОСТУПА

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

– Системные администраторы - полный доступ ко всем машинам сети

– Сотрудники - доступ только к серверам Samba/email

– Контракторы - доступ только к специальному серверу

Базовый подход, который мы предпримем:

1. выделить каждому классу собственный диапазон IP-адресов,

2. контролировать доступ к машинам, установив брандмауэрные правила, которые основываются на виртуальном IP-адресе клиента.

В нашем примере, предположим, что у нас меняется количество сотрудников, но только один системный администратор и два контрактора. Наш подход к распределению IP будет состоять в том, чтобы поместить всех сотрудников в диапазон IP-адресов, а потом выдать фиксированные IP-адреса системному администратору и контракторам.

Заметьте, что одно из требований к этому примеру заключается в том, что у вас есть программный брандмауэр, работающий на серверной машине МагПро OpenVPN-ГОСТ, который дает вам возможность задавать конкретные брандмауэрные правила. Для нашего примера мы предположим, что этот брандмауэр - iptables в Linux.

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

Класс Диапазон Позволенный доступ Поля сommon name виртуальных IP к локальной сети

–  –  –

Контракторы 10.8.2.0/24 Сервер контракторов contractor1, на 10.66.4.12 contractor2 Теперь переведем эту карту в серверную конфигурацию МагПро OpenVPN-ГОСТ. Прежде всего убедитесь, что вы выполнили вышеописанные шаги, сделав подсеть 10.66.4.0/24 доступной для всех клиентов (хотя мы сконфигурируем маршрутизацию так, чтобы позволить клиентский доступ ко всей подсети 10.66.4.0/24, затем мы наложим ограничения доступа, пользуясь брандмауэрными правилами, чтобы реализовать вышеприведенную таблицу политик).

Прежде всего определим статический номер для нашего интерфейса tun, чтобы мы могли позже ссылаться на него в наших брандмауэрных правилах:

В серверном конфигурационном файле определим диапазон IP-адресов для сотрудников:

server 10.8.

0.0 255.255.255.0

Добавим маршруты для диапазонов системного администратора и контракторов:

route 10.8.

1.0 255.255.255.0 Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 37 route 10.8.

2.0 255.255.255.0

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

client-config-dir ccd

Теперь поместите специальные конфигурационные файлы в подкаталог ccd, чтобы определить фиксированный IP-адрес для каждого VPN-клиента, не являющегося сотрудником:

ccd/sysadmin1 ifconfig-push 10.8.1.1 10.8.1.2 ccd/contractor1 ifconfig-push 10.8.2.1 10.8.2.2 ccd/contractor2 ifconfig-push 10.8.2.5 10.8.2.6 Каждая пара адресов ifconfig-push представляет виртуальные клиентские и серверные IPконечные точки. Они должны быть взяты из последовательных /30 подсетей, чтобы быть совместимыми с клиентами Windows и с драйвером TAP-Win32.

В частности, последний октет в IP-адресе каждой пары конечных точек должен быть взят из этого набора:

[ 1, 2] [ 5, 6] [ 9, 10] [ 13, 14] [ 17, 18] [ 21, 22] [ 25, 26] [ 29, 30] [ 33, 34] [ 37, 38] [ 41, 42] [ 45, 46] [ 49, 50] [ 53, 54] [ 57, 58] [ 61, 62] [ 65, 66] [ 69, 70] [ 73, 74] [ 77, 78] [ 81, 82] [ 85, 86] [ 89, 90] [ 93, 94] [ 97, 98]

Это завершает конфигурацию МагПро OpenVPN-ГОСТ. Последний шаг - добавить брадмауэрные правила, чтобы финализировать политику доступа. Для этого примера мы воспользуемся правилами в синтаксисе iptables из Linux:

# Employee rule iptables -A FORWARD -i tun0 -s 10.8.0.0/24 -d 10.66.4.4 -j ACCEPT # Sysadmin rule iptables -A FORWARD -i tun0 -s 10.8.1.0/24 -d 10.66.4.0/24 -j ACCEPT # Contractor rule iptables -A FORWARD -i tun0 -s 10.8.2.0/24 -d 10.66.4.12 -j ACCEPT

–  –  –

14 ИСПОЛЬЗОВАНИЕ АЛЬТЕРНАТИВНЫХ СПОСОБОВ

АУТЕНТИФИКАЦИИ

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

Чтобы использовать этот способ аутентификации, сначала добавьте директиву auth-userpass в клиентскую конфигурацию. Она заставит клиент МагПро OpenVPN-ГОСТ запрашивать у пользователя логин/пароль, передавая его на сервер по безопасному TLS-каналу.

Далее, сконфигурируйте сервер так, чтобы он использовал аутентификационный плагин, который может быть скриптом, объектом общего доступа или DLL. Сервер МагПро OpenVPNГОСТ будет вызывать этот плагин каждый раз, когда клиент VPN будет пытаться подключиться, передавая ему логин и пароль, введенные на клиенте. Аутентификационный плагин может управлять тем, позволяет ли сервер МагПро OpenVPN-ГОСТ клиенту соединиться, возвращая значение неудачи (1) или успеха (0).

14.1 Использование скриптовых плагинов

Скриптовые плагины можно применять, добавив директиву auth-user-pass-verify в серверный конфигурационный файл. Например:

auth-user-pass-verify auth-pam.pl via-file будет применять скрипт на языке perl auth-pam.pl для аутентификации логина и пароля подключающихся клиентов.

Скрипт auth-pam.pl включен в дистрибутив МагПро OpenVPN-ГОСТ в подкаталоге samplescripts. Он будет аутентифицировать пользователей на сервере в Linux, используя аутентификационный модуль PAM, который может в свою очереть реализовать аутентификацию методом теневого пароля, RADIUS или LDAP. auth-pam.pl прежде всего предназначен для демонстрационных целей. Для рабочей PAM-аутентификации используйте описанный ниже объект общего доступа openvpn-auth-pam.

14.2 Использование объектов общего доступа или DLL в качестве плагинов Плагины - объекты общего доступа или DLL обычно являются скомпилированными модулями на языке C, которые загружаются сервером МагПро OpenVPN-ГОСТ в ходе работы.

Например, если вы используете пакет МагПро OpenVPN-ГОСТ в Linux, основанный на RPM, то плагин openvpn-auth-pam уже должен быть установлен.

Чтобы его использовать, добавьте строку в серверный конфигурационный файл:

plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so login Она прикажет серверу МагПро OpenVPN-ГОСТ проверять логин и пароль, введенные клиентами, с использованием PAM-модуля login.

Для реального рабочего применения лучше использовать плагин openvpn-auth-pam, потому что у него есть несколько преимуществ перед скриптом auth-pam.pl:

– Объект общего доступа openvpn-auth-pam для лучшей защиты использует модель выполнения с разделенными правами. Это значит, что сервер МагПро OpenVPN-ГОСТ может работать с уменьшенными правами с использованием директив user nobody, group nobody Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 39 и chroot, и все равно сможет аутентифицировать клиентов с помощью файла теневых паролей, читабельного только для привилегированного пользователя.

– МагПро OpenVPN-ГОСТ может передавать логин и пароль в плагин через виртуальную память, а не через файл или среду, что лучше для локальной безопасности на серверной машине.

– Компилированные модули на языке C обычно работают быстрее скриптов.

Если вы хотите получить больше информации о разработке ваших собственных плагинов для использования с МагПро OpenVPN-ГОСТ, см. файлы README в поддиректории plugin дистрибутива МагПро OpenVPN-ГОСТ.

Чтобы собрать плагин openvpn-auth-pam на Linux, перейдите в каталог plugin/auth-pam в дистрибутиве МагПро OpenVPN-ГОСТ и запустите make.

14.3 Использование аутентификации по логину и паролю как единственной формы клиентской аутентификации По умолчанию, использование auth-user-pass-verify или проверяющего логины и пароли плагина на сервере включит двойную аутентификацию, требуя, чтобы для аутентификации клиента были успешны и аутентификация на клиентском сертификате, и логин-парольная аутентификация.

На сервере:

client-cert-not-required

Такие конфигурации обычно должны иметь строку:

username-as-common-name Которая велит серверу использовать логин для целей индексации, как он использовал бы поле Common Name для клиента, аутентифицировавшегося на клиентском сертификате.

Обратите внимание, что строка client-cert-not-required не устраняет необходимость в серверном сертификате, так что клиент, соединяющйся с сервером, который использует client-certnot-required, может удалить директивы cert и key из клиентского конфигурационного файла, но не директиву ca, потом что клиенту необходимо проверить серверный сертификат.

Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 40

15 КАК ДОБАВИТЬ К КОНФИГУРАЦИИ МагПро OpenVPNГОСТ ДВУХФАКТОРНУЮ АУТЕНТИФИКАЦИЮ С

ИСПОЛЬЗОВАНИЕМ ТОКЕНОВ НА КЛИЕНТСКОЙ

СТОРОНЕ

15.1 О двухфакторной аутентификации Двухфакторная аутентификация - это способ аутентификации, который объединяет два элемента: что-то, что у вас есть, и что-то, что вы знаете.

Что-то, что у вас есть, должно быть устройством, которое не может быть продублировано;

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

Что-то, что вы знаете, может быть паролем, предоставленным криптографическому устройству. Без предоставления корректного пароля вы не можете воспользоваться закрытым ключом. Еще одна возможность критографических устройств - запретить использование закрытого ключа, если некорректный пароль был предоставлен больше, чем позволенное количество раз. Это поведение гарантирует, что если пользователь потерял свое устройство, другой человек не сможет его использовать.

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

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

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

15.2 Конфигурирование МагПро OpenVPN-ГОСТ для работы с токенами Rutoken Для работы с токенами хранения ключей в МагПро OpenVPN-ГОСТ используется собственный модуль engine etkeyld.

Для работы с токенами хранения ключей RuToken требуется наличие библиотеки etkeyld.so (etkeyld.dll в случае ОС Windows), которая позволяет приложениям считывать ключи с токена, и исполнимого бинарного файла etkeystore (etkeystore.exe), позволяющего генерировать и

–  –  –

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

.......

keyloader=etkeyld_section engine_id=etkeyld default_algorithms=ALL В конфигурационном файле МагПро OpenVPN-ГОСТ также следует указать номер ключа на устройстве, например, так: key []etkeyld:0x20 где key - директива, указывающая на то, что дальше будет говориться про закрытый ключ; []etkeyld - указание на модуль engine, с помощью которого будет читаться ключ; 0x20 - номер ключа на токене. Чаще всего используются номера 0x10, 0x20, 0x30 (допустимо, также, использовать десятичную форму записи - 16, 32 и т.д.) Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 42

16 МАРШРУТИЗАЦИЯ ВСЕГО КЛИЕНТСКОГО ТРАФИКА

(ВКЛЮЧАЯ ВЕБ-ТРАФИК) ЧЕРЕЗ VPN

16.1 Введение По умолчанию, когда клиент МагПро OpenVPN-ГОСТ активен, только сетевой трафик на сервер МагПро OpenVPN-ГОСТ и с него будет проходить через VPN. Общий просмотр интернет-сайтов, например, будет выполнен через прямые соединения, которые не проходят через VPN.

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

16.2 Реализация

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

Push "redirect-gateway def1" Если ваша VPN настроена в беспроводной сети, где все клиенты и сервер находятся в одной и той же беспрводной подсети, поставьте флаг local:

push "redirect-gateway local def1" Передача опции redirect-gateway клиентам заставит весь IP-сетевой трафик, исходящий с клиентских машин, проходить через сервер МагПро OpenVPN-ГОСТ Сервер нужно будет как-то сконфигурировать, чтобы он мог работать с этим трафиком, например соединить его с сетью Интернет через NAT или маршрутизировать через HTTP-прокси сервера.

В Linux вы можете воспользоваться вот такой командой, чтобы подключить клиентский трафик к сети Интернет через NAT:

iptables -t nat -A POSTROUTING -s 10.9.1.0/24 -o eth0 -j MASQUERADE Эта команда предполагает, что подсеть VPN - 10.9.1.0/24 (взятая из директивы server в серверной конфигурации МагПро OpenVPN-ГОСТ), и что локальный интерфейс сети Ethernet - eth0.

Когда используется redirect-gateway, клиенты МагПро OpenVPN-ГОСТ будут маршрутизировать запросы DNS через VPN, и серверу VPN нужно будет их обрабатывать. Это может быть достигнуто передачей адреса сервера DNS подключающимся клиентам, который заместит их обычные настройки сервера DNS на время, пока VPN активна.

Например:

push "dhcp-option DNS 10.9.1.1" сконфигурирует клиенты Windows (или других операционных систем с некоторыми дополнительными скриптами) использовать 10.9.1.1 в качестве их DNS-сервера. Любой адрес, который виден с клиентов, может быть использован как адрес сервера DNS.

16.3 Предупреждения

Перенаправление всего сетевого трафика через VPN - не совсем беспроблемное предложение. Вот несколько типичных проблем, которые следует иметь в виду:

–  –  –

– Многие машины-клиенты МагПро OpenVPN-ГОСТ, соединяющиеся с Интернетом, будут периодически взаимодействовать с сервером DHCP, чтобы обновить свою аренду IPадресов. Опция redirect-gateway может не дать клиенту связаться с локальным DHCP0сервером (потому что сообщения DHCP будут маршрутизироваться через VPN), что заставит их потерять свою аренду IP-адресов.

– Существуют проблемы, связанные с передачей DNS-адресов на клиенты Windows.

– Просмотр интернет-сайтов на клиенте будет заметно медленнее.

Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 44 17 РАБОТА СЕРВЕРА МагПро OpenVPN-ГОСТ НА

ДИНАМИЧЕСКОМ IP-АДРЕСЕ

В то время как клиенты МагПро OpenVPN-ГОСТ могут легко достигать сервера через динамический IP-адрес без какого-либо специального конфигурирования, возникают определенные проблемы, когда сам сервер имеет динамический адрес. Хотя МагПро OpenVPN-ГОСТ без проблем справляется с ситуацией на динамическом сервере, необходимо некоторое дополнительное конфигурирование.

Первый шаг - получить динамический DNS-адрес, который может быть сконфигурирован так, чтобы «следовать» за сервером каждый раз, как меняется IP-адрес сервера. Существуют несколько доступных провайдеров динамическийх DNS-услуг, например dyndns.org.

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

Есть два основных способа это сделать:

– Использовать оборудование маршрутизатора NAT с поддержкой динамического DNS (например Linksys BEFSR41). Большинство недорогих и широкодоступных маршрутизаторов NAT обладают возможностью обновлять динамическое имя DNS каждый раз, как новая аренда DHCP получена с ISP. Эта настройка идеальна, когда сервер МагПро OpenVPNГОСТ является компьютером с одним сетевым адаптером внутри брандмауэра.

– Использовать динамическое приложение DNS-клиента, например ddclient (http://sourceforge.net/apps/trac/ddclient) для обновления динамического DNS-адреса, как только поменяется IP-адрес сервера. Эта настройка идеальна, когда машина, на которой работает МагПро OpenVPN-ГОСТ, имеет несколько сетевых адаптеров и работает как брандмауэр/гейт. Чтобы реализовать эту настройку, вам необходимо настроить скрипт, который будет выполняться вашим программным приложением DHCP-клиента каждый раз, как происходит смена IP-адреса. Этот скрипт должен а) выполнять ddclient, чтобы уведомить ваш провайдер динамического DNS о вашем новом IP-адресе и б) перезапускать серверный демон МагПро OpenVPN-ГОСТ.

Клиент МагПро OpenVPN-ГОСТ по умолчанию почувствует, когда сменится IP-адрес сервера, если клиентская конфигурация использует директиву remote, которая соотносится с именем динамического DNS. Обычная цепь событий такова: а) клиенту МагПро OpenVPNГОСТ не удается получить своевременные поддерживающие сообщения со старого IP-адреса сервера, что запускает перезагрузку, и б) перезагрузка заставляет пересмотреть имя DNS в директиве remote, позволяя клиенту переподключиться к серверу по его новому IP-адресу.

Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 45 18 ПОДКЛЮЧЕНИЕ К СЕРВЕРУ МагПро OpenVPN-ГОСТ ЧЕРЕЗ HTTP-ПРОКСИ МагПро OpenVPN-ГОСТ поддерживает соединения через HTTP-прокси, со следующими моделями аутентификации:

– Нет аутентификации на прокси

– Basic аутентификация на прокси

– NTLM аутентификация на прокси Добавьте директиву http-proxy в клиентский конфигурационный файл.

Например, предположим, что у вас HTTP-прокси сервер на клиентской локальной сети на 192.168.4.1, который слушает соединения на порту 1080.

Добавьте следующую строку к клиентской конфигурации:

http-proxy 192.168.4.1 1080

Предположим, что HTTP-прокси требует аутентификации Basic:

http-proxy 192.168.4.1 1080 stdin basic

Предположим, что HTTP-прокси требует аутентификации NTLM:

http-proxy 192.168.4.1 1080 stdin ntlm Два вышеприведенных аутентификационных примера заставят МагПро OpenVPN-ГОСТ запросить логин и пароль со стандартного ввода. Если вы вместо этого предпочитаете поместить логин и пароль в файл, замените stdin именем файла и поместите логин в первую строку этого файла, а пароль во вторую.

Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 46

19 СОЕДИНЕНИЕ С СОВМЕСТНО ИСПОЛЬЗУЕМЫМ

РЕСУРСОМ Samba ЧЕРЕЗ МагПро OpenVPN-ГОСТ Этот пример предназначен для того, чтобы показать, как клиенты МагПро OpenVPN-ГОСТ могут соединяться с совместно используемым ресурсом Samba через маршрутизированный туннель dev tun. Если вы используете МагПро OpenVPN-ГОСТ типа «мост» (dev tap), вам, вероятно, не нужно следовать этим инструкциям, поскольку клиенты МагПро OpenVPN-ГОСТ должны видеть машины серверной стороны в своем сетевом окружении.

Для этого примера предположим, что:

– Серверная локальная сеть использует подсеть 10.66.0.0/24,

– Диапазон IP-адресов VPN использует 10.8.0.0/24 (как указано в директиве server в серверном конфигурационном файле МагПро OpenVPN-ГОСТ.)

– Сервер Samba имеет IP-адрес 10.66.0.4 и

– Сервер Samba уже был сконфигурирован и доступен из местной локальной сети.

Если серверы Samba и МагПро OpenVPN-ГОСТ работают на различных машинах, удостоверьтесь, что вы выполнили указания раздела «Расширение области действия VPN с включением дополнительных машин в клиентскую или серверную подсеть».

Далее отредактируйте конфигурационный файл сервера Samba (smb.conf). Удостовертесь, что директива hosts allow позволит клиентам МагПро OpenVPN-ГОСТ, приходящим из подсети 10.9.1.0/24, устанавливать соединение.

Например:

Hosts allow = 10.66.0.0/24 10.9.1.0/24 127.0.0.1 Если серверы Samba и МагПро OpenVPN-ГОСТ работают на одной и той же машине, вы, возможно, захотите отредактировать директиву interfaces в файле smb.conf так, чтобы также слушать на подсети 10.9.1.0/24 интерфейса TUN:

Interfaces = 10.66.0.0/24 10.9.1.0/24 Если серверы Samba и МагПро OpenVPN-ГОСТ работают на одной и той же машине, подключитесь с клиента МагПро OpenVPN-ГОСТ к совместно используемому ресурсу Samba с использованием имени каталога:

\\10.9.1.1\\sharename Если серверы Samba и МагПро OpenVPN-ГОСТ работают на разных машинах, используйте имя каталога:

\\10.66.0.4\sharename

Например, из окна командной строки:

net use z: \\10.66.0.4\sharename /USER:myusername Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 47

20 РЕАЛИЗАЦИЯ КОНФИГУРАЦИИ БАЛАНСИРОВКИ

НАГРУЗКИ/ВОССТАНОВЛЕНИЯ ПОСЛЕ СБОЯ

20.1 Клиент

Клиентская конфигурация МагПро OpenVPN-ГОСТ может указывать на несколько серверов для балансировки нагрузки и восстановления после отказа. Например:

remote server1.mydomain remote server2.mydomain remote server3.mydomain прикажет клиенту МагПро OpenVPN-ГОСТ пытаться устанавливать соединение с server1, server2 и server3 в этом порядке. Если существующее соединение разорвано, клиент OpeпVPN попытается восстановить соединение с последним сервером, с которым соединение было установлено, а если это не удастся, перейдет на следующий сервер в списке. Вы также можете указать клиенту МагПро OpenVPN-ГОСТ рандомизовать свой список серверов при загрузке, чтобы клиентская нагрузка была вероятностно распределна по диапазону серверов.

remote-random Если вы также хотите, чтобы неудачи разрешения DNS заставляти клиент МагПро

OpenVPN-ГОСТ переходить на следующий сервер в списке, добавьте следующее:

resolv-retry 60 Параметр 60 велит клиенту МагПро OpenVPN-ГОСТ пытаться разрешить каждое удаленное имя DNS в течение 60 секунд, прежде чем переходить на следующий сервер в списке.

Список серверов может также указывать на несколько серверных демонов МагПро

OpenVPN-ГОСТ, работающих на одной и той же машине, каждый из которых слушает соединения на собственном порту, например:

remote smp-server1.mydomain 8000 remote smp-server1.mydomain 8001 remote smp-server2.mydomain 8000 remote smp-server2.mydomain 8001

20.2 Список серверов Если ваши сервера - многопроцессорные машины, запуск нескольких демонов МагПро OpenVPN-ГОСТ на каждом сервере может иметь преимущества с точки зрения скорости выполнения.

МагПро OpenVPN-ГОСТ также поддерживает директиву remote, указывающую на имя DNS, которое обладает несколькими записями A в зонной конфигурации для домена. В этом случае клиент МагПро OpenVPN-ГОСТ будет случайным образом выбирать одну из записей A каждый раз, как домен разрешается.

–  –  –

21 УСИЛЕНИЕ БЕЗОПАСНОСТИ МагПро OpenVPN-ГОСТ Одна из часто повторяемых максим сетевой безопасности состоит в том, что никогда не следует целиком полагаться на один компонент защиты, потому что его отказ вызывает катастрофический провал в безопасности. МагПро OpenVPN-ГОСТ предоставляет несколько механизмов, предоставляющих возможность добавить дополнительные слои защиты, чтобы отгородиться от подобного исхода.

21.1 tls-auth Директива tls-auth добавляет дополнительную подпись HMAC ко всем пакетам хендшейка SSL/TLS для проверки целостности. Эта подпись HMAC предоставляет дополнительный слой защиты над и за тем, что предоставляется SSL/TLS. Она может защитить от:

– DoS-атак

– Уязвимостей переполнения буфера в реализации SSL/TLS

Использование tls-auth требудет, чтобы вы сгенерировали закрытый ключ общего пользования, который используется дополнительно к сертификатам/ключам ГОСТ:

openvpn --genkey --secret ta.key Эта команда сгенерирует статический ключ МагПро OpenVPN-ГОСТ и запишет его в файл ta.key. Этот ключ следует скопировать через уже существующий безопасный канал на сервер и все клиентские машины. Он может быть помещен в тот же каталог, что и файлы ГОСТ.key и.crt.

В серверной конфигурации добавьте:

tls-auth ta.key 0

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

tls-auth ta.key 1

21.2 user/group (кроме ОС Windows) МагПро OpenVPN-ГОСТ была очень тщательно создана так, чтобы позволить отказаться от прав привилегированного пользователя после инициализации, и эту возможность следует всегда использовать в Linux/BSD/Solaris. Без прав привилегированного пользователя, работающий серверный демон МагПро OpenVPN-ГОСТ представляет собой значительно менее привлекательную цель для атакующего.

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

user nobody group nobody

21.3 Непривилегированный режим (только в Linux) В Linux МагПро OpenVPN-ГОСТ может работать вообще без привилегий. Эта конфигурация несколько посложнее, но предоставляет наилучшую защиту.

–  –  –

Чтобы работать с этой конфигурацией, МагПро OpenVPN-ГОСТ следует сконфигурировать для работы с интерфейсом iproute, это делается указанием –enable-iproute2 конфигурационному скрипту. Пакет sudo также должен быть доступен в вашей системе.

Эта конфигурация использует способность Linux менять права на устройство tun, так чтобы непривилигерованный пользователь мог его использовать. Она также использует sudo, чтобы выполнить iproute, чтобы можно было модифицировать свойства интерфейса и таблицы маршрутизации.

Конфигурирование МагПро OpenVPN-ГОСТ:

– Напишите следующий скрипт и поместите его в /usr/local/sbin/unpriv-ip:

#!/bin/sh sudo /sbin/ip $*

– Отредактируйте файл /etc/sudoer, добавив в него следующее, чтобы позволить пользователю user1 выполнять /sbin/ip:

user1 ALL=(ALL) NOPASSWD: /sbin/ip

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

%users ALL=(ALL) NOPASSWD: /sbin/ip

– Добавьте следующее в вашу конфигурацию МагПро OpenVPN-ГОСТ:

dev tunX/tapX iproute /usr/local/sbin/unpriv-ip Пожалуйста, обратите внимание, что вы должны выбрать постоянную X и указать tun или tap, но не и то и другое.

– В качестве привилегированного пользователя добавьте постоянный интерфейс и позвольте пользователю и/или группе управлять им, следующая команда создает tunX (замените вашим собственным) и позволяет user1 и группе пользователей использовать его.

openvpn --mktun --dev tunX --type tun --user user1 --group users

– Запустите МагПро OpenVPN-ГОСТ в контексте непривилегированного пользователя.

21.4 chroot (кроме ОС Windows) Директива chroot позволяет вам запереть демон МагПро OpenVPN-ГОСТ в так называемую тюрьму chroot, где демон не сможет работать ни с какими частями файловой системы в операционной системе, за исключением специального каталога, указанного как параметр к директиве. Например chroot jail заставит демон МагПро OpenVPN-ГОСТ перейти в подкаталог jail при инициализации, а затем переориентирует его корневую файловую систему в этот каталог, так что затем демону будет невозможно увидеть никаких файлов снаружи каталога jail и его подкаталогов. Это важно с точки зрения безопасности, потому что даже если атакующий сможет скомпрометировать сервер с помощью вредоносного кода, этот код будет заперт от большей части файловой системы сервера.

Предупреждения: поскольку chroot переориентирует файловую систему (только с точки зрения демона), необходимо поместить все файлы, которые могут потребоваться МагПро OpenVPN-ГОСТ после инициализации, в каталог jail, например файл crl-verify или каталог client-config-dir.

Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 51

21.5 Хранение корневого ключа (ca.key) на отдельной машине без сетевого соединения Одно из преимуществ использования PKI по стандарту X.509 с точки зрения безопасности состоит в том, что корневой ключ удостоверяющего центра (ca.key) не должен присутствовать на серверной машине МагПро OpenVPN-ГОСТ. В среде высокой безопасности вы можете захотеть специально выделить машину для целей подписания ключей, держать эту машину физически хорошо защищенной и отключить ее от всех сетей. Для переноса ключей можно использовать гибкие диски. Такие меры делают кражу корневого ключа исключительно трудной для атакующего, если только он не украдет физически машину для подписывания ключей.

Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 52 22 ОТЗЫВ СЕРТИФИКАТОВ Отзыв сертификата означает объявление недействительным ранее подписанного сертификата, так что его больше нельзя использовать для целей аутентификации.

Типичные причины желания отозвать сертификат включают:

– Закрытый ключ, связанный с сертификатом, скомпрометирован или украден.

– Пользователь зашифрованного закрытого ключа забывает пароль к ключу.

– Вы хотите прекратить доступ пользователя к VPN.

Сначала вам нужно создать список отзыва. Хорошая практика - создать пустой список отзыва, и пусть ваши клиенты его проверяют. Таким образом, когда вам действительно придется отзывать сертификат, у вас не будет проблем с тем, чтобы заставить клиентов это заметить.

Чтобы создать список отзыва для вашего УЦ, вам прежде всего нужно создать файл index.txt. Это сначала будет пустой файл (созданный командой touch). Однако, когда вы начнете отзывать сертификаты, в него будет добавляться информация. Файл читабелен для людей и неподписан, поэтому нам нужно, чтобы OpenSSL сделала для него подписанную PEM-форму.

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

openssl ca -gencrl -keyfile ca.key -cert ca.crt -out crl.pem где ca.key --- закрытый ключ CA ca.crt --- сертификат СА crl.pem --- требуемый файл, содержащий списки отзыва Эта команда создаст для вас список отзыва, действительный в течение умолчательного промежутка времени (1 месяц). В том случае, если список отзыва используется только на серверах, которые вы контролируете, и где вы уверены, что обновите список отзыва при следующем отзыве, вы, возможно, захотите увеличить время жизни списка отзыва. Иначе через несколько месяцев ваши серверы будут жаловаться, что список отзыва устарел.

Чтобы увеличить продолжительность времени, в течение которого список отзыва действителен, добавьте опцию crldays xxx к вышеприведенной команде генерации списка отзыва (где xxx - количество дней, в течение которых список отзыва действителен) Примечание. Если срок действия вашего списка отзыва истекает, прежде чем вы отзовете сертификат, просто создайте новый, как описано выше. Список отзыва - просто подписанная копия внутреннего списка отозванных сертификатов, имеющая срок действия и оформленная в стандартном формате. Вы можете создавать новые списки отзыва, когда захотите.

Теперь, когда начальный список отзыва готов, мы отзовем сертификат:

openssl ca -revoke bad.crt -keyfile ca.key -cert ca.crt где ca.key и ca.crt --- то же самое, что и в предыдущей команде, а bad.crt --- отзываемый сертификат.

Это автоматически обновит ваш файл index.txt, добавив новые детали об отозванном сертификате. Теперь вам нужно создать новый файл списка отзыва той же командой, которой мы пользовались выше, чтобы создать пустой файл. Когда новый список отзыва создан, его необходимо опубликовать!

Если вы хотите поиграть с продолжительностью действия списка отзыва и прочими подобными вещами, вам необходимо прочитать раздел «Опции списка отзыва» в руководстве по OpenSSL CA. Если вы хотите манипулировать со списком отзыва, просматривать его и т.д., прочитайте руководство по утилите CRL.

Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 53 23 ПРИЛОЖЕНИЕ. СПИСОК ОПЦИЙ КОМАНДЫ openvpn

23.1 Общие опции МагПро OpenVPN-ГОСТ позволяет помещать любую опцию в командную строку или в конфигурационный файл. Хотя все опции командной строки имеют префикс в виде двойного дефиса, этот префикс может быть опущен, когда опцию помещают в конфигурационный файл.

–  –  –

–management-client-pf Клиенты интерфейса управления должны указать файл фильтра пакетов для каждого соединяющегося клиента.

–management-client-user u Когда интерфейс управления слушает на сокете домена Unix, позволять только соединения для пользователя u.

–management-client-group Когда интерфейс управления слушает на сокете домена Unix, g позволять только соединения для группы g.

–  –  –

23.3 Серверный режим В МагПро OpenVPN-ГОСТ поддерживается многоклиентный серверный режим, который может быть включен с помощь опции –mode server. В серверном режиме МагПро OpenVPNГОСТ слушает на одном порту входящие клиентские соединения. Все клиентские соединения маршрутизируются через один интерфейс tun или tap. Этот режим предусматривает масштабирование и должен быть в состоянии поддерживать сотни и даже тысячи клиентов на достаточно быстрых машинах. В этом режиме должна использоваться аутентификация SSL/TLS.

–  –  –

23.4 Клиентский режим Используйте клиентский режим, подключаясь к серверу МагПро OpenVPN-ГОСТ, который имеет в конфигурации опции –server, –server-bridge или –mode server.

–  –  –

23.5 Опции зашифрования канала данных Эти опции имеют значение и для статического режима, и для режима TLS-договоренного ключа (должны быть совместимы между партнерами)

–  –  –

23.6 Опции режима TLS Режим TLS - самый мощный криптографический режим МагПро OpenVPN-ГОСТ как в области безопасности, так и в области гибкости. Режим TLS работает путем установления контрольных туннелей и туннелей данных, которые мультиплексированы через один TCP/UDPпорт. МагПро OpenVPN-ГОСТ инициирует TLS-сеанс по контрольному каналу и использует его, чтобы произвести обмен ключами шифрования и HMAC для защиты канала данных.

Режим TLS использует развитый слой криптостойкости над UDP-соединением для всех коммуникаций по контрольному каналу, в то время как канал данных, чеез который проходят зашифрованные туннельные данные, форвардится без какого-либо посредничества. Результат наилучший в обоих мирах: быстрый канал данных, который форвардится через UDP с непроизводительными издержками только в виде функций зашифрования, расшифрования и HMAC, и контрольный канал, который предоставляет все возможности защиты TLS, включая аутентификацию, основанную на сертификатах, и секретность форвардинга Диффи-Хеллмана.

Чтобы использовать режим TLS, каждый партнер, который запускает МагПро OpenVPNГОСТ, должен иметь собственную локальную пару сертификат/ключ (–cert и –key), подписанную на корневом сертификате, указанном в –ca.

Когда два партнера подключаются друг к другу, каждый представляет другому свой локальный сертификат. Затем каждый партнер проверяет, что его партнер предоставил сертификат, подписанный на корневом сертификате, указанном в –ca.

Если эта проверка успешна для обоих партнеров, то будет успешно установлено TLSсоединение, оба партнера обменяются временными сеансовыми ключами, и туннель начнет передавать данные.

Дистрибутив МагПро OpenVPN-ГОСТ содержит набор скриптов для управления RSAсертификатами и ключами, размещенными в поддиректории easy-rsa.

–  –  –

–pkcs11-protectd- Использовать защищенный путь аутентификации PKCS#11, authentication ... полезный для биометрических устройств и внешних клавиатур. У каждого провайдера свои собственные настройки.

–  –  –

23.9 Режим конфигурации сохраняемого туннеля TUN/TAP Доступен на Linux 2.4.7+. Эти опции включают в себя независимый режим МагПро OpenVPN-ГОСТ, который может быть использован для создания и удаления сохраняемых туннелей.

–  –  –

23.12 Скриптование и переменные среды МагПро OpenVPN-ГОСТ экспортирует ряд переменных среды, использующихся в скриптах, определенных пользователем.

23.12.1 Порядок выполнения скриптов

–  –  –

23.12.2 Типы и преобразование строк В определенных случаях МагПро OpenVPN-ГОСТ выполняет преобразование символов в строках. А именно, любые символы, не входящие в набор разрешенных символов для каждого типа строк, будут преобразованы в знак подчеркивания.

Вопрос. Почему преобразование строк необходимо?

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

Вопрос. Можно ли отключить преобразование строк?

Ответ. Да, используя опцию –no-name-remapping, однако эту опцию следует считать дополнительной.

Вот краткое описание имеющихся в МагПро OpenVPN-ГОСТ типов строк и разрешенных классов символов для каждой строки.

Имена, составленные по правилам X.509: буквы и цифры, знак подчеркивания (_), дефис (-), точка (.), at-коммерческое (@), двоеточие (:), косая черта (/) и знак равенства (=). Буквы и цифры определяются как символы, которые заставляют функцию библиотеки C isalnum() вернуть значение «истинно».

Поля Common Name: Буквы и цифры, знак подчеркивания (_), дефис (-), точка (.) и at-коммерческое (@).

–auth-user-pass username: То же, что у полей Common Name, с одним исключением:

параметр username передается в плагин OPENVPN_PLUGIN_AUTH_USER_PASS_VERIFY как есть, без преобразования.

–auth-user-pass password: Любой «печатный» символ, кроме CR и LF. Печатные символы определяются как символы, которые заставляют функцию библиотеки C isprint() вернуть значение «истинно».

–client-config-dir filename как производные от полей common name или username:

Буквы и цифры, знак подчеркивания (_), дефис (-) и точка (.), за исключением «.» и «..» в качестве отдельных строк, а также символ at-коммерческое (@), добавленный для совместимости Порядковый № изменения Подпись лица, ответственного за Дата внесения изменения изменение СЕИУ.00022-01 31 01 131 с классом символов common name.

Имена переменных среды: буквы и цифры или знак подчеркивания (_).

Значения переменных среды: любой печатный символ.

Во всех случаях, символы в строке, которые не являются членами разрешенного класса символов для этого типа строк, преобразовываются в знак подчеркивания.

23.12.3 Переменные среды Однажды установленная переменная среды сохраняется, пока ее не переустановят или не будет перезапущена система.

В серверном режиме переменные среды, установленные МагПро OpenVPN-ГОСТ, определяются в соответствии с объектами клиентов, с которыми они ассоциированы, поэтому не должно быть случаев, когда скрипты получают доступ к ранее установленным переменнм, которые относятся к другим экземплярам клиентов.
2016 г. в Уральской государственной консерватории состоялась премьера оперы Дж. Россини "Севильск...»

«www.carsound.com.ua ПРИЕМНИК ДЛЯ ВОСПРОИЗВЕДЕНИЯ ДИСКОВ DVD И КОМПАКТ-ДИСКОВ KD-DV4405/KD-DV4406 Информацию об отмене демонстрации функций дисплея см. на стр. 5. Указания по установке и выполнению соединений приводятся в отдельной инструкции. ИНСТРУКЦИИ ПО ЭКСПЛУАТАЦИИ GET0514-003A Благодарим Вас...»

«Л. П. Сергиевская Несколько новых видов из Западной Сибири S p e c i e s n o n n u l l a e n o v a e е Sibiria o c c i d e n t a l ! auctore L. S e r g i e v s k a j a При пересмотре Зап.-Сиб. отдела Гербария имени проф. П. Н. Крылова, в связи с составлением XII т. „Флоры Западной Сибири выявились еще новые виды растений, описания котор...»

«) ГЛАВНОЕ УПРАВЛЕНИЕ ГИДРОМЕТЕОРОЛОГИЧЕСКОЙ СЛУЖБЫ ПРИ СОВЕТЕ МИНИСТРОВ СССР ОЬ ТРУДЫ ГЛАВНОЙ ГЕОФИЗИЧЕСКОЙ ОБСЕРВАТОРИИ имени А. И. В о ейкова ВЫ ПУСК 88 ВОПРОСЫ ОБЩЕЙ И СИНОПТИЧЕСКОЙ КЛИМАТОЛОГИИ П’од р е...» : АКАДЕМИЯ НАУК СССР МИНИСТЕРСТВО ВЫСШЕГО И СРЕДНЕГО СПЕЦИАЛЬНОГО ОБРАЗОВАНИЯ УССР АКАДЕМИЯ НАУК 7ССР ХЛРЬКОВСКЙЯ ГОСУНИВЕРСИГ12Т ВЗАИМОДЕЙСТВИЕ АТОМНЫХ ЧАСТИЦ С ТВЕРДЫМ ТЕЛОМ I ХАРЬКОВ 7-9 *"ня...» государств-участников Содружества Независимых Государств, придавая важное значение развитию сотрудничества в...»

« different topic and the goal of the current survey is to track the effects of the economic downturn i...»

«Особенности подросткового возраста как фактор риска развития наркозависимости Подростковый возраст (пубертатный период) с давних пор считается фактором, способствующим развитию алкоголизма и токсикомании (Личко...»

«АНТИЧНАЯ ДРЕВНОСТЬ И СРЕДНИЕ ВЕКА, ВЫП. 10, 1973 А. П. Каждан СОСТАВ ГОСПОДСТВУЮЩЕГО КЛАССА В ВИЗАНТИИ XI-XII вв. АНКЕТА И ЧАСТНЫЕ ВЫВОДЫ 1. Ч. VI. ЕВНУХИ Особую группу господствующего класса Византии составляли евнухи, из которых рекрутировалась известная ча...»

УТВЕРЖДАЮ: Директор БУК ВО "Вологодская областная универсальная научная библиотека им. И.В. Бабушкина" Т.Н. Буханцева _ _ основанием, должны обеспечивать: стабильность ширины колеи; Треб...»

2017 www.сайт - «Бесплатная электронная библиотека - электронные материалы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам , мы в течении 1-2 рабочих дней удалим его.

Довольно часто встречается ситуация, когда в организации уже настроена и функционирует виртуальная сеть OpenVPN с шифрованием по алгоритму RSA, причем клиенты рассредоточены в лучшем случае в пределах одного города. Рано или поздно возникает необходимость шифровать канал по ГОСТу.

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

Миграция серверной части.

  1. Установить средство криптографической защиты информации «МагПро КриптоПакет» в исполнении «OpenVPN-ГОСТ».
  2. Создать файл инициализации программного ДСЧ, для этого запустить
    sudo -H /opt/cryptopack3/bin/mkseed -r
    и следовать указаниям программы.

    После выполнения первых двух пунктов будет установлен полный набор ПО, необходимого для работы OpenVPN с алгоритмами ГОСТ. При этом уже настроенный канал с шифрованием по RSA продолжит работать.

  3. В каталоге /etc/openvpn-gost/ создать конфигурационный файл openvpn-gost.conf , в котором будет описано создание дополнительного канала с шифрованием по ГОСТ. За основу можно взять устанавливаемый в этот же каталог файл server.conf.sample (вполне вероятно, что в нем не понадобится ничего изменять).
  4. Сгенерировать необходимые ключи и сертификаты для запуска сервера (сделать это можно с помощью набора скриптов easy-gost, который входит в состав поставки, и указать к ним правильный путь в конфигурационном файле.
  5. Запустить OpenVPN-ГОСТ
    sudo -H /etc/init.d/openvpn-gost start

Миграция клиентов

Далее необходимо перевести клиентов на использование «OpenVPN-ГОСТ». Удобного для всех способа замены комплекта пользователя не существует, однако в общем случае этот процесс может выглядеть так:
  1. Подготовка дистрибутива пользователя (например, написание корректного конфигурационного файла, который обеспечит требуемую функциональность)
  2. Размещение данного дистрибутива на внутреннем файловом сервере организации
  3. Оповещение пользователей о том, что необходимо скачать и установить новую версию ПО

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

Также пользователей полезно снабдить инструкцией. Для ОС Windows в общем виде она будет следующей:

  1. Скачать дистрибутив "OpenVPN-ГОСТ" по ссылке <ссылка>
  2. Удалить старую версию OpenVPN с помощью стандартных средств системы
  3. Установить новую версию, используя загруженный с файл-сервера дистрибутив
  4. Поместить <следующие файлы> (например, ключи и сертификаты) в каталог <каталог>
  5. Запустить "OpenVPN-ГОСТ", используя иконку на рабочем столе

Разумеется, миграция клиентов займет некоторое время, в зависимости от скорости реагирования пользователей.

В целом же, данный способ наиболее удобен и позволяет произвести перевод пользователей на новую версию OpenVPN-ГОСТ не выходя из офиса.

Шифрование OpenVPN

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

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

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

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

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



> > Не производный, а случайный ключ, который генерируется прямо во время
> > сеанса. Асимметричное шифрование излишне ресурсоёмкое, поэтому данные
> > сеанса им не шифруются. Им шифруется только стадия обмена сеансовым
> > ключом симметричного шифрования. Дальнейшее шифрование сеанса
> > происходит без участия ключей ассиметричного шифрования.
>
> Я так понял, что при коннекте клиента к openvpn, с использованием x.509
> происходит:
>
> 1. "Использование" "tls-auth ta.key" для "для предотвращения DoS-атак и
> UDP port flooding", который хранится и на сервере и у клиента. (как
> используется? Алгоритм пока непонятен.)
> 2. Авторизация по x.509 (ключи х.509 никак не используются для шифрации
> трафика). Клиент проверяет, что его сертификат и серт клиента подписанны
> одним СА, и то что сертификата клиента нет в списке отозванных (при
> опции --crl-verify).
> 3. Пересылка клиенту производного от закрытого dh dh2048.pem (который,
> в отличие от ta.key хранится только на сервере) открытого ключа который
> используется для ассимитричного(!) шифрования, для пересылки сессионного
> ключа.
> 4. Генерация произвольного сессионного симметричного ключа сервером
> (видимо сервером, ведь клиент не обязан иметь библиотеку openssl ?)


Обязан.

> и пересылка его клиенту.
>
> Это правильное понимание?

Точнее скажет Витус, он туда лазил. Но насколько я понимаю, общий принцип -
клиент и сервер взаимно авторизуются в процессе установления TLS-соединения, а
уже по установленному шифрованному каналу договариваются о собственно рабочем
ключе, равно как и о параметрах туннеля (адресах, роутинге и пр.).

Далее. Как именно в OpenVPN используется DH, я тоже сходу не скажу, но он в
принципе не используется для шифрования. Не может. Он используется для
выработки общего ключа обеими сторонами без собственно пересылки оного ключа.
В принципе, потом этот общий ключ можно использовать для пересылки "рабочего"
ключа (так происходит в S/MIME, если пользоваться алгоритмами ГОСТ - там как
раз подобная схема), а можно - для раздельной выработки рабочих ключей на
обеих сторонах (так происходит в TLS). Насколько я себе представляю, вариант
с пересылкой рабочего ключа с "честным" DH нигде не используется. В S/MIME с
ГОСТ он используется из тех соображений, что прямого аналога RSA у нас нет, а
существующие приложения по-другому просто не умеют. Поэтому приходится
мудрить с эфемерным ключом и шифрованием рабочего ключа на парном.

> > OpenVPN пользуется именно библиотекой OpenSSL. Я думаю документацию
> > нужно рыть там.
>
> Кто-нибудь может посоветовать краткую, но глубокую доку (rus/eng) из
> серии "как это работает" (а не "что надо сделать, чтобы заработало") ?

Для начала надо брать описание протокола OpenVPN. Это нестандартная хрень,
поэтому искать надо в его доке. Там, где он будет отсылать к TLS - брать RFC
на TLS:-) Ну, дальше по вкусу, вплоть до "Прикладной криптографии".

--
Artem Chuprina
RFC2822: Jabber.