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

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

Так же у нас вы можете заказать сервер с готовым рецептом OpenVPN котовы будет установлен и настроен автоматически.

1 способ. В docker контейнере 

Для этого требуется установить пакеты:

Debian\Ubuntu:

RedHat-based OS (Centos, Alma и т.д.):

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

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

Следующим шагом подключаетесь к серверу способом, описанном в настройке клиента

2 способ. Установка OpenVPN скриптом

происходит в полуавтоматическом режиме.

Скачаем скрипт:

Дадим ему права на выполнение:

После запускаем скрипт:

После запуска скрипта необходимо ответить на несколько вопросов, а именно указать ваш IP-адрес и шлюз по умолчанию.

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

Далее будут заданы вопросы, включать ли поддержку IPv6, какой порт для OpenVPN использовать, по какому протоколу будет работать VPN, какие резолверы (DNS) выбрать для VPN-сервера, включать ли компрессию, вносить ли изменения в механизмы шифрования. Если вы не знаете какие конкретно опции нужны, то можете выбирать варианты ответа, предлагаемые скриптом по умолчанию — установится стандартный openvpn-сервер.

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

В результате будет сгенерирован файл по пути /root/client.ovpn, где client— имя, которое вы задали в поле Имя Пользователя. В нашем примере бы создался файл /root/openvpn.ovpn

Файл достаточно скачать с сервера и выполнить подключение к VPN-серверу способом, описанным в пункте 2.

Повторный запуск скрипта позволяет:

  • добавить пользователя OpenVPN,
  • удалить пользователя OpenVPN,
  • удалить OpenVPN.

3 способ. Установка OpenVPN вручную

Выполним установку OpenVPN-сервера:

Для OpenVPN версии выше 2.3 набор скриптов easy-rsa не входит в инсталляцию по умолчанию, а скачивается отдельно.

Распаковываем структуру ключей:

Создаём центр сертификации:

В процессе вы получите запрос на ввод пароля от 4 до 32 символов, сохраните его, он нам потребуется в будущем:

Получаем:

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

Подписываем запрос, будет запрошен пароль. Используем пароль, который сохранили при создании центра сертификации:

Получаем:

Генерируем ключи для клиента:

Будет запрошен пароль, который мы сохранили при создании центра сертификации:

Получаем два файла:

Генерируем файл с параметрами Диффи-Хеллмана (dh.pem):

Это может занять продолжительное время. Получаем:

Перенесём полученные файлы в /etc/openvpn/для удобства:

Файлы client.crt, client.key, ca.crt нужно скопировать на компьютер пользователя, который будет подключаться к OpenVPN-серверу:

Теперь настроим конфигурационный файл сервера. Он должен находиться в /etc/openvpn и называться server.conf. Пример конфигурационного файла server.conf с рабочего OpenVPN сервера:

В  конфигурационном файле в опциях ca, cert, key, dh можно использовать абсолютные пути до файлов или пути относительно директории /etc/openvpn.

Пример использования абсолютных путей:

Сохраняем файл. Выполняем команду настройки маршрутизации для OpenVPN сервера:

Обратите внимание, что настройки маршрутизации имеют именно такой синтаксис, потому что в конфигурационном файле в строке serverмы указали 10.8.0.0 255.255.255.0

Запускаем OpenVPN:

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

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

Для Windows

Клиент для Windows можно скачать здесь: https://openvpn.net/community-downloads/

Для подключения после настроек скриптом или с использованием docker-контейнера

После установки импортируем полученную нами конфигурацию, например client.ovpn.

На значке OpenVPN в трее нажимаем ПКМ и выбираем Импорт конфигурации:

Далее выберем нужный нам файл конфигурации:

В результате увидим, что конфигурация загружена успешно:

Следующим шагом осуществим подключение к нашему VPN-серверу, нажав кнопку Подключиться:

Если подключение прошло корректно, то увидим следующее сообщение:

Для подключения после ручных настроек

После установки заходим в папку установки программы, например: C:\Program Files\OpenVPN\sample-config. Открываем текстовым редактором (блокнотом) файл client.ovpn и пишем в строке:

Необходимо указать IP своего сервера вместо my-server-1. Больше ничего не трогаем, сохраняем и закрываем файл.

Затем нужно скачать с сервера 3 файла сертификатов в эту же папку, где только что редактировали файл. Итак, скачать нужно следующие файлы:

Все готово для подключения и проверки.

Нажимаем правой кнопкой на файл client.ovpn и выбираем Start OpenVPN on this config file. Если соединение прошло корректно, то увидите соответствующее сообщение:

Для Linux

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

RedHat-based OS (Centos, RockyLinux, AlmaLinux и т.д.):

Debian/Ubuntu:

В случае, если OpenVPN сервер был установлен скриптом или с использованием docker-контейнера, настройка клиента OpenVPN происходит следующим образом.

Полученный после настройки файл с расширением .conf, например, client.conf,помещаем по пути /etc/openvpn/client.conf и выполняем команду для подключения:

В случае, если настройка OpenVPN сервера производилась вручную требуется сделать следующие действия:

Кладем три файла, сгенерированных на сервере в директорию/etc/openvpn/:

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

Получаем файл со следующим содержимым:

И подключаемся вручную с помощью такой команды:

На этом всё!