Установка OpenVPN и настройка сервера на Windows и Linux

Это просто ещё одна инструкция по настройке OpenVPN сервера. Допустим что у нас уже есть VDS простой конфигурации (512mb памяти и т. п.). На нём установлена CentOS 6 или CentOS 7 и на него же мы будем ставить наш VPN сервер.

Что такое OpenVPN?

OpenVPN – это VPN программа, которая использует SSL/TLS для создания безопасных, зашифрованных VPN соединений для маршрутизации вашего интернет трафика, тем самым предотвращая слежку (снупинг). OpenVPN имеет высокую способность прозрачности для прохода через файерволы. На самом деле, если ситуация требует этого, вы можете запустить его на том же TCP порту как HTTPS (443), что делает трафик неразличимым и практически невозможным для блокировки.

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

Настраиваем OpenVPN сервер

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

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

Установка OpenVPN на машину-сервер

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

Настройка серверной части

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

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

Перед началом настройки клиента необходимо совершить несколько действий на серверной машине – сгенерировать ключи и сертификат для настройки подключения.

  1. Идем в каталог «easy-rsa», затем в папку «keys» и открываем файл
  2. Открываем файл, удаляем все содержимое и сохраняем.
  3. Переходим обратно в «easy-rsa» и запускаем «Командную строку» (SHIFT+ПКМ – Открыть окно команд).
  4. Далее запускаем , а затем создаем клиентский сертификат.

    vpn-client

    Это общий сертификат для всех машин в сети. Для повышения безопасности можно сгенерировать для каждого компьютера свои файлы, но назвать их по-другому (не «vpn-client», а «vpn-client1» и так далее). В этом случае необходимо будет повторить все действия, начиная с очистки

  5. Заключительное действие – перенос файлов , , и клиенту. Сделать это можно любым удобным способом, например, записать на флешку или передать по сети.

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

  1. Устанавливаем OpenVPN обычным способом.
  2. Открываем каталог с установленной программой и переходим в папку «config». Сюда необходимо вставить наши файлы сертификатов и ключей.
  3. В этой же папке создаем текстовый файл и переименовываем его в
  4. Открываем в редакторе и прописываем следующий код:

    client resolv-retry infinite nobind remote 443 proto udp dev tun comp-lzo ca cert key dh float cipher DES-CBC keepalive 10 120 persist-key persist-tun verb 0

    В строке «remote» можно прописать внешний IP-адрес серверной машины – так мы получим доступ в интернет. Если оставить все как есть, то будет возможно только соединение с сервером по зашифрованному каналу.

  5. Запускаем OpenVPN GUI от имени администратора с помощью ярлыка на рабочем столе, затем в трее находим соответствующую иконку, жмем ПКМ и выбираем первый пункт с названием «Подключиться».

На этом настройка сервера и клиента OpenVPN завершена.

Заключение

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

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

Для Windows:

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

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

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

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

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

Для Linux:

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

cd /etc/openvpn/server1

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

И запускаем OpenVPN:

openvpn —config /etc/openvpn/server1/

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

Для того, чтобы отозвать сертификат client1:

# cd /etc/openvpn/keys/EasyRSA-3.0.8/pki/ # ./vars # ./easyrsa revoke client1

При этом будет создан новый файл , который обязательно надо скопировать в директорию /etc/openvpn, заменив старый и перезапустить сервер OpenVPN.

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

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

Обратите внимание на строчку «CRL CHECK FAILED» (Ошибка Проверки Списка Отозванных Сертификатов): сертификат с серийным номером 04 отозван (is REVOKED)!

Настройка и запуск клиента OpenVPN в Ubuntu LTS

Для Linux проще всего ставить этот же пакет OpenVPN, но настраивать его клиентом.

sudo apt install openvpn

Пример рабочего конфига для Ubuntu LTS скачиваем файл (с расширением ovpn) созданный на этапе 10. Копируем его в директорию /etc/openvpn клиента (переименовываем расширение):

cp

Тестируем работу клиента:

sudo openvpn —config

Если все ОК — настраиваем автозапуск клиента в Ubuntu. Для Ubuntu LTS и выше нужно включить службу OpenVPN для запуска во время загрузки перечитать конфиг systemctl:

sudo systemctl enable openvpn sudo systemctl daemon-reload

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

sudo systemctl start openvpnШАГ 14: (Опционально) Директория ccd клиенты OpenVPN

