Jump to content

Установка OpenVPN


Fame

Recommended Posts

Установка

Запускаем от имени администратора

1093781738_.png.ffd3ebaab2eaad6741beaa36fded46c5.png

Если нас не интересуют расширенные параметры, жмем - "Install Now". Программа установиться по умолчанию. Для большинства пользователей  - это лучший вариант :)

Тот, кто хочет получить более полный контроль над установкой, жмем "Customize".

Продолжение следует....

 

Введение

OpenVPN -- это полнофункциональный SSL VPN (Virtual Private Network — виртуальная частная сеть), реализующий увеличение безопасности сети на 2-м и 3-м уровне OSI используя являющийся промышленным стандартом протокол SSL/TLS, поддерживает гибкие методы аутентификации клиента на основе сертификатов, смарт-карт и/или имени пользователя/пароля, а также предоставляет политики контроля доступа пользователя или группы, используя правила файрвола, применяемые к виртуальному VPN-интерфейсу. OpenVPN не является прокси-сервером для веб-приложений и не работает через веб-браузер.

Установка OpenVPN

OpenVPN можно скачать здесь.

В целях обеспечения безопасности будет хорошей идеей проверить сигнатуру файла с релизом после загрузки.

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

Замечания для Windows

OpenVPN для Windows можно установить из самоустанавливающегося исполняемого файла, который необходимо взять на странице загрузки OpenVPN. Помните, что OpenVPN будет работать только на Windows 2000 и выше. Также следует отметить, что OpenVPN необходимо устанавливать и запускать под пользователем, имеющим права администратора (это ограничение накладывается Windows, а не OpenVPN). Ограничение можно обойти путем запуска OpenVPN в фоновом режиме в качестве службы, в этом случае даже без административных прав пользователи смогут получить доступ к VPN, когда он будет установлен. Более подробное обсуждение вопроса OpenVPN + ограничения в Windows.

OpenVPN также может быть установлен в Windows с графическим интерфейсом с помощью установочного пакета Mathias'а Sundman'а, который устанавливает и OpenVPN и GUI для Windows.

После окончания работы инсталлятора (в Windows) OpenVPN будет готов к использованию, а файлы с расширением . ovpn будут ассоциированы с OpenVPN. Запустить OpenVPN можно несколькими способами:

  • Щелкните правой кнопкой на файле конфигурации OpenVPN (.ovpn) и выберите Start OpenVPN on this configuration file. После запуска вы можете использовать F4 для выхода.
  • Запустить OpenVPN из окна командной строки с помощью команды:
openvpn myconfig.ovpn

После запуска в окне командной строки OpenVPN может быть остановлен с помощью F4.

  • Запустить OpenVPN как службу, разместив один или несколько конфигурационных файлов .ovpn в \Program Files\OpenVPN\Config и запустив cлужбу OpenVPN (OpenVPN Service), которую можно контролировать из Пуск / Панель управления / Администрирование / Службы (Start Menu / Control Panel / Administrative Tools / Services).

Для Windows-версии OpenVPN также доступен графический интерфейс (GUI).

Дополнительные замечания по установке в Windows.

Определение в каком режиме использовать VPN: в режиме моста или в режиме маршрутизации

Смотрите в FAQ обзор вопроса "Маршрутизация vs. Ethernet-мост" (Routing vs. Ethernet Bridging). Посмотрите также страницу о Ethernet-мостах в OpenVPN для получения более детальной информации.

В целом, для большинства маршрутизация будет являться наилучшим выбором, так как она является более эффективной и более простой в настройке (в плане конфигурирования OpenVPN), чем мост (bridging). Также, маршрутизация предоставляет более широкие возможности для выборочного контроля прав доступа на основе данных клиентов.

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

  • VPN должен быть в состоянии обрабатывать не-IP протоколы, такие как IPX,
  • вы запускаете поверх VPN приложения, которые работают с использованием широковещательных пакетов (например, игры по локальной сети), или
  • вы хотели бы разрешить обзор общих ресурсов Windows в сетевом окружении через VPN без настройки Samba- или WINS- серверов.

