Как пользоваться openvpn connect windows

Introduction

This guide covers how to connect to a server with the OpenVPN Connect app.

With OpenVPN Connect v3, you can connect to:

  • OpenVPN Access Server.
  • OpenVPN Cloud.
  • Almost any other OpenVPN open-source-based server, including OpenVPN.

OpenVPN Connect v3 downloads

You can download the install files for OpenVPN Connect v3 for Windows, macOS, Android, and iOS here: OpenVPN Connect Client—our official VPN client.

For the Linux operating system, there is a command-line client available.

You can also download the app for your OpenVPN Access Server or OpenVPN cloud connection:

  • OpenVPN Access Server: download OpenVPN Connect from Client Web UI.
  • OpenVPN Cloud: download the Connect app and retrieve a profile.

Launching OpenVPN Connect v3

After downloading OpenVPN Connect, install the program on your device.

After installing the program on your respective OS, you receive some one-time messages about onboarding, the license agreement, and deprecated functions the first time you launch it.

Connecting to OpenVPN Access Server

To connect to an OpenVPN Access Server with a Windows or macOS computer, we recommend a direct download. You can do this by signing in to your OpenVPN Access Server’s client web UI. When you download and install the OpenVPN Connect v3 client from the client web UI, it is pre-installed with the necessary configuration profile. You or your user can start the connection immediately after installation.

If you prefer to download the Connect app directly from our site, follow the instructions below to import a configuration profile.

To connect with an already installed client, simply import a configuration profile directly from your server or use a file on your computer.

Connecting to OpenVPN Cloud

Download the client from our website, then use the instructions below to import a configuration profile directly from the server. When a new user gets an invite to OpenVPN Cloud, they can follow the instructions in their email to connect.

Import a configuration profile from the server

You can import a configuration profile directly from a server for our official business VPN products, OpenVPN Access Server and OpenVPN Cloud. To do this, open the program and click on the + icon on the main screen.

In the Import Profile window, enter the address of your server. For Access Server, this could be https://vpn.yourcompany.com/. For OpenVPN Cloud, this is your cloud tenant ID with ‘openvpn.com’ such as https://yourcompany.openvpn.com/.

Note: When you create a new user from your OpenVPN Cloud portal, they receive an email invitation with instructions for downloading the client and connecting with their assigned username and a temporary password.

Click Next, and you will be prompted to sign in with your credentials. If you receive a certificate error message, this is because your Access Server uses a self-signed certificate. We recommend installing a valid SSL web certificate and using a fully qualified domain name.

A new cloud user authenticating with a temporary password, is prompted to create a new password within OpenVPN Connect.

After successful authentication, the new profile is added to the list of profiles on your main screen. You can now easily connect and disconnect at any time.

Starting a connection

On OpenVPN Connect’s main screen, any configuration profile already loaded displays.

By clicking on the toggle next to a profile, you can start or stop a connection at any time. Once the connection establishes, statistics and information about the connection display.

You can easily disconnect at any time and return to the main screen.

Connecting to OpenVPN open source

If you are connecting to an OpenVPN open-source-based server, you may download the client from our website and use the instructions below to import a configuration profile from a file on your computer.

Import a configuration profile from a file

Importing a configuration profile from a file works for almost any OpenVPN server. You simply need the necessary file(s) saved to your device. Start by clicking on the + icon, then choose File.

Either drag the profile file to the window or point the program to it by clicking on Browse and then Open.

Make sure to click on Add, and the profile displays on the main screen, where you can easily connect or disconnect.

Обновлено Обновлено:
Опубликовано Опубликовано:

Тематические термины: OpenVPN, VPN, Windows, Linux, CentOS, Ubuntu

В данной инструкции подробно описан процесс настройки клиента OpenVPN на примере операционных систем Windows и Linux. Также, с ее помощью можно настроить скиента на Android.

Установка
Настройка
    Пример конфигурационного файла
    Ключи
    Сертификаты
Запуск
Несколько конфигураций
Сертификаты внутри ovpn файла
Отзыв сертификата
Читайте также

Установка

Windows

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

Скачиваем OpenVPN для Windows

Запускаем скачанный файл и устанавливаем программу, нажимая «Далее».

Linux CentOS

Устанавливаем репозиторий EPEL:

yum install epel-release

Устанавливаем openvpn:

yum install openvpn

Linux Ubuntu

apt-get install openvpn

Android

Установка выполняется из Google Play. Набираем в поиске OpenVPN Connect — нажимаем установить и принимаем условия.

Настройка

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

В системах Windows создаем файл config.ovpn в папке %programfiles%\OpenVPN\config.

* имя файла может быть любым, расширение должно быть .ovpn.

Для создания конфигурационного файла в Linux выполняем команду:

vi /etc/openvpn/client.conf

* чтобы служба openvpn автоматически выполняла соединение, необходимо, чтобы конфигурационный файл назывался client.conf.

Пример конфигурационного файла

client
dev tun
proto udp
remote 192.168.0.15 443
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
dh dh2048.pem
tls-client
tls-auth ta.key 1
float
keepalive 10 120
comp-lzo
verb 0

Параметры конфигурационного файла

Параметр Значения Описание
client   Строка говорит о том, что конфигурационный файл описывает клиентское подключение (программа сама устанавливает соединение, а не ждет, как сервер).
dev tap или tun Выбор виртуального сетевого драйвера. TUN — сетевой уровень модели OSI, оперирует IP-пакетами. TAP — эмулирует Ethernet устройство и работает на канальном уровне модели OSI, оперируя кадрами Ethernet. Настраивая OpenVPN клиента, в большинстве случаев, необходимо выбирать tun. TAP необходимо использовать для работы определенных сервисов, например DHCP.
dev-node любая строка Параметр используется в системах Windows в случаях, если имеется несколько сетевых интерфейсов. Значение этого параметра должно содержать название сетевого подключения, через который должен работать OpenVPN.
proto udp или tcp Указывает, какой протокол использовать для передачи данных. В большинстве случаев, лучше использовать UDP, так как данный протокол создает меньше нагрузки на сеть.
remote VPN-сервер и порт Задает сервер, к которому должен подключаться клиент, а также сетевой порт (по умолчанию 1194), на котором OpenVPN принимает запросы. Можно указать несколько строк.
remote-random   Если указано несколько строк remote, данный параметр говорит, что необходимо подключаться к удаленным серверам в случайном порядке.
resolv-retry количество секунд или infinite Используется в тех случаях, когда в качестве сервера указано доменное имя. Параметр задает время в секундах для повторного переподключения, если не удалось узнать имя сервера. infinite — держать связь с сервером постоянно.
nobind   Клиент использует динамический порт для подключения.
user учетная запись Задает определенного пользователя для работы клиента (только для UNIX-систем).
group группа Задает определенную группу для работы клиента (только для UNIX-систем).
persist-key   Не перечитывает ключи при перезагрузке сервиса OpenVPN.
persist-tun   Не перечитывает параметры туннеля при перезагрузке сервиса OpenVPN.
http-proxy сервер прокси и порт Использовать прокси-сервер для подключения.
http-proxy-retry   Переподключаться к прокси-серверу, если связь была разорвана.
http-proxy-timeout количество секунд Время, через которое выполнять попытки переподключения к прокси-серверу.
mute-replay-warnings   Параметр стоит задавать при использовании беспроводного соединения. Он отключит дублирование предупреждений пакетов.
ca пут к сертификату Корневой сертификат удостоверяющего центра. Генерируем на сервере.
cert пут к сертификату Открытый ключ клиента. Генерируем на сервере.
key пут к сертификату Закрытый ключ клиента. Генерируем на сервере.
dh пут к сертификату Ключ с алгоритмом Diffie-Hellman (Диффи-Хеллмана).
remote-cert-tls сервер Исключает возможность mitm атаки, включая верификацию сертификата сервера.
tls-client   Указание на то, что это клиент TLS.
tls-auth ta.key 1 Дополнительный уровень аутентификации посредством ключа TLS.
float   Удаленный хост может менять IP-адрес в процессе соединения, при этом последнее не будет разорвано.
keepalive секунд1 секунд2 Пинговать каждые секунд1 сервер и если в течение секунд2 не будут получены ответные пакеты, перезапустить подключение.
cipher алгоритм Указывает алгоритм шифрования. Примеры: AES-256-CBC, AES-128-CBC, BF-CBC, DES-EDE3-CBC.
comp-lzo   Использовать сжатие.
verb число от 0 до 9 Уровень детализации лога. 0 отключает отладочную информацию.
mute число Указывает сколько лог-сообщений может отображаться для каждой категории события.
auth-user-pass ничего или путь к файлу Говорит клиенту, что необходима аутентификация. Если не указан путь к файлу, клиент выкинет окно для авторизации, иначе прочитает данные из файла.
ipchange команда или путь к скрипту Выполняет команду при смене IP.
connect-retry секунд Переподключиться к серверу через указанное количество секунд, если соединение было разорвано.
connect-retry-max число Сколько раз повторять соединение, если оно было разорвано.
shaper байт Задает максимальную скорость передачи данных для исходящего трафика.
tun-mtu число Задает MTU.
status путь к файлу Путь к фалу хранения статуса.
log путь к файлу Путь к лог-файлу.
askpass путь к файлу Путь к файлу с паролем для приватного ключа (private key password).

Наиболее полный и актуальный список параметров для OpenVPN можно получить командой openvpn —help (в Linux и Windows).

Сертификаты

Клиентские сертификаты генерируются на стороне сервера. Процедура следующая.

Для Linux:

cd /etc/openvpn/easy-rsa

. ./vars

./build-key client

Для Windows:

cd %ProgramFiles%\OpenVPN\easy-rsa

vars.bat

build-key.bat client

* в выше приведенных примерах был сгенерирован клиентский сертификат client. Более подробно про создание сертификатов для клиентов читайте на страницах настройка openvpn на Windows и настройка openvpn на CentOS.

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

В итоге мы получаем, примерно, следующее.

Для Windows:

Пример каталога config для настройки OpenVPN клиента

Для Linux:

ls /etc/openvpn/client/

ca.crt  client.crt  client.key  client.conf  dh2048.pem  ta.key

Запуск

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

Вручную

На Windows:

Запускаем OpenVPN GUI от имени администратора — в правом нижнем углу появится иконка программы:

После запуска программы ее значок появится в правом нижнем углу

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

Подключаемся к OpenVPN серверу

На Linux:

Переходим в каталог с конфигурационным файлом:

cd /etc/openvpn

Вводим команду:

openvpn —config /etc/openvpn/client.conf

или:

systemctl start openvpn@client

* также служба может называться openvpn.

Автоматически

На Windows:

Выполняем 2 действия.

1. Наш конфигурационный файл с сертификатами переносим из каталога config в каталог config-auto:

Каталоги config и config-auto в папке OpenVPN