В директории ccd хранятся индивидуальные настройки для каждого клиента. Имя файла должно соответствовать имени сгенерированного клиентского сертификата. Файлы конфигурации клиентов являются текстовыми файлами и содержат команды, выполняемые сервером при подключении клиентов. Обычно файл клиента содержать команды:

  1. добавляет клиенту маршрут к локальной подсети центрального офиса(push "route ")
  2. определяет адрес локальной подсети, находящейся за клиентом (например iroute )
  3. привязка к статическому IP (ifconfig-push ), где ifconfig-push <IP-адрес клиента> <IP-адрес сервера>. Выбранные пары IP-адресов, во-первых, должны быть уникальными, во-вторых, должны входить в состав последовательных подсетей, ограниченных маской /30 (), и, в-третьих, должны находиться в пределах пула IP-адресов, выделенного для виртуальной частной сети (определяется параметром server файла конфигурации сервера OpenVPN).

# mkdir /etc/openvpn/ccd # nano ccd/farm1c push "route " #push "route " # static IP ifconfig-push #iroute

Шаг 15: Отзыв клиентских сертификатов

Сотрудники увольняются и им нужно запретить доступ к VPN. Значит нужно отозвать их сертификат. Команда revoke-full с именем клиента используется для отзыва ssl сертификата OpenVPN.

Если нет файла .rnd (это файл генератора псевдослучайных чисел) в каталоге пользователя, от имени которого вы создаете сертификаты, выполните командой:

$ cd $ touch .rnd

Переходим в директорию центра сертификации и вводим команды:

$ cd ~/openvpn-ca $ source vars

Отзываем сертификат используя команду revoke-full с именем клиента, например client1.

$ ./revoke-full client1

В результате работы будет создан файл в директории keys с необходимой для отзыва сертификата информацией. Теперь нужно объяснить серверу OpenvPN, где ему брать информацию об отозванных сертификатах, для этого используется директива crl-verify. Сервер OpenVPN будет проверять список отозванных сертификатов из файла каждый раз , когда кто-то устанавливает соединение с сервером.

Копируем в каталог. В конце файла /etc/openvpn/ задаем путь через директиву crl-verify

crl-verify

Перезапускаем сервер OpenVPN

# service openvpn restart

Теперь клиент не сможет устанавливать соединение с сервером OpenVPN используя старый сертификат, в логе сервера будет появляться строка о том что сертификат отозван: VERIFY ERROR: depth=0, error=certificate revoked

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

Если у вас 2 сервера openvpn, вам следует переименовать и в crl-verify задать файл со своим именем. Просто для второго сервера копируем и переименовываем например в Если вы укажите один и тот же файл для разных OpebVPN серверов — ваши сервера будут падать.

Установка для Linux Debian

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

Выбирают протокол, который нужно использовать: OpenVPN (UDP). UDP обеспечивает более высокую скорость, чем версия TCP, но в некоторых случаях может привести к сбою загрузки. Выбирают страну. Поскольку родные протокольные соединения могут использоваться только с одним сервером, нужно выбрать страну, из которой будет вестись серфинг. Если нужны разные подключения PPTP, L2TP или настройка сервера Debian OpenVPN в разных странах, повторяют последовательно все шаги для каждой из них.

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

После этого загружают файл конфигурации, нажимая «Загрузить конфигурацию», и сохраняют его на компьютере. Далее извлекают загруженный файл и переименовывают содержащую » в ‘ CG_ ‘, копируют файл в каталог конфигурации VPN. Для этого открывают окно терминала и переходят к папке, из которой он был извлечен, набрав: cd [путь к папке с извлеченными файлами конфигурации].

Далее копируют файлы:

  • sudo cp CG_ / etc / openvpn /
  • sudo cp / etc / openvpn /
  • sudo cp / etc / openvpn /
  • sudo cp / etc / openvpn /

Загружают информацию о пакете, открыв консоль и набрав sudo apt-get update. Переходят в папку: cd / etc / openvpn и вводят следующую команду для создания и открытия текстового файла с именем user:

sudo nano

В нижней части конфигурационного прохода (после comp-lzo) добавляют следующие две строки: up / etc / openvpn / update-resolv-conf и down / etc / openvpn / update-resolv-conf. Сохраняют через CTRL + O и выходят из редактора с помощью CTRL + X. Затем загружают файл автоматически, набрав: sudo nano / etc / default / openvpn. Наконец, вводят в консоли: sudo update-rc.d openvpn («Включить»). Прописывают: sudo service openvpn start. Ожидают несколько секунд, а затем проверяют, все ли работает нормально.

Читайте также:  Как узнать ключ продукта Windows и MS Office (обзор)