Нумерация частных подсетей

Настройка VPN часто влечет за собой объединение частных сетей (private subnets), расположенных в разных местах.

Internet Assigned Numbers Authority (IANA) зарезервировала следующие три блока адресного пространства IP для частных сетей (описанные в RFC 1918):

10.0.0.0

10.255.255.255

(префикс 10/8)

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, которые используют одинаковую нумерацию своих сетей, или
  • подключения удаленного доступа с сайтов, которые используют частные подсети, конфликтующие с вашими VPN-подсетями.

В качестве примера предположим, что вы используете популярный диапазон 192.168.0.0/24 для нумерации вашей частной локальной сети. Вы пытаетесь подключиться к VPN из Интернет-кафе, которое использует те же адреса в своей Wi-Fi сети. У вас получится конфликт в маршрутизации, потому что ваша машина не будет знать к чему относится 192.168.0.1 -- к локальному Wi-Fi шлюзу или такому же адресу в VPN.

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

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

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

Настройка вашего собственного центра сертификации (Certificate Authority, CA) и генерация сертификатов и ключей для OpenVPN-сервера и нескольких клиентов

Обзор

Первый шаг в построении конфигурации OpenVPN 2.0 заключается в создании инфраструктуры открытых ключей (Public Key Infrastructure, PKI). PKI состоит из:

  • отдельного сертификата (также известного как открытый ключ) и секретного ключа для каждого сервера и клиента, и
  • главного сертификата центра сертификации (Certificate Authority, CA) и ключа, который используется для подписи каждого сертификата для сервера и клиентов.

OpenVPN поддерживает двунаправленную аутентификацию на основе сертификатов, это означает что клиент должен проверять подлинность сертификата сервера, а сервер должен проверять подлинность сертификата клиента до того как они начнут доверять друг другу.

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

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

  • Серверу необходим только свой сертификат/ключ -- у него нет необходимости знать индивидуальные сертификаты каждого клиента, который может подключиться к нему.
  • Сервер будет принимать только клиентов, чьи сертификаты были подписаны главным CA-сертификатом (который мы будем генерировать ниже). Поскольку сервер может выполнить эту проверку подписи без необходимости доступа непосредственно к закрытому ключу CA, есть возможность для CA-ключа (наиболее чувствительного ключа во всем PKI) находиться на совершенно другой машине, даже без сетевого подключения.
  • Если закрытый ключ скомпрометирован, его можно отключить, добавив его сертификат к CRL (certificate revocation list, список отозванных сертификатов). CRL позволяет выборочно отклонять скомпрометированные сертификаты без необходимости перестройки всего PKI.
  • Сервер может применять клиент-специфичные права доступа на основании встроенных областей сертификата, таких как Common Name.

Создание главного сертификата и ключа в Certificate Authority (CA)

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

Для управления PKI мы будем использовать набор скриптов, который идет в комплекте с OpenVPN.

Если вы используете Linux, BSD или UNIX-подобные ОС, откройте консоль и перейдите в подкаталог easy-rsa, который находится в распакованных файлах OpenVPN. Если OpenVPN у вас установлен из RPM-файла, каталог easy-rsa обычно можно найти в /usr/share/doc/packages/openvpn или /usr/share/doc/openvpn-2.0 (чтобы в будущем при обновлении OpenVPN не перезаписать свои изменения, будет лучше скопировать этот каталог в другое место, например, /etc/openvpn, прежде чем делать какие-либо действия в нем). Если вы делали установку из .tar.gz -файла, каталог easy-rsa будет находиться в каталоге верхнего уровня распакованного дерева исходных текстов.

Если вы используете Windows, откройте окно командной строки и перейдите в \Program Files\OpenVPN\easy-rsa. Запустите следующий пакетный (batch) файл для копирования файлов конфигурации на место (это приведет к перезаписи любого существующего vars.bat и openssl.cnf файлов):

init-config

Теперь необходимо отредактировать файл vars (называемый vars.bat в Windows) и установить параметры KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG и KEY_EMAIL. Не оставляйте любой из этих параметров пустым.