* в старых версиях клиента каталога config-auto нет — тогда оставляем файлы в config.

2. Открываем службы и находим OpenVPNService. Переводим его в режим автозапуска:

Настройка службы OpenVPN для автоматического старта

На Linux:

Разрешаем автозапуск службы:

systemctl enable openvpn@client

или для старых версий.

CentOS / Red Hat / Fedora:

chkconfig openvpn on

Ubuntu / Debian:

update-rc.d openvpn defaults

Несколько конфигурационных файлов

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

Для Windows:

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

Пример каталога config:

Каталог config с несколькими папками для разных подключений

Пример файлов в одном из каталогов:

Содержимое каталога с настройками подключения к серверу VPN

Теперь при подключении клиентом к можно выбрать конкретный VPN-сервер:

Возможность выбора сервера для подключения OpenVPN

Для Linux:

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

mkdir /etc/openvpn/server1

А в каталоге /etc/openvpn создаем для каждого подключения свой конфиг:

vi /etc/openvpn/client1.conf

* в конфигурационном файле все пути до файлов должны вести в соответствующий каталог (в нашем примере, /etc/openvpn/server1).

Запускаем OpenVPN:

openvpn —config /etc/openvpn/server1/client.conf

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

systemctl enable openvpn@client

… где @client — указатель на использование конфигурационного файла client внутри папки openvpn (/etc/openvpn). Таким образом, если мы создали 2 файла client1.conf и client2.conf, команды для разрешения автозапуска бelen такие:

systemctl enable openvpn@client1

systemctl enable openvpn@client2

Сертификаты внутри конфигурационного файла

Ключи сертификатов можно хранить не в отдельных файлах, а внутри конфигурационного файла ovpn.

<ca>
——BEGIN CERTIFICATE——

——END CERTIFICATE——
</ca>

<tls-auth>
——BEGIN OpenVPN Static key V1——

——END OpenVPN Static key V1——
</tls-auth>

<cert>
——BEGIN CERTIFICATE——

——END CERTIFICATE——
</cert>

<key>
——BEGIN PRIVATE KEY——

——END PRIVATE KEY——
</key>

<dh>
——BEGIN DH PARAMETERS——

——END DH PARAMETERS——
</dh>

key-direction 1 — необходим для tls-auth, в противном случае, работать не будет; ca — ключ центра сертификации (ca.crt); tls-auth — ta.key; cert — открытый сертификат клиента (clients.crt); key — закрытый сертификат клиента (clients.key); dh — сертификат, созданный на базе протокола Диффи Хеллмана.

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

Для Linux:

cd /etc/openvpn/easy-rsa

. ./vars

./revoke-full client

Для Windows:

cd %ProgramFiles%\OpenVPN\easy-rsa

vars.bat

revoke-full.bat client

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

Читайте также

Настройка сервера OpenVPN на Windows

Установка и настройка OpenVPN на Linux CentOS 7

Настройка OpenVPN сервера с включением аутентификации через LDAP (Active Directory)

Настройка доступа к локальной сети клиентам OpenVPN в CentOS 7

#статьи


  • 0

Дешёвый и сердитый ответ блокировкам.

