В этой статье приведен детальный процесс установки и настройки OpenVPN на сервер, управляемый CentOS 7.
OpenVPN - свободная реализация подключения виртуальных сетей с открытым исходным кодом.
CentOS 7 - система, построенная на исходном коде Red Hat Linux.
Аренда виртуальных серверов от oblako.kz.
Еще до начала установки необходимо скачать и установить дополнительные пакеты из хранилища EPEL, управляемого Fedora Project. В репозитории лежат популярные приложения для CentOS, не установленные в систему по умолчанию.
Этап 1
Сначала требуется установка софта, после чего необходимо скачать утилиту Easy RSA. Она необходима для генерации пары ключей для шифрования. Они применяются для обеспечения безопасности соединений между сетями.
Этап 2
В файловой системе программы есть документы, содержащие тестовые конфигурации OpenVPN. Для начала необходимо скопировать файл с именем server.conf - он послужит основой для создания новой совокупности параметров.
Чтобы открыть файл необходимо следующее:
В данной директории требуется внесение изменений. Необходимо установить определенное значение в файле настроек, чтобы при дальнейшей генерации ключи имели размер 2048 байт. Для корректного изменения необходимо поменять имя файла dh так, как это изображено ниже:
После необходимо удалить значок «;» в строке push "redirect-gateway def1 bypass-dhcp". Это необходимо для того, чтобы уведомления о необходимости перенаправления трафика через установленный клиент приходили своевременно.
Далее важно прописать значения публичных DNS-серверов Google. Это нужно сделать, чтобы клиентские приложения могли использовать сервер, так как им недоступны серверы провайдера. Чтобы внести нужные данные, параметры push "dhcp-option DNS" необходимо сначала раскомментировать, а затем указать данные серверов Google, как это указано ниже.
Чтобы была возможность запуска программы без привилегий, необходимо прописать такие настройки запуска, чтобы разрешить подключаться от имени пользователя и группы nobody. В указанных ниже строках нужно убрать необходимые символы. После завершения настройки сохраните внесенные данные и закройте документ.
Этап 3
После изменения настроек и их сохранения, переходите к этапу созданию ключей и сертификатов. В пакете есть специальные скрипты для их генерации.
Первый шаг – создание пути, где будут храниться готовые ключи. Директория располагается здесь:
Туда необходимо перенести скрипты для генерации сертификатов и ключей.
Чтобы упростить дальнейшее использование OpenVPN, вносятся определенные изменения в скрипты, генерирующие ключи. Это поможет оптимизировать работу и не дублировать ввод значений несколько раз. Чтобы изменить скрипт, необходимо внести правки в файл vars, расположенный здесь:
Найдите поля, начинающиеся с KEY_ , туда будет вноситься информация о компании. Обязательно необходимо заполнить строки KEY_NAME и KEY_CN.
В первом параметре необходимо вписать значение server. Это делается для того, чтобы не пришлось менять все файлы конфигурации, где есть упоминания server.key и server.crt.
Во втором параметре нужно вписать имя домена.
В прочие строки KEY_ по желанию вносится дополнительная информация. Ниже приведены примеры, при редактировании их нужно заменить на данные вашей компании.
Если определить версию программы невозможно, то могут возникать сбои в загрузке SSL. Чтобы исключить риск возникновения подобной проблемы, нужно скопировать приведенные ниже данные и стереть номер версии из его названия.
Переходите в директорию easy-rsa, где необходимо ввести "source" для создания новых ключей и сертификатов.
Иные данные, лежащие в директории, необходимо удалить.
Внесите данные об организации, которой принадлежит сертификат.
Далее следует этап генерации ключей и сертификатов. Так как все необходимые изменения уже были внесены, то на вопросы системы можно нажимать Enter , то есть далее. В конце необходимо нажать «ДА» («Y»), чтобы сохранить изменения.
Далее необходимо создать файл обмена по криптографическому протоколу Диффи-Хеллмана, сгенерировав дополнительный ключ.
Сгенерируем вспомогательный ключ ta.key
Созданные данные должны быть скопированы в папку OpenVPN.
Для того, чтобы клиентские приложения могли устанавливать связь с сервером, необходимы ключи и сертификаты. Для каждого конкретного приложения создается уникальный ключ со своим именем. Ниже описан процесс для одного клиента.
Этап 4
Настройка производится с использованием инструмента firewall iptables. В случае необходимости его нужно установить, а затем запустить.
В фаерволл добавляется правило, описанное ниже, для направления соединений в OpenVPN:
Путем редактирования sysctl.conf , активируем IP-форвардинг:
Затем нужно добавить такие данные в самое начало файла:
Следующей командой производим перезапуск сервера:
Этап 5
Для корректного запуска программы, необходимо добавить клиент в systemctl:
Запускайте программу командой:
Настройка программы со стороны сервера окончена. Следующим этапом будет настройка со стороны клиента.
Этап 6
При настройке программы не учитывается, на какой именно ОС работает устройство, различаются только способы подключения к клиенту. Для правильного подключения к серверу необходимы ключи и сертификаты, уже сгенерированные ранее. Найти нужные данные можно в директории, указанной ниже:
Для загрузки и сохранения файлов применяется протокол SFTP. Более простой способ заключается в создании новых файлов непосредственно на устройстве и копирование данных с помощью текстового редактора. Важно запомнить, что сохранять новые файлы необходимо под теми же именами.
Следующий этап – создание документа под client.ovpn. Это файл настроек для OpenVPN, содержащий нужные данные для соединения с сервером. В соответствующих полях документа нужно исправить введенные данные. Необходимо изменить имя клиента на необходимое, прописать правильный ip-адрес сервера и путь к файлам, где лежат ключи и сертификаты.
Файл после внесения изменений полностью готов к использованию. Далее мы рассмотрим, как происходит подключение на различных устройствах с разными ОС.
Для подключения на устройстве, работающем на ОС Windows, необходимо:
- Загрузить с официального сайта последнюю версию бинарных файлов OpenVPN;
- Переместить документ с данными по адресу C:\Program Files\OpenVPN\config;
- Для подключения нажать на Connect непосредственно в графическом интерфейсе клиента.
Для устройств MacOS:
- Для подключения используется встроенная программа Tunnelblick;
- Чтобы переместить конфигурационный файл в директорию инструмента можно просто кликнуть по нему.
Для Linux:
- Программа OpenVPN скачивается из хранилища установочного пакета программы;
- Запуск производится командой, указанной ниже:
Если придерживаться этой пошаговой инструкции, то установка OpenVPN и настройка сервера пройдет успешно. После установки необходимо удостовериться в защите трафика. Это легко проверить, если воспользоваться общедоступным сервисом, показывающим публичный IP. При корректной работе будет отображаться адрес VPN-сервера.