В Windows:

vars

clean-all

build-ca

Последняя команда (build-ca) создаст сертификат и ключ центра сертификации (CA), вызвав интерактивную команду openssl:

ai:easy-rsa # ./build-ca

Generating a 1024 bit RSA private key

............++++++

...........++++++

writing new private key to 'ca.key'

-----

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [KG]:

State or Province Name (full name) [NA]:

Locality Name (eg, city) [BISHKEK]:

Organization Name (eg, company) [OpenVPN-TEST]:

Organizational Unit Name (eg, section) []:

Common Name (eg, your name or your server's hostname) []:OpenVPN-CA

Email Address [me@myhost.mydomain]:

Обратите внимание, что в указанной выше последовательности большинство запрошенных параметров установлены в значения по умолчанию, взятые из файлов vars или vars.bat. Common name -- единственный параметр, который должен быть явно указан. В примере выше я использовал "OpenVPN-CA".

Генерация сертификата и ключа для сервера

В Windows:

build-key client1

build-key client2

build-key client3

Замените использованный выше скрипт на build-key-pass если вы хотите защитить паролем ключи клиента .

Помните, что для каждого клиента необходимо обязательно ввести соответствующий Common name в ответ на запрос, то есть "client1", "client2", или "client3". Всегда используйте уникальные common name для каждого клиента.

Генерация параметров Diffie Hellman'а

 

В Windows:

build-dh

Вывод:

ai:easy-rsa # ./build-dh

Generating DH parameters, 1024 bit long safe prime, generator 2

This is going to take a long time

.................+...........................................

...................+.............+.................+.........

......................................

Основные файлы

Теперь мы найдем наши вновь созданные ключи и сертификаты в подкаталоге keys. Вот разъяснение соответствующих файлов:

Имя файла

Где необходим

Назначение

Секретный

ca.crt

сервер + все клиенты

Корневой CA-сертификат

НЕТ

ca.key

машина для подписи ключей

Корневой CA-ключ

ДА

dh{n}.pem

только сервер

Параметры Diffie Hellman'а

НЕТ

server.crt

только сервер

Сертификат сервера

НЕТ

server.key

только сервер

Ключ сервера

ДА

client1.crt

только клиент1

Сертификат клиента1

НЕТ

client1.key

только клиент1

Ключ клиента1

ДА

client2.crt

только клиент2

Сертификат клиента2

НЕТ

client2.key

только клиент2

Ключ клиента2

ДА

client3.crt

только клиент3

Сертификат клиента3

НЕТ

client3.key

только клиент3

Ключ клиента3

ДА

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

У вас может возникнуть один вопрос. Есть ли возможность настроить PKI без заранее созданного безопасного канала?

Ответ явно "да". В приведенном выше примере, мы для краткости сгенерировали все секретные ключи в одном и том же месте. С немного большими усилиями мы могли бы сделать это по-другому. Например, вместо создания клиентских сертификатов и ключей на сервере, клиенты могли бы сгенерировать свой закрытый ключ локально, а затем отправить запрос на подпись сертификата (Certificate Signing Request, CSR) на машину с ключем для подписи (key-signing machine). В свою очередь, машина с ключем для подписи могла бы обработать CSR и вернуть клиенту подписанный сертификат. Это можно было сделать даже не требуя, чтобы секретный .key-файл покидал жесткий диск машины, на которой он был сгенерирован.

Создание конфигурационных файлов для сервера и клиентов

Получение образцов файлов конфигурации

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

  • каталоге sample-config-files дерева исходных кодов OpenVPN
  • каталоге sample-config-files в /usr/share/doc/packages/openvpn или /usr/share/doc/openvpn-2.0, если вы производили установку из RPM-пакета
  • Пуск -> Программы -> OpenVPN -> OpenVPN Sample Configuration Files в Windows

Следует отметить, что в Linux, BSD, UNIX или подобных операционных системах примеры конфигурационных файлов названы server.conf и client.conf. В Windows они называются server.ovpn и client.ovpn.

 

В процессе оформления....

Link to post
×
×
  • Create New...