Изображение: mrsiraphol / freepik / rawpixel / Freepik / Mickey O`Neil / Hofmann Natalia / Unsplash / OpenVPN Inc/ Wikimedia Commons / Дима Руденок для Skillbox Media

Богдан Островерхов

Пишет о сетях, инструментах для разработчиков и языках программирования. Любит готовить, играть в инди‑игры и программировать на Python.

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

В этой статье мы расскажем о том, как настроить свой VPN на базе OpenVPN. Это вполне по силам сделать даже начинающим, да и стоить будет дешевле, чем пользоваться платными сервисами. Ещё один плюс: ваш VPN будет почти неуязвим для блокировок, так как Роскомнадзору нет дела до частных сетей.

А если не хотите заморачиваться с настройкой своего сервера, в конце статьи есть список бесплатных серверов и инструкция, как к ним подключиться. Так у вас тоже получится свой рабочий VPN — но чуть менее быстрый и безопасный.

Содержание

  • Почему OpenVPN
  • Часть первая: настраиваем сервер
  • Подключаемся к серверу: Windows
  • Подключаемся к серверу: GNU/Linux
  • Подключаемся к серверу: macOS
  • Устанавливаем OpenVPN на сервер
  • Создаём пользователей
  • Часть вторая: устанавливаем клиент
  • На компьютере (Windows, Linux, macOS)
  • На Android-смартфоне
  • На iPhone
  • Список бесплатных VPN-серверов
  • Настраиваем файл конфигурации
  • Заключение

OpenVPN — это один из самых гибких и надёжных протоколов VPN. Его используют как обычные люди, так и сетевики и безопасники для настройки корпоративных сетей.

Вот его главные фишки:

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

Кросс-платформенность. OpenVPN поддерживается на большом количестве платформ, включая Windows, macOS, Linux, Android и iOS. Это значит, что вы можете использовать его на разных устройствах и ОС.

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

Открытый исходный код. Код OpenVPN доступен общественности для просмотра и аудита. Это делает проект прозрачнее и позволяет обнаруживать и исправлять уязвимости быстрее.

Стабильность. Долгая история разработки и широкое комьюнити — это плюсики к стабильности и надёжности. Ещё OpenVPN автоматически восстанавливает соединение при обрыве связи.

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

Чтобы настроить серверную часть, нам потребуется собственно сервер. Он может быть физическим или облачным. Выбор за вами, но мы рекомендуем второй вариант — это дешевле и не так трудозатратно. Услуги аренды облачного сервера предлагает, например, Timeweb. На момент написания статьи там доступны серверы в России, Польше, Нидерландах и Казахстане.

Скриншот: Timeweb / Skillbox Media

На сайте вам предложат пройти регистрацию и выбрать следующие параметры сервера:

  • операционную систему;
  • страну, где сервер физически расположен;
  • конфигурацию серверного железа;
  • возможность бэкапа;
  • SSH-ключ;
  • тип сети — публичную или приватную.

Будем отталкиваться от того, что мы выбрали операционную систему Ubuntu версии 20.04. Если хотите пользоваться ресурсами, заблокированными в России, лучше выбирать страну за пределами СНГ.

Скриншот: Timeweb / Skillbox Media

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

Скриншот: Timeweb / Skillbox Media

После настроек пополните счет в Timeweb (обычной банковской карты будет достаточно) и оплатите желаемый срок аренды сервера. Ваш сервер создан! Подождите несколько минут и обновите страницу — сервер запустится, и мы сможем двигаться дальше.

Теперь пришло время подключиться к серверу. Можно воспользоваться веб-консолью в панели управления вашим сервером на Timeweb. В этом случае подключаться к серверу не нужно, сразу переходите к настройкам.

Скриншот: Timeweb / Skillbox Media

Но если вы выбрали другого хостера — не проблема: сервер можно настроить и с компьютера.

Если вы используете Windows, то перед настройкой нужно будет установить SSH-терминал, так как встроенная командная строка Windows не обрабатывает SSH-команды. Мы будем использовать MobaXterm, но вы можете выбрать любой другой. Linux и macOS поддерживают SSH из собственной командной строки. В терминале MobaXterm:

  • Выберите Session.
  • Выберите SSH.
  • Введите IP-адрес сервера в поле Remote Host.
  • Отметьте чекбокс и введите имя пользователя в поле Specify username.
  • Нажмите ОК.
  • Появится запрос на ввод пароля — введите или вставьте его комбинацией Shift + Insert (пароль не будет отображаться в терминале — это нормально). Если вы пользуетесь ноутбуком, то загуглите комбинацию клавиш, которая заменяет Insert в вашей модели и зажмите её вместе с Shift.

Скриншот: Skillbox Media

Откройте терминал. В командной строке:

Шаг 1. Введите следующую команду:

ssh -l username XXX.XXX.XXX.XXX 

Иксы замените на IP-адрес сервера, а username — на имя пользователя.

Шаг 2. Если будет предложено подтвердить подлинность сервера, введите yes.

Шаг 3. Введите пароль (вводимые символы не отображаются в терминале, это нормально).

Откройте терминал (нажмите значок Launchpad в панели Dock, введите слово Терминал в поле поиска и нажмите значок терминала). В командной строке:

Шаг 1. Введите:

ssh -l username XXX.XXX.XXX.XXX 

Иксы замените на IP-адрес сервера, username — на имя пользователя.

Шаг 2. Если будет предложено подтвердить подлинность сервера, введите yes.

Шаг 3. Введите пароль (вводимые символы не отображаются в терминале, это нормально).

Теперь переходим на сайт openvpn.net, в раздел в раздел products → self-hosted solutions → software packages.

Далее кликаем на эмблему Ubuntu и в появившемся окне выбираем Ubuntu 20 для x86_64 или ARM64, в зависимости от конфигурации вашего сервера (Timeweb обычно предоставляет x86_64).

Далее последовательно введите команды из списка Option 1. После ввода последней команды скопируйте куда-нибудь значения следующих полей из вывода терминала:

Admin UI
Client UI
login
password

Скриншот: Skillbox Media

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

Скопируйте данные строки Admin UI в строку браузера — вы окажетесь в админской панели сервера. Проигнорируйте предупреждение браузера о безопасности (ДополнительноПринять рискПродолжить). Ничего страшного не произойдёт — вы и так знаете, что это ваш сервер.

Введите логин и пароль (из вывода терминала). Вы попадёте в админскую панель своего сервера. Прочтите и примите лицензионное соглашение.

Далее заходите в ConfigurationNetwork settings. Проверьте, правильно ли указан IP-адрес в соответствующем поле.

Скриншот: OpenVPN / Skillbox Media

Теперь переходите в User managementUser permissions. Здесь мы создаём пользователей. Одновременно только два пользователя могут работать с некоммерческой версией OpenVPN.

Скриншот: OpenVPN / Skillbox Media

Введите имя пользователя в предложенном поле и нажмите на иконку в столбике More settings. Развернётся панель, где нужно будет назначить пароль для пользователя. После создания пароля сверните панель щелчком по той же иконке и нажмите Save settings. Если хотите пользоваться VPN и с мобильного устройства, то создайте ещё одного пользователя.

Далее вам предложат перезагрузить сервер. Нажимайте Update Running Server, и после перезагрузки изменения вступят в силу.

Скриншот: OpenVPN / Skillbox Media

Самое сложное позади. Дальше нас ждёт, по сути, простая установка приложения.

Если вы перешли в эту часть статьи из оглавления и не настраивали собственный сервер, вам нужно будет скачать клиент с официального сайта — есть версии для Windows, Linux и macOS. А ещё — файл конфигурации стороннего сервера, который можно найти здесь.

Если вы были с нами всю первую часть статьи, выходите из админки и заходите в пользовательскую версию страницы по только что созданным логину и паролю. Для этого скопируйте строку вывода Client UI или просто удалите из строки браузера с админкой /admin.

Скачайте на открывшейся странице установщик клиента для своей операционной системы. Если у вас уже установлен клиент, то кликайте на Yourself (user-locked profile) — вы скачаете конфигурационный файл, который нужно будет открыть в клиенте.

Скриншот: OpenVPN / Skillbox Media

Запустите установщик. Мы покажем установку в Windows, но в Linux и macOS процесс проходит идентично. Разве что в Windows система будет ругаться. Это не страшно — нажимайте ПодробнееВыполнить в любом случае.

Скриншот: Skillbox Media

Следуйте инструкциям из установщика.

Скриншот: Skillbox Media

Поздравляем! Клиент установлен.

Скриншот: Skillbox Media

Если вы подняли свой сервер, то при запуске профиль пользователя уже будет добавлен в клиент. Кликайте на ползунок, вводите пароль, и вуаля — вы подключены к VPN через собственный сервер. С подключением!

Скриншот: OpenVPN / Skillbox Media

Если вы решили использовать сторонний VPN-сервер и скачали файл конфигурации OpenVPN, то в меню клиента кликайте на плюсик, выбирайте вкладку File и перетаскивайте файл в поле для загрузки. Дальше подключайтесь так, как описывалось в предыдущем абзаце.

Скриншот: OpenVPN / Skillbox Media

Шаг 1. Установите приложение OpenVPN Connect с Google Play.

Скриншот: Skillbox Media

Шаг 2. Сохраните файл конфигурации OpenVPN (.ovpn) своего сервера на мобильное устройство или скачайте бесплатный чуть ниже. Если вы создали разных пользователей на сервере — для десктопа и для мобильного, то заходите под пользователем для мобильного.

Скриншот: OpenVPN / Skillbox Media

Шаг 3. Откройте приложение OpenVPN Connect. Нажмите на значок меню (обычно это три горизонтальные линии) в верхнем левом углу.

Скриншот: Skillbox Media

Шаг 4. Выберите вкладку File. Выберите скачанный с сервера файл конфигурации OpenVPN (.ovpn).

Скриншот: OpenVPN / Skillbox Media

Шаг 5. Нажмите Выбрать или Импортировать для импорта конфигурации.

Шаг 6. Введите логин и пароль пользователя, которого вы создавали под мобильное устройство (если подключаетесь к своему серверу).

Шаг 7. Нажмите на импортированное подключение, чтобы подключиться к VPN-серверу.

Шаг 1. Установите приложение OpenVPN Connect из App Store.

Скриншот: OpenVPN / Skillbox Media

Шаг 2. Скопируйте файл конфигурации OpenVPN (.ovpn) на ваше устройство, например через iCloud Drive, Telegram, WhatsApp или по email. Или скачайте бесплатный в разделе ниже.

Шаг 3. На вашем устройстве найдите файл конфигурации и нажмите на него.

Шаг 4. В меню файла нажмите на значок, как на картинке ниже, и выберите OpenVPN.

Скриншот: OpenVPN / Skillbox Media

Шаг 5. Откроется приложение OpenVPN Connect с предложением импортировать конфигурацию. Нажмите Импортировать для импорта конфигурации в приложение OpenVPN Connect.

Шаг 6. Введите логин и пароль пользователя, которого вы создавали под мобильное устройство (если подключаетесь к своему серверу).

Шаг 7. Нажмите на импортированное подключение, чтобы подключиться к VPN-серверу.

Скриншот: OpenVPN / Skillbox Media

Существуют и бесплатные VPN-серверы. Главная их проблема — в скорости и качестве соединения, вряд ли получится комфортно сёрфить через такой сервер. Вторая проблема — конфиденциальность: непонятно, кто владеет сервером и кто имеет доступ к истории активности пользователей.

Если такие риски и неудобства вас не смущают, то заходите сюда. Прокрутите страницу немного вниз, пока не увидите список серверов.

Скриншот: VPN Gate / Skillbox Media

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

После перехода по ссылке скачайте один из четырёх файлов конфигурации. Мы рекомендуем тот, который указывается вместе с IP-адресом и работает через TCP — это самый последний вариант.

Скриншот: vpngate / Skillbox Media

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

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

Если для личного использования заморачиваться с этим не имеет смысла, то при создании корпоративной сети это может пригодиться.

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

port — порт, на котором сервер OpenVPN будет слушать входящие подключения.

proto — протокол, который будет использоваться сервером (TCP или UDP).

dev — виртуальное устройство сетевого интерфейса, которое будет использоваться сервером, например TUN или TAP.

ca, cert и key — пути к сертификатам и ключам, которые сервер OpenVPN будет использовать для аутентификации клиентов и установки безопасного соединения.

dh — путь к файлу с параметрами протокола Диффи — Хеллмана, используемыми для обмена ключами и установки шифрования.

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

push позволяет серверу отправлять настройки клиентам, например маршруты, DNS-серверы или другие параметры сети.

keepalive указывает интервал проверки активности подключения между сервером и клиентом.

cipher и auth определяют алгоритмы шифрования и аутентификации, которые будут использоваться сервером.

log — путь к файлу журнала, где будут записываться события и сообщения сервера OpenVPN.

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

Если вам интересен этот путь, то начните с книги «Компьютерные сети: принципы, технологии, протоколы» авторства В. Олифер и Н. Олифер — это хороший выбор для новичков. А на YouTube есть простой и понятный курс по сетям от замдекана факультета ИТ МФТИ Андрея Созыкина.

Жизнь можно сделать лучше!
Освойте востребованную профессию, зарабатывайте больше и получайте от работы удовольствие. А мы поможем с трудоустройством и важными для работодателей навыками.

Посмотреть курсы

OpenVPN
Image credit: OpenVPN
(Image credit: OpenVPN)

The easiest way to connect to any VPN is to use its own apps. There’s no tricky setup required, or complicated settings to think about – typically you can just install and go.

But custom apps can have problems, too. Clumsy interfaces, annoying notifications, key features missing, barely any settings – there are some terrible products out there.

You may not have to live with this, as the VPN provider’s app isn’t necessarily your only option. If your VPN supports the OpenVPN protocol, there’s a good chance you can also use the service with OpenVPN’s free OpenVPN Connect client.

Most VPNs already use OpenVPN software to make and manage connections (in Windows, search your client folders for OpenVPN.exe), so you are most unlikely to run into any compatibility issues; set it up and you’ll be ready to use the service within minutes.

This won’t work for everyone. Switching to OpenVPN will probably mean you’ll lose access to any advanced service extras. If your provider supports ad blocking, Tor over VPN or multi-hop VPN (connect to one VPN server, exit from another), for instance, these features may disappear if you switch to another client.

But on the plus side, you’ll get a strong set of core features. On Windows, for instance, there’s ‘Seamless Tunnel’ (which tries to keep the VPN tunnel active when pausing, resuming or reconnecting), automatic reconnection when your device starts, IPv6 control, TCP or UDP connections, a DNS fallback option, and more.

As OpenVPN Connect isn’t tied to a specific VPN provider, you’re able to import server profiles from anywhere. If you’ve signed up with two VPNs, or want to use one commercial and one free service, that’s no problem – the server list can include locations from wherever you like.

Unsure? You can generally install OpenVPN Connect and your provider’s client on the same system, without conflicts. Try your provider’s client for one session, OpenVPN for the next, see which you like best.

However, you’ll still need a VPN provider, so users in the market for a VPN service should check out our list of the best VPNs.

It won’t take long to get started. Most users should have OpenVPN up and running within 30 minutes, and it’ll often take less time than this.

  • It’s also worth bearing in mind the good reasons why a VPN isn’t enough

ExpressVPN

Image credit: ExpressVPN (Image credit: ExpressVPN)

Configuration files

OpenVPN Connect is a powerful package, but it won’t be able to connect to your VPN until it has all the necessary configuration files, the settings which define how each connection should work. Some providers make these hard to find, others ask you to generate them manually, and a few don’t give you any at all, so we would recommend checking your VPN’s website before you do anything else.

The best VPN providers have OpenVPN setup tutorials which not only mention configuration files, but also show you how to use them. Good examples include ExpressVPN, IPVanish, IVPN, NordVPN and VyprVPN.

Others may not have any setup guides, but still provide the files for those who need to use them. Search the Support pages for references to OpenVPN or OVPN files.

A few services hide the files away in a web management console. If you’ve created an account with a VPN provider, log in and browse the pages for OpenVPN setup files, or tools to generate them.

When you’re done, check your downloaded files and unzip any archives. You’re looking for multiple OVPN files, one for every server you’d like to access. There may be other files, too, but as long as you’ve got the OVPN data, you should be ready for the next step.

OpenVPN site

Image credit: OpenVPN (Image credit: OpenVPN)

First steps

The latest build of OpenVPN Connect is always available at the official website. Go to the VPN Server Resources page, click ‘Connecting’, and you’ll find links explaining how to get connected on Windows, macOS, Android, iOS and Linux.

The Windows page has links for OpenVPN Connect, the older OpenVPN GUI and a handful of other alternative clients.

At the time of writing, the page includes links for the current version of OpenVPN Connect 2.7, and the beta of OpenVPN Connect 3. We’re covering the beta here, so grab either the 32-bit or 64-bit version, depending on your Windows build. If you’re unsure of what version you need, try 64-bit first. If you’re wrong, you won’t harm your system, the installer just won’t run.

Although we’re going to discuss Windows, the app works much the same with other operating systems. Check out the Android build and the iOS version for more.

Launching the installer displays a very standard setup wizard. Agree to the license, accept the default settings unless you need to do otherwise, and click ‘Install’ to complete the process.

  • Check out the best free VPN services

OpenVPN Connect

Image credit: OpenVPN (Image credit: OpenVPN)

Import VPN profiles

Launch OpenVPN Connect and it prompts you to import a profile containing information on the server you’d like to use (server name, username, password and maybe port).

The opening screen asks if you’d like to import data direct from OpenVPN Access Server. That’s something a business might use to simplify managing its own server, for example, but it’s not relevant to the average user.

Click ‘Import from File’ instead, then click ‘Browse’ and choose one of the OVPN configuration files you downloaded earlier. If all is well, OpenVPN Connect displays a message telling you the profile has been successfully imported.

OpenVPN Connect gives the profile a title based on the IP address and the name of your file. This is often less than readable – our first title was ‘198.50.134.146 [vpnbook-ovh-udp53-Canada]’ – but you can freely edit this to make it simpler (‘Canada’, ‘Montreal’, ‘VPNBook: Montreal’, whatever you like.)

At a minimum, you must also enter the username you’ll need to log in to this server. Some VPN providers generate a random username when you sign up, others accept your email address, but your provider’s support pages should tell you more.

Check the ‘Save password’ box and you can optionally enter and save your password in the profile. That means you won’t have to enter it every time you log on, but of course is also less secure, as anyone with access to the device will also be able to use your VPN.

Once you’ve entered all the details you need, click ‘Add’ to import the profile.

If your provider’s profiles have a certificate bundled with them, you’re able to import that, too, by clicking the menu button top-left and selecting ‘Import Certificates’.

And that’s it, your first profile is imported and hopefully ready to go. But the chances are you’ll want to add more, so click the orange ‘+’ button (or Menu > Import Profile) to import as many other profiles as you’re intending to use.

OpenVPN Connect

Image credit: OpenVPN (Image credit: OpenVPN)

Getting connected

As you add profiles, they appear in a simple list on OpenVPN’s Access Server Profiles page. Tap the profile name, you’re prompted for your password (unless you’ve saved it in the profile), and the client should get connected within a few seconds.

OpenVPN Connect’s simple but good-looking interface plots incoming and outgoing data on a real-time Connection Stats graph. It’s not the most essential element you need from a VPN client, but it does at least confirm that the system is working as it should.

To verify the connection, point your browser at IPLocation.net, too. The site will display your new IP address and tell you where it thinks it’s located.

When you’ve finished testing the profile, click the profile name to disconnect. By default, OpenVPN displays an ‘are you sure?’ dialog to reduce the chance of accidental disconnections, but if that seems like a hassle, checking the ‘Don’t show again’ box ensures you won’t see it in future.

If you’re looking to switch to another profile, click that profile name instead and OpenVPN will automatically close the first connection, then initiate a new one.

Typically, all of this works just fine, first time, without you having to do anything else. But if you do run into problems – a server won’t connect, for instance – tapping the Log icon top-right of the screen displays a record of all recent connection events.

This is highly technical and even experienced users won’t necessarily understand a lot of it, but have a look, anyway. Errors are highlighted, so if there’s an authentication problem or some other major issue, it’ll generally be easy to spot.

OpenVPN Connect

Image credit: OpenVPN (Image credit: OpenVPN)

Settings

OpenVPN Connect generally works well out of the box, but it also has some useful settings (Menu > Settings) which you might want to explore.

The client normally waits one minute for a server to connect, for instance. If you know that a server normally connects within a few seconds, or not at all, that’s probably a bad idea. The Connection Timeout setting enables dropping the wait to just 10 seconds, or you could go the other way and increase it to two minutes, or tell the client to retry forever (you can still cancel the connection if you get bored).

Enable ‘Reconnect on Reboot’, for instance, and if a VPN connection was active when your device was last active, the client will try to connect. That’s much smarter than competing apps, which often just connect you to a specific server, every time you boot. Instead, it allows you to carry on where you left off, either disconnected, or connected to the last server you were using. Easy.

The ‘Seamless Tunnel’ option tries to reduce packet leaks when the VPN is paused or reconnecting, perhaps when transitioning from Wi-Fi to a cellular network.

By default, OpenVPN Connect sets its VPN Protocol setting to adaptive, meaning it tries UDP first, then TCP if that fails. If that doesn’t work for you, it’s also possible to force use of UDP or TCP for all connections.

This is just scratching the surface, and the Settings box also has tweaks for IPv6 handling, compression, the minimum TLS version and more. That’s handy if you know what you’re doing, but if you don’t, beware – you could be compromising your security. If you’re unsure about the impact of a setting, leave it alone: the default settings are well chosen, and generally work just fine.

  • Check out our best VPN service countdown

Sign up to the TechRadar Pro newsletter to get all the top news, opinion, features and guidance your business needs to succeed!

Mike is a lead security reviewer at Future, where he stress-tests VPNs, antivirus and more to find out which services are sure to keep you safe, and which are best avoided. Mike began his career as a lead software developer in the engineering world, where his creations were used by big-name companies from Rolls Royce to British Nuclear Fuels and British Aerospace. The early PC viruses caught Mike’s attention, and he developed an interest in analyzing malware, and learning the low-level technical details of how Windows and network security work under the hood.

Most Popular

Когда у нас появились сотрудники, работающие удаленно, пришлось думать над тем, как обеспечить им защищенный доступ к нашим хостинговым серверам, виртуальным выделенным серверам разработчиков Virtual Dedicated Server (VDS), сайтам обеспечения и сопровождения разработки и к другим ресурсам.

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

Выход нашелся довольно быстро — это использование технологии виртуальных частных сетей Virtual Private Network (VPN) и ее свободной реализации OpenVPN. Эта реализация доступна практически для всех распространенных платформ, в том числе для планшетов и смартфонов. История развития OpenVPN насчитывает уже 12 лет (компания OpenVPN Technologies, Inc. была создана Francis Dinha и James Yona в 2002 году), так что это надежное и проверенное временем решение.

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

Теме OpenVPN посвящены многочисленные статьи и сообщения на форумах. Тем не менее, нужную информацию мне пришлось собирать по частям из разных мест. Попутно приходилось разбираться с многочисленными терминами и технологиями. В качестве серверов OpenVPN были использованы VDS на базе FreeBSD и Debian Linux, в качестве клиентов — рабочие станции FreeBSD, Debian Linux, Ubuntu и Microsoft Windows.

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

С благодарностью приму замечания и предложения по содержимому статьи.

Оглавление

  • Немного теории
  • Компоненты сети OpenVPN
  • Готовим оборудование для установки OpenVPN
  • Создание удостоверяющего центра CA
  • Установка утилиты Easy-RSA
  • Создание сервера OpenVPN
  • Установка и запуск ПО клиента OpenVPN
  • Установка прокси-сервера Squid
  • Особенности установки на FreeBSD
  • Особенности установки клиента OpenVPN в Microsoft Windows
  • Полезные ссылки

Немного теории

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

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

Почему сеть VPN называется виртуальной и частной?

Виртуальная она потому, что узлы сети объединяются не физическими линиями, а виртуальными соединениями, которые создаются программным обеспечением (ПО) VPN.

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

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

Обмен данными по сети

ПО OpenVPN передает данные по сети с помощью протоколов UDP или TCP с применением драйвера TUN/TAP. Протокол UDP и драйвер TUN позволяет подключаться к серверу OpenVPN клиентам, расположенным за NAT.

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

Безопасность и шифрование

Безопасность и шифрование в OpenVPN обеспечивается библиотекой OpenSSL и протоколом транспортного уровня Transport Layer Security (TLS). Вместо OpenSSL в новых версиях OpenVPN можно использовать библиотеку PolarSSL. Протокол TLS представляет собой усовершенствование протокола защищенной передачи данных уровня защищенных сокетов Secure Socket Layers (SSL).

В OpenSSL может использоваться симметричная и ассиметричная криптография.

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

Во втором случае у каждого участника обмена данными есть два ключа — публичный (открытый) и приватный (секретный).

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

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

Для безопасной передачи данных необходимо идентифицировать стороны, принимающие участие в обмене данными. В противном случае можно стать жертвой так называемой «атаки посредника» (Man in the Middle, MITM). В ходе такой атаки злоумышленник подключается к каналу передачи данных и прослушивает его. Он также может вмешиваться, удалять или изменять данные.

Чтобы обеспечить аутентификацию (проверку подлинности пользователя) протокол TLS использует инфраструктуру публичных ключей (Public Key Infrastructure, PKI) и асимметричную криптографию.

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

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

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

Сертификаты и удостоверяющий центр CA

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

Сертификат должна заверить организация, которой доверяют. Эта организация играет роль удостоверяющего центра (Certification authority, CA).

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

Существует немало коммерческих организаций, выпускающих сертификаты, пригодные, например, для создания HTTPS-сайтов, для цифровой подписи сообщений электронной почты или документов, для систем мгновенного обмена сообщениями, такими как Jabber. Эти сертификаты выдаются на ограниченный срок и стоят денег.

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

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

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

Сертификат X.509 — это публичный ключ, содержащий такие данные, как субъект, владеющий сертификатом, имя узла, период действия, алгоритм и значение подписи сертификата, и т.д. Сертификат должен быть подписан приватным ключом удостоверяющего центра (Certification authority, CA).

Когда наш узел рабочей станции подключается к удаленному узлу (серверу) с использованием протокола TLS, сервер отправляет ему сертификат X.509. На нашем узле есть публичный ключ удостоверяющего центра CA, который подписал этот сертификат. Этот ключ используется для проверки подписи.

Таким образом, имеется способ проверки удаленного узла (сервера), к которому наш узел собирается подключиться, чтобы исключить «атаки посредника» MITM.

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

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

Для упрощения этой процедуры в OpenVPN предусмотрен список отзыва сертификатов (Сertificate Revocation List, CRL) и простые средства для управления этим списком.

Список CRL создается в удостоверяющем центре CA и потом копируется на сервер OpenVPN. После внесения изменений в список CRL его необходимо повторно скопировать на сервер OpenVPN.

Файл Диффи-Хелмана

Файл Диффи-Хелмана (Diffie-Hellman) необходим для реализации одноименного протокола, позволяющего использовать небезопасный канал для получения общего секретного ключа. Этот ключ будет в дальнейшем использоваться для защищенного обмена данными с помощью алгоритмов симметричного шифрования.

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

Файл Диффи-Хелмана создается на сервере OpenVPN.

Статический ключ HMAC

Статический ключ (хэш-код) аутентификации сообщений (Hash-based Message Authentication Code, HMAC) обеспечивает проверку подлинности информации, передаваемой между сторонами. Этот ключ создается на сервере OpenVPN с целью дополнительной защиты от DoS-атак и флуда.

Компоненты сети OpenVPN

Прежде чем мы перейдем от теории к практике, перечислим основные компоненты сети OpenVPN и объекты, с которыми нам придется иметь дело.

Удостоверяющий центр CA

Выдает сертификаты по запросу узлов сети VPN, подписанные сертификатом удостоверяющего центра. Предоставляет узлам сети VPN свой собственный сертификат для проверки удостоверяющей стороны. Управляет списком отзыва сертификатов CRL.

Сервер OpenVPN

ПО сервера OpenVPN создает туннель внутри незащищенной сети, например, Интернета. Этот туннель обеспечивает безопасный зашифрованный трафик между узлами — участниками обмена данными в сети OpenVPN.

Клиент OpenVPN

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

Сертификаты (публичные ключи) X.509 

Сертификаты X.509 представляют собой публичные ключи, заверенные удостоверяющим центром CA. Они используются для зашифровывания данных. Факт заверения сертификата удостоверяющим центром CA позволяет идентифицировать сторону, передающую зашифрованные данные.

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

Приватные ключи

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

Приватные ключи создаются на узлах сети OpenVPN одновременно с файлом запроса на получение сертификата.

Список отзыва сертификатов CRL

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

После создания и каждого изменения список CRL переносится на серверы OpenVPN.

Файл Диффи-Хелмана

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

Статический ключ HMAC

Служит для проверки подлинности передаваемой информации. Обеспечивает защиту от DoS-атак и флуда. Создается на сервере OpenVPN.

Готовим оборудование для установки OpenVPN

Если вы впервые настраиваете сеть VPN, лучше всего экспериментировать на виртуальных машинах VDS. Это могут быть VDS, созданные локально на вашем компьютере или на сервере в вашей сети, либо арендованные у провайдера. Перед арендой VDS поинтересуйтесь, поддерживается ли драйвер TUN/TAP. Некоторые провайдеры требуют дополнительной оплаты для подключения TUN/TAP.

На рис. 1. мы показали схему стенда, на котором будем устанавливать компоненты и узлы OpenVPN (имена и адреса IP хостов могут быть другими).

Рис. 1. Стенд для изучения OpenVPN.

Здесь изображены три узла (хоста), для каждого из которых потребуется отдельный VDS:

  • сервер OpenVPN (vpnsrv, 192.168.0.54);
  • клиент OpenVPN (vpnclient, 192.168.0.55);
  • удостоверяющий центр CA (ca, 192.168.0.53)

Хосты клиента и сервера VPN соединены обычным, небезопасным каналом. В случае макета это может быть локальная сеть, в реальной жизни — канал сети Интернет. ПО OpenVPN создает в этой сети канал, обозначенный на рис. 1 красным цветом, внутри которого устанавливается безопасный шифрованный канал (обозначен зеленым цветом).

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

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

Мы проводили установку серверов OpenVPN в среде ОС Debian Linux и FreeBSD, клиентов OpenVPN в ОС Debian Linux, FreeBSD и Microsoft Windows.

Основная часть статьи посвящена установке компонентов OpenVPN для Debian Linux. Далее мы рассмотрим особенности установки для FreeBSD и Microsoft Windows.

По возможности на узлах сети OpenVPN используйте новые версии ОС. Перед тем как приступить к работе с OpenVPN, обновите пакеты Linux:

# apt-get update
# apt-get upgrade

Установите на всех узлах пакет пакет zip, если он не был установлен ранее:

# aptitude install zip

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

На всех узлах настройте обновление и синхронизацию времени.

# apt-get install ntpdate
# apt-get install -y ntp
# /etc/init.d/ntp stop
# ntpdate pool.ntp.org
# /etc/init.d/ntp start

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

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

Создание удостоверяющего центра CA

Как мы уже говорили, задача удостоверяющего центра CA — выдача подписанных сертификатов для сервера и клиентов OpenVPN.

Чтобы получить сертификат, сервер или клиент на своем хосте генерирует файл запроса на сертификат. Этот файл запроса передается на хост CA, который создает сертификат и подписывает его. Далее подписанный сертификат передается на запросивший хост.

Одновременно с запросом сертификата создается приватный ключ. Приватные ключи создаются для всех узлов сети OpenVPN: для удостоверяющего центра CA, для сервера и всех клиентов OpenVPN.

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

На рис. 2 показан процесс получения подписанного сертификата для сервера OpenVPN.

Рис. 2. Получение сертификата для сервера OpenVPN

Сервер OpenVPN создает свой приватный ключ и файл запроса на получение сертификата. Файл запроса передается в удостоверяющий центр, например, на USB флеш-диске.

Удостоверяющий центр на основе запроса создает подписанный сертификат, который затем требуется перенести на сервер OpenVPN, также на USB флэш-диске.

Если к безопасности не предъявляется особых требований или вы только изучаете OpenVPN, можно подключить машину удостоверяющего центра к сети и передавать запросы и сертификаты, например, с помощью утилит SFTP или SCP. Можно даже совместить функции CA и, например, сервера OpenVPN в одном хосте.

Аналогичным образом необходимо получить сертификаты для всех клиентских узлов (рис. 3).

Рис. 3. Получение сертификата для клиента OpenVPN

Установка утилиты Easy-RSA

Все операции по созданию ключей и сертификатов можно выполнить с помощью утилиты openssl. Однако проще воспользоваться специально созданной для этого программой Easy-RSA, которая использует openssl для выполнения действий с ключами и сертификатами.

Ранее утилита Easy-RSA поставлялась вместе с OpenVPN, но теперь это отдельный проект.

Все операции с удостоверяющим центром и сертификатами можно (и нужно) проводить от имени непривилегированного пользователя.

Создайте пользователя с именем, например, ca и перейдите в его домашний каталог:

# adduser ca
# su ca
$ cd

Загрузите дистрибутив программы утилитой wget.

$ wget https://github.com/OpenVPN/easy-rsa/archive/master.zip

После загрузки распакуйте архив master.zip:

$ unzip master.zip

В табл. 1 перечислены файлы и каталоги, входящие в дистрибутив Easy-RSA.

Таблица 1. Состав дистрибутива Easy-RSA.

Мы рекомендуем ознакомиться с файлом README.quickstart.md, а также с файлами из папки Doc. Для создания ключей и сертификатов нужно перейти в каталог easyrsa3, где находится исполнимый файл программы Easy-RSA.

Создание инфраструктуры публичных ключей PKI

На первом шаге создайте инфраструктуру публичных ключей (Public Key Infrastructure, PKI):

$ cd /home/ca/easy-rsa-master/easyrsa3
$ ./easyrsa init-pki

Вы увидите сообщение:

init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /home/ca/easy-rsa-master/easyrsa3/pki

В результате выполнения команды init-pki был создан каталог /home/ca/easy-rsa-master/easyrsa3/pki, где и находится инфраструктура публичных ключей PKI.

На втором шаге с помощью команды build-ca создайте удостоверяющий центр CA:

$ ./easyrsa build-ca

В ответ на эту команду вам будет предложено ввести пароль и так называемое имя Common Name:

Generating a 2048 bit RSA private key
.....+++
................................................................+++
writing new private key to '/home/ca/easy-rsa-master/easyrsa3/pki/private/ca.key'
Enter PEM pass phrase:********
Verifying - Enter PEM pass phrase:********
----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.
-----
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:ca.mydomain.ru>
CA creation complete and you may now import and sign cert requests.
Your new CA certificate file for publishing is at:
/home/ca/easy-rsa-master/easyrsa3/pki/ca.crt

Пароль будет защищать приватный ключ удостоверяющего центра, созданный в формате PEM (Privacy Enhancement for Internet Electronic Mail). Этот пароль потребуется каждый раз, когда вы будете подписывать в удостоверяющем центре сертификаты для серверов и клиентов OpenVPN.

Чтобы избавиться от необходимости ввода пароля, можно при запуске команды build-ca задать опцию nopass:

$ ./easyrsa build-ca nopass

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

В качестве Common Name задайте, например, доменное имя, выделенное для удостоверяющего центра CA, имя пользователя или хоста сервера CA.

Для удостоверяющего центра команда build-ca создаст два файла:

/home/ca/easy-rsa-master/easyrsa3/pki/private/ca.key
/home/ca/easy-rsa-master/easyrsa3/pki/ca.crt

Файл ca.key представляет собой приватный ключ центра CA, он секретный, и его нельзя переносить на другие узлы вашей сети.

Файл сертификата удостоверяющего центра ca.crt, напротив, открытый, и он будет нужен на узлах серверов и клиентов OpenVPN. Запишите файл ca.crt на USB флэш-диск, чтобы перенести на другие узлы.

Смонтировать USB флэш-диск, можно, например, так:

# fdisk -l
# mkdir /mnt/flash
# mount -t vfat /dev/sdb1 /mnt/flash

Здесь мы предполагаем, что USB флэш-диск стал устройством /dev/sdb1, а его файловая система — FAT32.

Копируем файл сертификата CA:

# cp /home/ca/easy-rsa-master/easyrsa3/pki/ca.crt /mnt/flash/ca.crt

Для работы с USB флэш-диском с файловой системой NTFS сначала установите пакет ntfs-3g:

# aptitude install ntfs-3g

Смонтируйте диск следующим образом:

# mount -t ntfs-3g /dev/sdb1 /mnt/flash

После окончания копирования размонтируйте USB диск:

# umount /mnt/flash

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

Если сотрудник уволился, необходимо заблокировать его доступ в сеть VPN компании. Специально для этой цели в OpenVPN предусмотрен список отзыва сертификатов CRL. Создайте его такой командой:

$ cd /home/ca/easy-rsa-master/easyrsa3
$ ./easyrsa gen-crl

У вас будет запрошен пароль доступа к приватному ключу ca.key удостоверяющего центра. Список отзыва сертификатов будет создан в файле /home/ca/easy-rsa-master/easyrsa3/pki/crl.pem.

Скопируйте этот файл на USB флэш-диск:

# cp /home/ca/easy-rsa-master/easyrsa3/pki/crl.pem /mnt/flash

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

$ ./easyrsa revoke developer5

Здесь мы отозвали сертификат для клиента developer5. Далее нужно скопировать новый файл CRL на сервер OpenVPN и перезапустить демон OpenVPN.

Созданные файлы и каталоги PKI

В табл. 2 мы привели краткое описание некоторых файлов и каталогов PKI, созданных в результате наших действий.

Таблица 2. Структура каталога PKI.

Справка по утилите Easy-RSA

Запустите утилиту Easy-RSA без параметров:

$ ./easyrsa

На экране появится список всех команд утилиты, а также полный путь к программе и к PKI.

Для того чтобы получить справку по нужной команде, добавьте опцию help. Например, так можно получить справку по команде build-ca:

$ ./easyrsa help build-ca

Создание сервера OpenVPN

Процесс создания сервера OpenVPN включает в себя установку пакета openvpn, подготовку файлов конфигурации, ключей и сертификатов.

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

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

# apt-get install openvpn

Подготовка файлов конфигурации

Файлы конфигурации, сертификаты и ключи нужно поместить в каталог /etc/openvpn, который будет создан автоматически в процессе установки пакета openvpn.

Прежде всего, подготовим файлы конфигурации openssl.cnf и server.conf. Первый из этих файлов определяет конфигурацию OpenSSL, второй — конфигурацию сервера OpenVPN.

В комплекте с утилитой Easy-RSA поставляется пример файла конфигурации OpenSSL (предполагается, что мы установили утилиту в домашний каталог пользователя ca):

/home/ca/easy-rsa-master/easyrsa3/openssl-1.0.cnf

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

В файле openssl.cnf указан абсолютный путь к каталогу с ключами и сертификатами, который вы только что создали.

Содержимое файла openssl.cnf

[ ca ]
default_ca = CA_default
[ CA_default ]
dir = /etc/openvpn
crl_dir = $dir
database = $dir/index.txt
new_certs_dir = $dir
certificate = $dir/ca.crt
serial = $dir
crl = $dir/crl.pem
private_key = $dir/server.key
RANDFILE = $dir/.rand
default_days = 3650
default_crl_days = 365
default_md = md5
unique_subject = yes
policy = policy_any
x509_extensions = user_extensions
[ policy_any ]
organizationName = match
organizationalUnitName = optional
commonName = supplied
[ req ]
default_bits = 2048
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
x509_extensions = CA_extensions
[ req_distinguished_name ]
organizationName = Organization Name (must match CA)
organizationName_default = Company
organizationalUnitName = Location Name
commonName = Common User or Org Name
commonName_max = 64
[ user_extensions ]
basicConstraints = CA:FALSE
[ CA_extensions ]
basicConstraints = CA:TRUE
default_days = 3650
[ server ]
basicConstraints = CA:FALSE
nsCertType = server

Пример файла openvpn.conf конфигурации сервера OpenVPN есть на сайте проекта по адресу openvpn.net/index.php/open-source/documentation/howto.html#server. Мы предлагаем начать с сокращенной версии этого файла из нашей статьи.

Содержимое файла server.conf

port 1194
proto udp
dev tun
user openvpn
group openvpn
cd /etc/openvpn
persist-key
persist-tun
tls-server
tls-timeout 120
dh /etc/openvpn/dh.pem
ca /etc/openvpn/ca.crt
cert /etc/openvpn/vpn-server.crt
key /etc/openvpn/server.key
crl-verify /etc/openvpn/crl.pem
tls-auth /etc/openvpn/ta.key 0
server 10.15.0.0 255.255.255.0
client-config-dir /etc/openvpn/ccd
client-to-client
topology subnet
max-clients 5
push "dhcp-option DNS 10.15.0.1"
route 10.15.0.0 255.255.255.0
comp-lzo
keepalive 10 120
status /var/log/openvpn/openvpn-status.log 1
status-version 3
log-append /var/log/openvpn/openvpn-server.log
verb 3
mute 20

Чтобы запуск сервера OpenVPN произошел успешно, необходимо создать каталоги, сертификаты и ключи, на которые есть ссылки в файлах openssl.cnf и server.conf, а также пользователя openvpn.

Создайте каталог для журнала сервера OpenVPN:

# mkdir /var/log/openvpn/

Создайте каталог для конфигураций клиентов (пока не используем):

# mkdir /etc/openvpn/ccd

Подготовка сертификата и ключа для сервера OpenVPN

Помимо openssl.cnf и openvpn.conf в каталоге /etc/openvpn/ нам потребуются файлы, перечисленные в табл. 3.

Таблица 3. Файлы для сервера OpenVPN.

Прежде всего мы создадим приватный ключ и файл запроса на сертификат для сервера OpenVPN, а также получим по созданному запросу в удостоверяющем центре CA подписанный сертификат. В результате у нас появятся файлы server.crt и server.key. Далее займемся остальными файлами, перечисленными в табл. 3.

Чтобы создать для сервера OpenVPN запрос на сертификат и приватный ключ, нам потребуется установить на сервер OpenVPN программу Easy-RSA, аналогично тому, как мы это делали для удостоверяющего центра CA.

Установку Easy-RSA, генерацию приватного ключа сервера OpenVPN и запроса на сертификат мы будем делать от имени пользователя vpnoperator, не имеющего привилегий администратора. Добавьте этого пользователя перед началом работ:

# adduser vpnoperator

Прежде всего, устанавливаем на сервере OpenVPN утилиту Easy-RSA и запускаем инициализацию инфраструктуры публичных ключей PKI:

$ cd /home/vpnoperator
$ wget https://github.com/OpenVPN/easy-rsa/archive/master.zip
$ unzip master.zip
$ cd /home/vpnoperator/easy-rsa-master/easyrsa3
$ ./easyrsa init-pki

После успешной инициализации PKI в консоли появится сообщение:

init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /home/vpnoperator/easy-rsa-master/easyrsa3/pki

Так как наш сервер OpenVPN не будет играть роль удостоверяющего центра, то после инициализации PKI мы не будем создавать CA командой build-ca.

Инфраструктура PKI будет создана в каталоге /home/vpnoperator/easy-rsa-master/easyrsa3/pki.

На следующем этапе получим запрос на сертификат и приватный ключ сервера OpenVPN:

$ ./easyrsa gen-req server

Этой командой будет создан файл запроса server.req и приватного ключа server.key. В процессе генерации у вас будет запрошен пароль, а также имя Common Name для сервера OpenVPN:

Generating a 2048 bit RSA private key
...............................................................................................................+++
....................................+++
writing new private key to '/home/vpnoperator/easy-rsa-master/easyrsa3/pki/private/server.key'
Enter PEM pass phrase:******
Verifying - Enter PEM pass phrase:******
-----
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.
-----
Common Name (eg: your user, host, or server name) [server]: vpn-server
Keypair and certificate request completed. Your files are:
req: /home/vpnoperator/easy-rsa-master/easyrsa3/pki/reqs/server.req
key: /home/vpnoperator/easy-rsa-master/easyrsa3/pki/private/server.key

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

Как мы уже говорили, безопаснее всего передавать запрос на сертификат через USB флеш-диск, чтобы не подключать сервер CA к сети:

# fdisk -l
# mkdir /mnt/flash
# mount -t vfat /dev/sdb1 /mnt/flash
# cp /home/vpnoperator/easy-rsa-master/easyrsa3/pki/reqs/server.req /mnt/flash/server.req
# umount /mnt/flash

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

Но что делать, если у вас нет доступа к консоли сервера OpenVPN или этот доступ затруднен? Такое может случиться, например, если вы создали сервер OpenVPN на базе VDS, арендованного у провайдера, не предоставляющего консольный доступ.

В этой ситуации можно создать приватный ключ без пароля с помощью опции nopass:

$ ./easyrsa gen-req server nopass

Итак, вы создали приватный ключ сервера OpenVPN и запрос на сертификат.

Смонтируйте USB флэш-диск на хосте удостоверяющего центра CA, а затем импортируйте от имени пользователя ca запрос в PKI:

# mount -t vfat /dev/sdb1 /mnt/flash
# su ca
$ cd /home/ca/easy-rsa-master/easyrsa3
$ ./easyrsa import-req /mnt/flash/server.req vpn-server

Здесь мы указали сокращенное имя запроса на сертификат как «vpn-server». Это сокращенное имя будет использовано в дальнейших операциях с сертификатом.

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

The request has been successfully imported with a short name of: vpn-server
You may now use this name to perform signing operations on this request.

Если ошибок нет, подписываем запрос на получение сертификата:

./easyrsa sign-req server vpn-server

В процессе создания подписанного сертификата будет запрошено подтверждение (ответьте на него «yes»), а также пароль приватного ключа удостоверяющего центра CA:

You are about to sign the following certificate.
Please check over the details shown below for accuracy. Note that this request has not been cryptographically verified. Please be sure it came from a trusted source or that you have verified the request checksum with the sender.
Request subject, to be signed as a server certificate for 3650 days:

subject=
    commonName                = server
Type the word 'yes' to continue, or any other input to abort.
Confirm request details: yes
Using configuration from /home/ca/easy-rsa-master/easyrsa3/openssl-1.0.cnf
Enter pass phrase for /home/ca/easy-rsa-master/easyrsa3/pki/private/ca.key:******
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:'server'
Certificate is to be certified until Jun 26 15:48:25 2024 GMT (3650 days)
Write out database with 1 new entries
Data Base Updated
Certificate created at: /home/ca/easy-rsa-master/easyrsa3/pki/issued/vpn-server.crt

Теперь сертификат получен, и он находится на сервере удостоверяющего центра в файле home/ca/easy-rsa-master/easyrsa3/pki/issued/vpn-server.crt. Этот файл нам нужно передать на сервер OpenVPN.

Скопируйте через USB флеш-диск файл сертификата /ca/easy-rsa-master/easyrsa3/pki/issued/vpn-server.crt с сервера удостоверяющего центра в файл на сервере OpenVPN /home/vpnoperator/vpn-server.crt:

# cp /home/ca/easy-rsa-master/easyrsa3/pki/issued/vpn-server.crt /mnt/flash/

Затем смонтируйте USB диск на VDS OpenVPN и скопируйте файлы ca.crt сертификата CA, список отзыва сертификатов crl.pem и сертификат vpn-server.crt сервера OpenVPN в каталог /etc/openvpn:

# mount -t vfat /dev/sdb1  /mnt/flash
# cp /mnt/flash/ca.crt /etc/openvpn
# cp /mnt/flash/crl.pem /etc/openvpn
# cp /mnt/flash/vpn-server.crt /etc/openvpn
# umount /mnt/flash

Файл приватного ключа скопируйте из каталога usr/home/vpnoperator/easy-rsa-master/easyrsa3/pki/private/ в каталог /etc/openvpn/:

# cp /home/vpnoperator/easy-rsa-master/easyrsa3/pki/private/server.key /etc/openvpn

Генерация файла Диффи-Хелмана

Создайте ключи Диффи-Хелмана следующей командой:

$ cd /home/vpnoperator/easy-rsa-master/easyrsa3
$ ./easyrsa gen-dh

Команда gen-dh работает довольно долго. По завершении вы увидите сообщение:

DH parameters of size 2048 created at /home/vpnoperator/easy-rsa-master/easyrsa3/pki/dh.pem

Скопируйте файл/home/vpnoperator/easy-rsa-master/easyrsa3/pki/dh.pem в каталог /etc/openvpn/ :

# cp /home/vpnoperator/easy-rsa-master/easyrsa3/pki/dh.pem /etc/openvpn

Создание статического ключа HMAC

Для создания ключа HMAC используйте команду openvpn с опциями —genkey и —secret:

# cd /etc/openvpn
# openvpn --genkey --secret ta.key

Запишите файл ta.key на USB диск:

# cp /etc/openvpn/ta.key /mnt/flash

Ревизия файлов перед запуском OpenVPN

Итак, мы получили из удостоверяющего центра подписанный сертификат сервера OpenVPN, сертификат самого удостоверяющего центра CA, список отзыва сертификатов, создали файл Диффи-Хелмана и ключ HMAC.

Перед тем как запустить демон OpenVPN, нам нужны в каталоге /etc/openvpn/ для Linux или /usr/local/etc/openvpn/ для FreeBSD следующие файлы:

  • openssl.cnf — файл конфигурации OpenSSL;
  • server.conf — файл конфигурации сервера OpenVPN;
  • ca.crt — cертификат удостоверяющего центра;
  • vpn-server.crt — cертификат сервера OpenVPN;
  • server.key — приватный ключ сервера OpenVPN, секретный;
  • crl.pem — cписок отзыва сертификатов;
  • dh.pem — файл Диффи-Хелмана для обеспечения защиты трафика от расшифровки;
  • ta.key — ключ HMAC для дополнительной защиты от DoS-атак и флуда

Добавление пользователя openvpn

Добавьте непривилегированного пользователя и группу openvpn, от имени которого будет работать демон сервера OpenVPN:

# adduser --system --no-create-home --home /nonexistent --disabled-login --group openvpn

Запуск демона OpenVPN

Запустите демон OpenVPN следующей командой:

# /etc/init.d/openvpn start

Проверка результата запуска демона OpenVPN

Если сервер OpenVPN стартовал без ошибок, убедитесь с помощью команды ifconfig в том, что появился интерфейс TUN:

# ifconfig 
...
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.15.0.1 P-t-P:10.15.0.1 Mask:255.255.255.0
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

Как мы уже говорили, использование TUN/TAP на арендованных VDS может потребовать дополнительной оплаты.

Если все хорошо, то в интерфейсе tun появился адрес IP 10.15.0.1. Это адрес сервера OpenVPN в нашем защищенном туннеле, заданный в файле конфигурации server.conf.

После проверки наличия интерфейса TUN убедитесь, что OpenVPN занял порт 1194:

# netstat -ltupn | grep 1194

Если демон запустился нормально и порт 1194 занят сервером OpenVPN, можно переходить к установке клиента OpenVPN, описанной в следующем разделе статьи. При возникновении ошибок проанализируйте журнал /var/log/openvpn/openvpn-server.log.

При установке OpenVPN на Linux с новыми ядрами, начиная с 2.6, интерфейс TUN может не появится. При этом в логах появляется ошибка:

Loading kernel module for a network device with CAP_SYS_MODULE (deprecated). Use CAP_NET_ADMIN and alias netdev-tun instead

Чтобы избавиться от проблемы, добавьте в файл /etc/modprobe.d/dist.conf строку:

alias netdev-tun tun

Если такого файла нет, его следует создать. После внесения изменений в файл /etc/modprobe.d/dist.conf перезагрузите ОС.

Степень детализации журнала зависит от параметра verb файла конфигурации server.conf. Параметр verb может принимать значения от 0 до 11, при этом 11 соответствует максимальной детализации, а значение по умолчанию равно 1. Если значение параметра verb равно 0, то в журнал будут записываться сообщения только о наиболее серьезных, фатальных ошибках.

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

Установка и запуск ПО клиента OpenVPN

Процедура установки клиента OpenVPN аналогична процедуре установки сервера OpenVPN. Основные отличия в файлах конфигурации. Перед установкой не забудьте обновить пакеты и порты.

# apt-get install openvpn

Подготовка файлов конфигурации

Файлы конфигурации, ключи и сертификаты должны находится в каталоге /etc/openvpn.

Далее подготовьте файлы конфигурации openssl.cnf и server.conf.

Файл openssl.cnf, определяющий конфигурацию OpenSSL, используйте точно такой же, как и для сервера OpenVPN. Что касается файла server.conf для клиента OpenVPN, то для начала возьмите его из нашей статьи.

Содержимое файла server.conf для клиента OpenVPN

dev tun
proto udp
remote 192.168.0.54 1194
client
resolv-retry infinite
ca "/etc/openvpn/ca.crt"
cert "/etc/openvpn/developer1.crt"
key "/etc/openvpn/client.key"
tls-auth "/etc/openvpn/ta.key" 1
remote-cert-tls server
persist-key
persist-tun
comp-lzo
verb 3
status /var/log/openvpn/openvpn-status.log 1
status-version 3
log-append /var/log/openvpn/openvpn-client.log

Обратите внимание на параметр remote, в котором указан адрес IP сервера OpenVPN:

remote 192.168.0.54 1194

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

Создайте каталог для журнала клиента OpenVPN:

# mkdir /var/log/openvpn/

Создание инфраструктуры публичных ключей PKI

Подключитесь к хосту клиента OpenVPN (в нашем случае это хост разработчика ПО) с правами обычного пользователя developer1 и скачайте утилиту Easy-RSA с сайта github.com/OpenVPN/easy-rsa.

$ cd /home/developer1
$ wget https://github.com/OpenVPN/easy-rsa/archive/master.zip
$ unzip master.zip

Запустите инициализацию инфраструктуры публичных ключей PKI:

$ cd /home/developer1/easy-rsa-master/easyrsa3
$ ./easyrsa init-pki

В результате будет подготовлен каталог PKI:

/home/developer1/easy-rsa-master/easyrsa3/pki

Подготовка сертификата и ключа для клиента OpenVPN

Создайте запрос на сертификат и приватный ключ рабочей станции разработчика developer1:

$ ./easyrsa gen-req client nopass

Вам потребуется ввести имя Common Name для создания запроса на сертификат и приватного ключа рабочей станции:

Generating a 2048 bit RSA private key
..............................................................................................+sftp++
................................+++
writing new private key to '/home/developer1/easy-rsa-master/easyrsa3/pki/private/client.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.
-----
Common Name (eg: your user, host, or server name) [client]:developer1
Keypair and certificate request completed. Your files are:
req: /home/developer1/easy-rsa-master/easyrsa3/pki/reqs/client.req
key: /home/developer1/easy-rsa-master/easyrsa3/pki/private/client.key

Если к защите данных предъявляются повышенные требования, создавайте приватный ключ с паролем, без использования опции nopass:

$ ./easyrsa gen-req client

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

Теперь вам потребуется перенести созданный запрос сертификата /home/developer1/easy-rsa-master/easyrsa3/pki/reqs/client.req на хост удостоверяющего центра CA и записать в файл /home/ca/client.req.

Сделайте это с помощью USB флэш-диска, если хост CA не подключен к сети.

Запишите запрос на USB диск:

# mkdir /mnt/flash
# mount -t vfat /dev/sdb1  /mnt/flash
# cp /home/developer1/easy-rsa-master/easyrsa3/pki/reqs/client.req /mnt/flash
# umount /mnt/flash

Импортируйте запрос в PKI, используя в качестве короткого имени developer1:

$ cd /home/ca/easy-rsa-master/easyrsa3
$ ./easyrsa import-req /mnt/flash/client.req developer1

Далее подпишите запрос на получение сертификата:

$ ./easyrsa sign-req client developer1

После ввода подтверждения и пароля приватного ключа CA будет создан сертификат:

/home/ca/easy-rsa-master/easyrsa3/pki/issued/developer1.crt

Запишите файл developer1.crt на USB флэш-диск, чтобы перенести его на хост клиента OpenVPN.

# cp /home/ca/easy-rsa-master/easyrsa3/pki/issued/developer1.crt /mnt/flash
# umount /mnt/flash

Скопируйте файл сертификата в каталог /etc/openvpn:

# mount -t vfat /dev/sdb1  /mnt/flash
# cp /mnt/flash/developer1.crt /etc/openvpn

Итак, теперь у нас есть файл приватного ключа рабочей станции client.key и файл сертификата developer1.crt, подписанного удостоверяющим центром CA.

Скопируйте файл ключа в каталог /etc/openvpn:

# cp /home/developer1/easy-rsa-master/easyrsa3/pki/private/client.key /etc/openvpn

Скопируйте в каталог /etc/openvpn клиента VPN следующие файлы, подготовленные на USB диске:

# cp /mnt/flash/ca.crt /etc/openvpn
# cp /mnt/flash/ta.key /etc/openvpn

Напомним, что файлы ca.crt и crl.pem были созданы на хосте удостоверяющего центра CA, а файл ta.key — на хосте сервера OpenVPN.

Запуск клиента OpenVPN

Запустите демон следующей командой:

# /etc/init.d/openvpn start

Если возникла проблема с запуском клиента, проверьте содержимое журнала /var/log/openvpn/openvpn-client.log

В том случае, когда демон клиента запустился без ошибок, проверьте наличие интерфейса TUN, аналогично тому, как мы это делали при запуске демона сервера OpenVPN.

# ifconfig
...
 tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
 inet addr:10.15.0.2 P-t-P:10.15.0.2 Mask:255.255.255.0
 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:100
 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

Проверьте также, что сервер OpenVPN откликается на команду ping по адресу 10.15.0.1:

# ping 10.15.0.1

Установка прокси-сервера Squid

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

В качестве прокси-сервера мы выбрали ПО с открытым исходным кодом Squid, который часто применяется, в частности, для кэширования Web-страниц в высоконагруженных проектах. Нам, однако, сейчас пригодится только его функция проксирования.

Установку Squid проще всего выполнить из пакета:

# apt-get install squid3

После завершения установки в каталоге /etc/squid3 будет создан файл конфигурации squid.conf внушительных размеров, который необходимо отредактировать. Впрочем, в нашем случае требуется внести лишь очень небольшие изменения.

Прежде всего, отыщите в файле squid.conf следующую строку:

http_access deny all

Перед этой строкой добавьте:

acl allowed_hosts src 10.15.0.0/24
http_access allow allowed_hosts
http_access deny manager

Первая из этих строк разрешает доступ к Squid из вашей сети OpenVPN.

Если требуется проксировать доступ к каким-либо нестандартным портам SSL, добавьте их к строке:

acl SSL_ports port 443

Например, здесь мы добавили нестандартный порт 7195:

acl SSL_ports port 443 7195

Убедитесь, что в файле squid.conf разрешен доступ из сети 10.0.0.0/8. По умолчанию там есть такая строка:

acl localnet src 10.0.0.0/8 # RFC1918 possible internal network

После завершения редактирования файла конфигурации перезапустите Squid:

# /etc/init.d/squid3 restart

Журналы Squid помогут при отладке, если что-то пойдет не так. Они находятся в каталоге /var/log/squid3. Это файлы access.log и cache.log.

После установки и запуска Squid пропишите в браузере прокси 10.15.0.1, порт 3128. Если все настроено правильно, браузер будет ходить в Интернет через ваш сервер OpenVPN. В этом можно убедиться, например, посетив сайт 2ip.ru, myip.ru или аналогичный, показывающий IP-адрес посетителя.

Особенности установки на FreeBSD

Перед началом работ обновите порты FreeBSD:

# portsnap fetch
# portsnap extract

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

# ntpdate 1.pool.ntp.org

Вы можете добавить эту команду в задание cron. Также для синхронизации можно установить демон ntpd.

Установка утилиты Easy-RSA

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

$ fetch --no-verify-peer https://github.com/OpenVPN/easy-rsa/archive/master.zip

Опция —no-verify-peer позволяет избавиться от ошибки, которая возникает при проверке сертификата digicert.com в FreeBSD версии 10.0. FreeBSD версии 9.2 проверяет данный сертификат успешно, там эта опция не нужна.

В остальном приемы работы с утилитой Easy-RSA в среде FreeBSD ничем не отличаются от приемов работы в среде Debian Linux.

Установка сервера и клиента OpenVPN

Запустите установку OpenVPN на хосте сервера и клиентов OpenVPN из портов следующем образом:

# сd /usr/ports/security/openvpn
# make install clean

Файлы конфигурации OpenVPN

Файлы конфигурации сервера OpenVPN при его установке в ОС FreeBSD необходимо размещать в каталоге /usr/local/etc/openvpn.

Создайте этот каталог:

# mkdir /usr/local/etc/openvpn

Файлы конфигурации openssl.cnf и server.conf содержат путь к каталогу /usr/local/etc/openvpn.

Файл openssl.cnf

[ ca ]
default_ca = CA_default
[ CA_default ]
dir = /usr/local/etc/openvpn
crl_dir = $dir2
database = $dir/index.txt
new_certs_dir = $dir
certificate = $dir/ca.crt
serial = $dir
crl = $dir/crl.pem
private_key = $dir/server.key
RANDFILE = $dir/.rand
default_days = 3650
default_crl_days = 365
default_md = md5
unique_subject = yes
policy = policy_any
x509_extensions = user_extensions
[ policy_any ]
organizationName = match
organizationalUnitName = optional
commonName = supplied
[ req ]
default_bits = 2048
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
x509_extensions = CA_extensions
[ req_distinguished_name ]
organizationName = Organization Name (must match CA)
organizationName_default = Company
organizationalUnitName = Location Name
commonName = Common User or Org Name
commonName_max = 64
[ user_extensions ]
basicConstraints = CA:FALSE
[ CA_extensions ]
basicConstraints = CA:TRUE
default_days = 3650
[ server ]
basicConstraints = CA:FALSE
nsCertType = server 

Содержимое файла server.conf для сервера OpenVPN

port 1194
proto udp
dev tun
user openvpn
group openvpn
cd /usr/local/etc/openvpn
persist-key
persist-tun
tls-server
tls-timeout 120
dh /usr/local/etc/openvpn/dh.pem
ca /usr/local/etc/openvpn/ca.crt
cert /usr/local/etc/openvpn/server.crt
key /usr/local/etc/openvpn/server.key
crl-verify /usr/local/etc/openvpn/crl.pem
tls-auth /usr/local/etc/openvpn/ta.key 0
server 10.15.0.0 255.255.255.0
client-config-dir /usr/local/etc/openvpn/ccd
client-to-client
topology subnet
max-clients 5
push "dhcp-option DNS 10.15.0.1"
route 10.15.0.0 255.255.255.0
comp-lzo
keepalive 10 120
status /var/log/openvpn/openvpn-status.log 1
status-version 3
log-append /var/log/openvpn/openvpn-server.log
verb 3
mute 20

Содержимое файла server.conf для клиента OpenVPN

dev tun
proto udp
remote 192.168.0.54 1194
client
resolv-retry infinite
ca "/usr/local/etc/openvpn/ca.crt"
cert "/usr/local/etc/openvpn/developer1.crt"
key "/usr/local/etc/openvpn/client.key"
tls-auth "/usr/local/etc/openvpn/ta.key" 1
#ns-cert-type server
remote-cert-tls server
#ifconfig 10.15.0.0 255.255.255.0
persist-key
persist-tun
comp-lzo
verb 3
status /var/log/openvpn/openvpn-status.log 1
status-version 3
log-append /var/log/openvpn/openvpn-client.log

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

# mkdir /usr/local/etc/openvpn/ccd

Работа с инфраструктурой PKI

Установите на сервере OpenVPN утилиту Easy-RSA и запустите инициализацию инфраструктуры публичных ключей PKI:

$ cd /home/vpnoperator
$ fetch https://github.com/OpenVPN/easy-rsa/archive/master.zip
$ unzip master.zip
$ cd /home/vpnoperator/easy-rsa-master/easyrsa3
$ ./easyrsa init-pki

В процессе передачи файлов запроса на сертификаты и подписанные сертификаты вы можете использовать USB флэш-диск. Ниже приведены команды для монтирования и размонтирования диска:

# ls  /dev/da*
# mount_msdosfs /dev/da1s1 /mnt
# umount /mnt

Здесь предполагается, что для USB флэш-диска выделено устройство /dev/da1s1.

Добавление пользователя openvpn

С помощью команды adduser добавьте пользователя openvpn. В качестве Shell для этого пользователя укажите nologin.

Запуск демона OpenVPN

Создайте каталог для записи журнала демона OpenVPN:

# mkdir /var/log/openvpn

Добавьте в файл /etc/rc.conf строки:

openvpn_enable="YES"
openvpn_configfile="/usr/local/etc/openvpn/server.conf"

Здесь указан путь к рабочему файлу конфигурации демона OpenVPN.

Запустите демон OpenVPN:

# /usr/local/etc/rc.d/openvpn start

При успешном запуске на сервере и клиенте OpenVPN должен появится интерфейс TUN. Убедитесь в этом с помощью команды ifconfig:

# ifconfig
 ...
 tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
 options=80000<LINKSTATE>
 inet6 fe80::20c:29ff:fe28:d4be%tun0 prefixlen 64 scopeid 0x3
 inet 10.15.0.1 --> 10.15.0.1 netmask 0xffffff00
 nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
 Opened by PID 493

Проверьте, что демон сервера OpenVPN занял порт 1194:

# sockstat | grep 1194

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

Установка SQUID

В среде ОС FreeBSD мы выполнили установку Squid из портов:

# cd /usr/ports/www/squid33
# make install clean

Файл конфигурации Squid находится в каталоге /usr/local/etc/squid/ и называется squid.conf. В него надо внести такие же изменения, что и в случае установки для Debian Linux.

Для запуска добавьте в файл /etc/rc.conf строку:

squid_enable="YES"

Чтобы запустить Squid, используйте следующую команду:

/usr/local/etc/rc.d/squid start

Особенности установки клиента OpenVPN в Microsoft Windows

Для тех сотрудников, кто использует на своих рабочих станциях ОС Microsoft Windows, мы настроили доступ к серверу OpenVPN с помощью ПО OpenVPN-GUI. Дистрибутив OpenVPN-GUI можно скачать здесь.

Установка OpenVPN-GUI

Выберите вариант загрузки Windows Installer (64-bit) или Windows Installer (32-bit) в зависимости от разрядности вашей версии ОС Microsoft Windows. Далее запустите полученный файл и выполните установку по умолчанию. Файлы конфигурации, сертификаты и ключи необходимо записать в папку C:\Program Files\OpenVPN\config.

В папку C:\Program Files\OpenVPN\easy-rsa устанавливается версия программы Easy-RSA для Windows.

Краткую инструкцию по использованию Easy-RSA для Windows вы найдете в файле C:\Program Files\OpenVPN\easy-rsa\README.txt

Мы рассмотрим вариант, при котором запрос на сертификат создается на хосте Microsoft Windows, а затем передается через USB флэш-диск на хост удостоверяющего центра CA. Там на основании запроса создается подписанный файл сертификата и, опять же, через USB флэш-диск, передается на хост Microsoft Windows.

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

Перейдем к процедуре создания запроса на сертификат.

Прежде всего, запустите консоль с правами администратора. Для удобства вместо стандартной консоли Microsoft Windows мы использовали бесплатный эмулятор консоли ConEmu-Maximus5.

Запустив консоль, перейдите в каталог Easy-RSA и выполните команды:

cd C:\Program Files\OpenVPN\easy-rsa
init-config.bat
clean-all 

В результате будет создан каталог C:\Program Files\OpenVPN\easy-rsa\keys и файл vars.bat.

Отредактируйте в файле vars.bat строки по примеру, приведенному ниже, указав код своей страны KEY_COUNTRY и региона KEY_PROVINCE, название города KEY_CITY, компании KEY_ORG, адрес электронной почты KEY_EMAIL и название отдела KEY_OU:

set KEY_COUNTRY=RU
set KEY_PROVINCE=RU
set KEY_CITY=Moscow
set KEY_ORG=IT-Company
set KEY_EMAIL=develop@itcompany.ru
set KEY_CN=changeme
set KEY_NAME=changeme
set KEY_OU=IT

Создайте приватный ключ хоста и запрос на сертификат:

vars
build-ca
build-key client

Ответьте на вопросы, аналогичные тем, что задаются при создании ключей и сертификатов для узлов OpenVPN в Debian Linux или FreeBSD.

После этого в каталоге C:\Program Files\OpenVPN\easy-rsa\keys будет создан файл запроса сертификата client.csr, сертификат client.crt и файл приватного ключа клиента client.key.

Из этих файлов нам потребуются только два — запрос сертификата client.csr и приватный ключ client.key. Сертификат client.crt подписан приватным ключом хоста Microsoft Windows, созданным командой build-ca, и не подойдет для работы с нашим сервером OpenVPN. Тут необходим сертификат, созданный нашим удостоверяющим центром CA.

Получение сертификата от удостоверяющего центра CA

Скопируйте файл запроса сертификата client.csr через USB флэш-диск на хост удостоверяющего центра и создайте запрос, аналогично тому, как мы это делали для клиента OpenVPN на базе Debian Linux. Запишите полученный сертификат на USB флэш-диск, чтобы перенести его на хост Microsoft Windows.

Создание файла конфигурации клиента OpenVPN

Создайте файл конфигурации клиента OpenVPN в каталоге C:\Program Files\OpenVPN\config. Расширение имени этого файла должно быть ovpn. Вот пример нашего файла:

client
dev tun
proto udp
remote 192.168.0.54 1194
tls-client
ca "key/ca.crt"
cert "key/developer-w1.crt"
key "key/client.key"
tls-auth "key/ta.key" 1
comp-lzo
tun-mtu 1500
mssfix 1450
verb 3

Здесь предполагается, что мы скопировали в каталог C:\Program Files\OpenVPN\config\key следующие файлы:

  • ca.crt — сертификат удостоверяющего центра CA;
  • developer-w1.crt — сертификат хоста Microsoft Windows, подписанный удостоверяющим центром CA;
  • client.key — приватный ключ хоста Microsoft Windows;
  • ta.key — ключ HMAC для дополнительной защиты от DoS-атак и флуда, скопированный с сервера OpenVPN

Запуск OpenVPN-GUI

Запустите OpenVPN-GUI как обычное приложение Windows с помощью кнопки Пуск (существует также возможность запуска OpenVPN-GUI в качестве службы). В панели системных задач (в системном «трее», или в панели System Tray) появится значок OpenVPN-GUI в виде небольшого окна с замком.

Щелкните этот значок правой клавишей мыши и выберите имя файла конфигурации, который вы создали в каталоге C:\Program Files\OpenVPN\config. Если все настроено правильно, на экране появится окно соединения, в котором будут отображаться сообщения.

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

Чтобы разъединить канал OpenVPN, щелкните значок OpenVPN-GUI правой клавишей мыши и выберите из меню строку Отключиться.

Полезные ссылки

Протокол Диффи — Хеллмана

HMAC

Шифрование

X.509

OpenVPN: создание сервера на Windows

Центр сертификации или удостоверяющий центр (Certification authority, CA)

Другие наши интересноые статьи:

  • Как пользоваться bios на windows
  • Как пользоваться victoria для windows
  • Как пользоваться onedrive на windows 11
  • Как пользоваться unlocker для windows 10
  • Как пользоваться torrent на windows
  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии