Как установить и настроить OpenVPN на сервер с дистрибутивом CentOS 7Подробная инструкция с наглядными примерами как установить и настроить OpenVPN на сервер с дистрибутивом CentOS 7
Еще до начала установки необходимо скачать и установить дополнительные пакеты из хранилища EPEL, управляемого Fedora Project. В репозитории лежат популярные приложения для CentOS, не установленные в систему по умолчанию.
yum install epel-release
Этап 1
Сначала требуется установка софта, после чего необходимо скачать утилиту Easy RSA. Она необходима для генерации пары ключей для шифрования. Они применяются для обеспечения безопасности соединений между сетями.
yum install openvpn easy-rsa –y
Этап 2
В файловой системе программы есть документы, содержащие тестовые конфигурации OpenVPN. Для начала необходимо скопировать файл с именем server.conf - он послужит основой для создания новой совокупности параметров.
В данной директории требуется внесение изменений. Необходимо установить определенное значение в файле настроек, чтобы при дальнейшей генерации ключи имели размер 2048 байт. Для корректного изменения необходимо поменять имя файла dh так, как это изображено ниже:
dh dh2048.pem
После необходимо удалить значок «;» в строке push "redirect-gateway def1 bypass-dhcp". Это необходимо для того, чтобы уведомления о необходимости перенаправления трафика через установленный клиент приходили своевременно.
Далее важно прописать значения публичных DNS-серверов Google. Это нужно сделать, чтобы клиентские приложения могли использовать сервер, так как им недоступны серверы провайдера. Чтобы внести нужные данные, параметры push "dhcp-option DNS" необходимо сначала раскомментировать, а затем указать данные серверов Google, как это указано ниже.
push "dhcp-option DNS 8.8.8.8"push "dhcp-option DNS 8.8.4.4"
Чтобы была возможность запуска программы без привилегий, необходимо прописать такие настройки запуска, чтобы разрешить подключаться от имени пользователя и группы nobody. В указанных ниже строках нужно убрать необходимые символы. После завершения настройки сохраните внесенные данные и закройте документ.
user nobodygroup nobody
Этап 3
После изменения настроек и их сохранения, переходите к этапу созданию ключей и сертификатов. В пакете есть специальные скрипты для их генерации.
Первый шаг – создание пути, где будут храниться готовые ключи. Директория располагается здесь:
mkdir -p /etc/openvpn/easy-rsa/keys
Туда необходимо перенести скрипты для генерации сертификатов и ключей.
Чтобы упростить дальнейшее использование OpenVPN, вносятся определенные изменения в скрипты, генерирующие ключи. Это поможет оптимизировать работу и не дублировать ввод значений несколько раз. Чтобы изменить скрипт, необходимо внести правки в файл vars, расположенный здесь:
vi /etc/openvpn/easy-rsa/vars
Найдите поля, начинающиеся с KEY_ , туда будет вноситься информация о компании. Обязательно необходимо заполнить строки KEY_NAME и KEY_CN.
В первом параметре необходимо вписать значение server. Это делается для того, чтобы не пришлось менять все файлы конфигурации, где есть упоминания server.key и server.crt.
Во втором параметре нужно вписать имя домена.
В прочие строки KEY_ по желанию вносится дополнительная информация. Ниже приведены примеры, при редактировании их нужно заменить на данные вашей компании.
# These are the default values for fields
# which will be placed in the certificate.
# Don't leave any of these fields blank.
export KEY_COUNTRY="RU"
export KEY_PROVINCE="Moscow"
export KEY_CITY="Moscow"
export KEY_ORG="OOO Romashka"
export KEY_EMAIL="ivan@example.com"
export KEY_OU="Community"
# X509 Subject Field
export KEY_NAME="server"
. . .
export KEY_CN=openvpn.example.com
Если определить версию программы невозможно, то могут возникать сбои в загрузке SSL. Чтобы исключить риск возникновения подобной проблемы, нужно скопировать приведенные ниже данные и стереть номер версии из его названия.
Переходите в директорию easy-rsa, где необходимо ввести "source" для создания новых ключей и сертификатов.
cd /etc/openvpn/easy-rsa
source ./vars
Иные данные, лежащие в директории, необходимо удалить.
./clean-all
Внесите данные об организации, которой принадлежит сертификат.
./build-ca
Далее следует этап генерации ключей и сертификатов. Так как все необходимые изменения уже были внесены, то на вопросы системы можно нажимать Enter , то есть далее. В конце необходимо нажать «ДА» («Y»), чтобы сохранить изменения.
./build-key-server server
Далее необходимо создать файл обмена по криптографическому протоколу Диффи-Хеллмана, сгенерировав дополнительный ключ.
Созданные данные должны быть скопированы в папку OpenVPN.
cd /etc/openvpn/easy-rsa/keys
cp dh2048.pem ca.crt server.crt server.key ta.key /etc/openvpn
Для того, чтобы клиентские приложения могли устанавливать связь с сервером, необходимы ключи и сертификаты. Для каждого конкретного приложения создается уникальный ключ со своим именем. Ниже описан процесс для одного клиента.
cd /etc/openvpn/easy-rsa
./build-key client
Этап 4
Настройка производится с использованием инструмента firewall iptables. В случае необходимости его нужно установить, а затем запустить.
Путем редактирования sysctl.conf , активируем IP-форвардинг:
vi /etc/sysctl.conf
Затем нужно добавить такие данные в самое начало файла:
net.ipv4.ip_forward = 1
Следующей командой производим перезапуск сервера:
systemctl restart network.service
Этап 5
Для корректного запуска программы, необходимо добавить клиент в systemctl:
systemctl -f enable openvpn@server.service
Запускайте программу командой:
openvpn /etc/openvpn/server.conf
Настройка программы со стороны сервера окончена. Следующим этапом будет настройка со стороны клиента.
Этап 6
При настройке программы не учитывается, на какой именно ОС работает устройство, различаются только способы подключения к клиенту. Для правильного подключения к серверу необходимы ключи и сертификаты, уже сгенерированные ранее. Найти нужные данные можно в директории, указанной ниже:
Для загрузки и сохранения файлов применяется протокол SFTP. Более простой способ заключается в создании новых файлов непосредственно на устройстве и копирование данных с помощью текстового редактора. Важно запомнить, что сохранять новые файлы необходимо под теми же именами.
Следующий этап – создание документа под client.ovpn. Это файл настроек для OpenVPN, содержащий нужные данные для соединения с сервером. В соответствующих полях документа нужно исправить введенные данные. Необходимо изменить имя клиента на необходимое, прописать правильный ip-адрес сервера и путь к файлам, где лежат ключи и сертификаты.
client
dev tun
proto udp
remote your_server_ip 1194
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 3
ca /path/to/ca.crt
cert /path/to/client.crt
key /path/to/client.key
Файл после внесения изменений полностью готов к использованию. Далее мы рассмотрим, как происходит подключение на различных устройствах с разными ОС.
Для подключения на устройстве, работающем на ОС Windows, необходимо:
Загрузить с официального сайта последнюю версию бинарных файлов OpenVPN;
Переместить документ с данными по адресу C:\Program Files\OpenVPN\config;
Для подключения нажать на Connect непосредственно в графическом интерфейсе клиента.
Для устройств MacOS:
Для подключения используется встроенная программа Tunnelblick;
Чтобы переместить конфигурационный файл в директорию инструмента можно просто кликнуть по нему.
Для Linux:
Программа OpenVPN скачивается из хранилища установочного пакета программы;
Запуск производится командой, указанной ниже: sudo openvpn --config ~/path/to/client.ovpn
Если придерживаться этой пошаговой инструкции, то установка OpenVPN и настройка сервера пройдет успешно. После установки необходимо удостовериться в защите трафика. Это легко проверить, если воспользоваться общедоступным сервисом, показывающим публичный IP. При корректной работе будет отображаться адрес VPN-сервера.