Шаг #2: Настройка сервиса
В директории документации OpenVPN содержатся файлы с тестовыми конфигурациями программы. Скопируем файл server.conf — на его основе мы создадим свою конфигурацию.
Теперь откроем его для редактирования:
Здесь нужно будет внести несколько изменений. Когда в дальнейшем мы будем генерировать ключы в программе Easy RSA, их размер будет по умолчанию составлять 2048 байт, поэтому нужно убедиться, что соответствующее значение указано в файле настроек. Нужно изменить название файла dh на dh2048.pem:
Затем нужно раскомментировать (удалить символ “;”) строку, которая сообщает клиенту о необходимости редиректа трафика через OpenVPN.
Затем нужно указать DNS-серверы, поскольку клиентские приложения не смогут использовать серверы интернет-провайдера.
Для этого нужно раскомментировать строки, начинающиеся с push «dhcp-option DNS» для передачи DNS-серверов клиенту:
Нам нужно, чтобы OpenVPN запускался без привилегий, поэтому нужно указать, что он запускается от имени пользователя и группы nobody. Для этого нужно раскомментировать соответствующие строки:
Также нужно указать пути до сгенерированных ранее сертификатов и ключей:
Затем нужно сохранить файл и выйти из него. Для этого используйте в редакторе nano сочетание клавиш CTRL+X, затем подтвердите сохранение файла нажатием Y
Prerequisites
To follow this tutorial, you will need:
-
One CentOS 7 server with a sudo non-root user and a firewall set up with firewalld, which you can achieve with our Initial Server Setup with CentOS 7 guide and the Additional Recommended Steps for New CentOS 7 Servers.
-
A domain or subdomain that resolves to your server that you can use for the certificates. To set this up, you will first need to register a domain name and then add a DNS record via the DigitalOcean Control Panel. Note that just adding an A record will meet the requirements of this tutorial.
-
A client machine which you will use to connect to your OpenVPN server. For the purposes of this tutorial, it’s recommend that you use your local machine as the OpenVPN client.
With these prerequisites in place, you are ready to begin setting up and configuring an OpenVPN server on CentOS 7.
Step 10 – Generate Client Configuration File
Next, create a new OpenVPN client configuration file named client.ovpn. You will require this file to connect your OpenVPN server from the client system.
nano /etc/openvpn/client/client.ovpn
Add the following lines:
client dev tun proto udp remote vpn-server-ip 1194 ca ca.crt cert client.crt key client.key cipher AES-256-CBC auth SHA512 auth-nocache tls-version-min 1.2 tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256 resolv-retry infinite compress lz4 nobind persist-key persist-tun mute-replay-warnings verb 3
Save the file when you are finished.
Установка openvpn на RedHat/CentOS/Fedora
OpenVPN является полнофункциональной утилитой с открытыми исходниками для решение VPN, что позволяет использовать широкий диапазон конфигураций, в том числе удаленного доступа, Wi-Fi безопасности и многое другое. OpenVPN предлагает экономическое и эффективное решение — это альтернативное решение других технологий VPN, которая целенаправленна для разных предприятий. В статье «Установка openvpn на RedHat/CentOS/Fedora» хотел бы рассказать как можно объединить группу компьютеров двух или более разных сетей для совместного использования на примере установки openVPN для RedHat, CentOS а так же для Fedora.
И так имеем, у меня есть сервер на которой установлена ОС — CentOSи у нее имеется ИП адрес 78.140.189.243. На этот сервер мы сейчас и установим наш OpenVPN сервер.
До всей установки нужно подключить repo EPEL:
1. Устанавливаем OpenPN сервер, к нему и будем подключаться ( на том компьютере с которого мы будем подключаться мы установим клиентскую ее часть, но об этом немного попозже):
# yum install openvpn
Как только все установится нужно скопировать файлы в созданную папку:
# mkdir -p /etc/openvpn/easy-rsa/keys # cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa/keys
Но это уже не работает в новых версиях OpenVPN (в него уже не входит этот пакет), по этому нужно сделать «финт ушами», по этому мы установим вручную:
# sudo yum install easy-rsa
После этого мы создаем папку и скопируем нужные данные в нее:
# mkdir -p /etc/openvpn/easy-rsa/keys # cp -rf /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa/
После того как мы скопировали нужные для работы файлы, нам еще нужно сгенерировать ключики и так же сертификаты, делаем по следующей схеме:
# vim /etc/openvpn/easy-rsa/vars #в этом файле нужно изменить Страну, город..... # не оставляйте поля пустыми! export KEY_COUNTRY="UA" export KEY_PROVINCE="LG" export KEY_CITY="Lug" export KEY_ORG="linux-notes" export KEY_EMAIL="solo.metal@bigmir.net" export KEY_OU="my_server"
Переходим в директорию и начнем работу:
# cd /etc/openvpn/easy-rsa/
Введите следующие команды для инициализации центра сертификации:
# cp openssl-1.0.0.cnf openssl.cnf # source ./vars # ./clean-all
Затем выполните следующую команду, чтобы создать сертификат и ключ CA:
# ./build-ca
Нас попросят ввести данные ( но нам это не интересно, т.к мы это все уже прописать немного выше), но мы просто на каждый вопрос нажимаем «Enter»
Далее создаем сертификат и ключик для моего сервера my_server:
# ./build-key-server my_server
Нас просят ввести кое какие данные, я привел то что нужно нажимать на следующем скриншоте:
Создадим сертификат и ключ для VPN клиентов:
# ./build-key client
Если вы хотите создать сертификат и файлы ключей для каждого клиента, вы должны заменить параметр клиента своим уникальным идентификатором! Но т.к я буду использовать его сам, то мне хватит и 1 клиентского сертификата.
Отвечаем на вопросы точно так же как и на предыдущем рисунке:
Что требуется от операционной системы?
Перед установкой OpenVPN необходимо убедиться в корректности базовых параметров.
1. У сервера есть хотя бы один “белый” статичный IP-адрес. Т.е. сервер должен быть доступен из сети Интернет. Если адрес динамический, но сервер все же остается быть доступным из глобальной сети — воспользуйтесь услугами DynDNS.
2. Разрешена загрузка и установка пакетов из официальных репозиториев. Для проверки выполните cat /etc/apt/sources.list. Строки с указаниями репозиториев должны быть раскомментированы (не должно быть символа “#” решетка в начале строки).
Скриншот 1. Репозитории
3. Должны быть верно указаны параметры сети — hostname, параметры DNS-серверов.
Для обеспечения должного уровня безопасности, рекомендуем ознакомиться с нашими рекомендациями.
Приступаем к установке.
Все действия по установке будем выполнять от пользователя root.
1. Обновляем информацию о репозиториях:
2. Устанавливаем текущие обновления системы и установленных программ:
3. Устанавливаем OpenVPN:
Скриншот 2. Установка OpenVPN
Важно. В базовых репозиториях, зачастую отсутствует новейшая версия пакета
Разработчики OpenVPN ведут собственный репозиторий, о том как его настроить можно ознакомиться на официальном сайте.
4. Аналогичным образом устанавливаем пакет easy-rsa:
Действия после установки.
Размещаем скрипты easy-rsa:
Подготавливаем публичные ключи (PKI — Public Key Infrastructure):
1. Переходим в директорию /etc/openvpn/easy-rsa:
2. Создаем символьную ссылку на файл конфигурации openssl:
3. Инициализируем скрипт vars:
Система сообщит: NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys
4. Выполняем
Скриншот 3. Подготавливаем публичные ключи
5. Для создания центра сертификации выполняем скрипт:
В ходе своей работы, программа задаст несколько вопросов. Отвечать на них следует латиницей. Если вы не заполните какое-либо поле, программа подставит значения по умолчанию, обычно указанные в скобках.
Скриншот 4. Создание центра сертификации
Создаем ключ сервера.
Для создания ключа сервера выполним команду:
Скриншот 5. Создание ключа сервера
Следует обратить внимание, что процесс похож на генерацию сертификата центра сертификации, однако, перед подписанием сертификата программа задаст 2 уточняющих вопроса. Если все указано верно, отвечаем “y”
Аутентификация пользователей
Мы можем настроить проверку пользователя по логину и паролю. Это даст дополнительный уровень защиты, а также позволит использовать один и тот же сертификат для всех подключений.
Настройка сервера
Открываем конфигурационный файл openvpn:
vi /etc/openvpn/server/server.conf
И добавляем следующие строчки:
username-as-common-name
plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so login
* где username-as-common-name указывает на то, что openvpn должен использовать логины, как основные идентификаторы клиента; plugin указывает на путь к самому плагину и для чего он используется.
* как путь, так и название файла openvpn-plugin-auth-pam.so могут отличаться. Это зависит от версии Linux и OpenVPN. Чтобы найти путь до нужного файла, можно воспользоваться командой find / -name «openvpn-*auth-pam*» -print.
Перезапускаем сервер:
systemctl restart openvpn-server@server
При необходимости, создаем учетную запись для авторизации:
useradd vpn1 -s /sbin/nologin
И задаем ей пароль:
passwd vpn1
Настройка на клиенте
В конфигурационный файл клиента добавляем:
auth-user-pass
Теперь при подключении программа будет запрашивать логин и пароль.
Вход без ввода пароля (сохранение пароля)
Если необходимо настроить авторизацию, но автоматизировать вход клиента, открываем конфигурационный файл последнего и строку для авторизации меняем на:
auth-user-pass auth.txt
* где auth.txt — файл, в котором мы будем хранить логин и пароль.
Создаем текстовый файл auth.txt в той же папке, где находится файл конфигурации со следующим содержимым:
username
password
* где username — логин пользователя, а password — пароль.
Переподключаем клиента.
Описанный метод аутентификации является базовым и требует наличие обычной системной учетной записи. Если необходима более сложная авторизация на базе LDAP, можно воспользоваться инструкцией настройка OpenVPN сервера с аутентификацией через LDAP (написана на базе Linux Ubuntu).
Этап 3
После изменения настроек и их сохранения, переходите к этапу созданию ключей и сертификатов. В пакете есть специальные скрипты для их генерации.
Первый шаг – создание пути, где будут храниться готовые ключи. Директория располагается здесь:
Туда необходимо перенести скрипты для генерации сертификатов и ключей.
Чтобы упростить дальнейшее использование OpenVPN, вносятся определенные изменения в скрипты, генерирующие ключи. Это поможет оптимизировать работу и не дублировать ввод значений несколько раз. Чтобы изменить скрипт, необходимо внести правки в файл vars, расположенный здесь:
Найдите поля, начинающиеся с KEY_ , туда будет вноситься информация о компании. Обязательно необходимо заполнить строки KEY_NAME и KEY_CN.
В первом параметре необходимо вписать значение server. Это делается для того, чтобы не пришлось менять все файлы конфигурации, где есть упоминания server.key и server.crt.
Во втором параметре нужно вписать имя домена.
В прочие строки KEY_ по желанию вносится дополнительная информация. Ниже приведены примеры, при редактировании их нужно заменить на данные вашей компании.
Если определить версию программы невозможно, то могут возникать сбои в загрузке SSL. Чтобы исключить риск возникновения подобной проблемы, нужно скопировать приведенные ниже данные и стереть номер версии из его названия.
Переходите в директорию easy-rsa, где необходимо ввести «source» для создания новых ключей и сертификатов.
Иные данные, лежащие в директории, необходимо удалить.
Внесите данные об организации, которой принадлежит сертификат.
Далее следует этап генерации ключей и сертификатов. Так как все необходимые изменения уже были внесены, то на вопросы системы можно нажимать Enter , то есть далее. В конце необходимо нажать «ДА» («Y»), чтобы сохранить изменения.
Далее необходимо создать файл обмена по криптографическому протоколу Диффи-Хеллмана, сгенерировав дополнительный ключ.
Сгенерируем вспомогательный ключ ta.key
Созданные данные должны быть скопированы в папку OpenVPN.
Для того, чтобы клиентские приложения могли устанавливать связь с сервером, необходимы ключи и сертификаты. Для каждого конкретного приложения создается уникальный ключ со своим именем. Ниже описан процесс для одного клиента.
3: Генерирование ключей и сертификатов
Для создания ключей и сертификатов Easy RSA использует набор сценариев, которые устанавливаются вместе с программой. Чтобы избежать повторной настройки при создании каждого сертификата, вы определить в Easy RSA значения по умолчанию, которые будут использоваться в полях сертификата (включая страну, город и адрес электронной почты).
Для начала создайте каталог для хранения ключей и сертификатов.
По умолчанию переменные сертификатов хранятся в файле vars в каталоге /etc/openvpn/easy-rsa:
Перейдите в конец файла и измените значения, начинающиеся с export KEY_, в них нужно указать ваши данные. Наиболее важными из них являются:
- KEY_CN: введите домен или поддомен, который разрешается на ваш сервер.
- KEY_NAME: введите сюда server. Если вы введете другое имя, вам придется обновлять файлы конфигурации, которые ссылаются на server.key и server.crt.
Также в файле есть другие переменные, которые вы захотите поменять:
- KEY_COUNTRY: введите двухбуквенную аббревиатуру страны проживания.
- KEY_PROVINCE: штат/область/регион.
- KEY_CITY: город.
- KEY_ORG: название вашей организации.
- KEY_EMAIL: электронная почта, которая будет привязана к сертификату.
- KEY_OU: Organizational Unit – название команды и отдела, для которого предназначен сертификат.
Остальные переменные можно просто проигнорировать. После редактирования файл выглядит так:
Сохраните и закройте файл.
Чтобы сгенерировать ключи и сертификаты, перейдите в каталог easy-rsa и запустите source, чтобы использовать новые переменные, заданные в файле vars:
Запустите скрипт Easy RSA clean-all для удаления всех ключей и сертификатов, которые уже есть в папке:
Затем создайте центр сертификации с помощью скрипта build-ca. Вам будет предложено заполнить поля сертификата, но если вы ранее установили параметры в файле vars, все ваши параметры уже будут установлены по умолчанию. Вы можете нажать Enter, чтобы принять значения по умолчанию для каждого параметра:
Этот скрипт сгенерирует файл ca.key. Это закрытый ключ, используемый для подписания сертификатов сервера и клиентов. Если вы потеряете его, вы больше не сможете доверять сертификатам этого ЦС; если злоумышленник сможет получить доступ к этому файлу, он сможет подписывать новые сертификаты и получит доступ к VPN без вашего ведома. По этой причине OpenVPN рекомендует хранить ca.key в расположении оффлайн (его следует активировать только при создании новых сертификатов).
Теперь создайте ключ и сертификат сервера с помощью сценария build-key-server:
Как и при создании CA, вы увидите значения по умолчанию, которые можно принять, просто нажав Ввод. Кроме того, вам будет предложено ввести пароль и опционально название компании. Если вы введете пароль для ключей и сертификатов, его будут запрашивать у клиента при подключении к VPN. Если вы не хотите устанавливать такой пароль, просто оставьте эту строку пустой и нажмите Enter и Y, чтобы зафиксировать изменения.
Теперь нужно сгенерировать ключ Диффи-Хеллмана.
Эта процедура займет несколько минут.
Теперь скопируйте ключи и сертификаты сервера в каталог openvpn:
Каждому клиенту также потребуется сертификат, чтобы сервер OpenVPN мог проверить их подлинность. Эти ключи и сертификаты нужно создать на сервере, а затем скопировать их на клиенты. Рекомендуется использовать индивидуальные ключи и сертификаты для каждого клиента, которого вы собираетесь подключить к VPN.
Скопируйте версированный файл конфигурации OpenSSL, openssl-1.0.0.cnf, в файл openssl.cnf, убрав версию. В противном случае может произойти ошибка: OpenSSL не сможет загрузить конфигурацию, поскольку не сможет обнаружить ее версию:
Step 2: Install Easy RSA
The next step is to build a Public Key Infrastructure (PKI). To do this, you need to install easy RSA, a CLI utility for creating and managing a PKI Certificate Authority (CA).
Easy RSA helps you set up an internal certificate authority (CA) and generate SSL key pairs to secure the VPN connections.
1. To download the easy RSA package, use the command. If you don’t have wget on your CenOS system, install it by running:
2. At the time of writing, the latest version of the CLI utility is 3.0.8, which we will download. To use another version, check out easy RSA’s release page on GitHub.
3. Next, extract the downloaded archive:
4. Create and move into a new openvpn directory:
5. Then, create a subdirectory under the path :
6. Move the extracted directory into /etc/openvpn/easy-rsa:
To check whether you have successfully moved everything from the easy-rsa-3.0.8 directory, move into easy-rsa with and list the content with . You should see a list of files and folders, as in the image below.
Настройка openvpn client в windows
Теперь рассмотрим вариант подключения к нашей логической сети удаленного сотрудника с рабочей станцией windows. Допустим, мы объединили наши офисы в единую сеть, доступ работает в обе стороны. Нам необходимо, чтобы удаленный пользователь смог подключиться либо к обоим сетям, либо выборочно только к основному офису, либо только к филиалу.
Первым делом идем на сервер и создаем для клиента сертификаты.
# cd /etc/openvpn/keys/easy-rsa-master/easyrsa3 # ./easyrsa gen-req user1 nopass # ./easyrsa sign-req client user1
Процедура такая же, как и при создании первого сертификата клиента, который мы уже сгенерировали ранее. На выходе имеем два файла: user1.key и user1.crt. Добавляем сюда ключ ca.crt и передаем пользователю на компьютер.
Дальше создаем файл конфигурации для этого клиента:
# cd /etc/openvpn/ccd # mcedit user1 push "route 192.168.10.0 255.255.255.0" push "route 192.168.20.0 255.255.255.0"
Этими параметрами мы передаем клиенту маршруты к обоим сетям офисов. Если нужно подключать клиента только к какой-то одной сети, то оставляйте одну сеть, вторую удаляйте.
Теперь нужно скачать openvpn client под нашу версию windows. Ссылки для скачивания я давал в самом начале статьи. Дальше выполняем установку клиента
Обращаю внимание, что запускать установщик нужно обязательно с правами администратора:
Приступаем к настройке клиента в windows. Для этого нам понадобится файл конфигурации
Можно взять уже готовый config, который мы создавали ранее и немного изменить его. Файл конфигурации openvpn клиента должен выглядеть вот так:
dev tun proto udp remote 192.168.1.25 port 13555 client resolv-retry infinite ca ca.crt cert user1.crt key user1.key persist-key persist-tun comp-lzo
У нас нет задачи видеть сеть за клиентом, да и он скорее всего не будет являться шлюзом, поэтому параметра route в конфиге нет. Плюс убраны пути для логов — openvpn будет создавать их в папке по-умолчанию
Сохраняем конфигурацию под именем openvpn.ovpn в папку C:\Program Files\OpenVPN\config, туда же копируем файлы сертификатов и запускаем OpenVPN GUI от имени администратора!
Это важно, без прав администратора openvpn client для правильной маршрутизации не сможет прописать необходимые маршруты.
Ищем серый мониторчик в трее, нажимаем правой кнопкой мыши на него и выбираем «Подключиться».
Во время подключения мониторчик будут гореть желтым цветом. Как только подключение будет установлено, цвет сменится на зеленый
Это означает, что openvpn клиент успешно создал туннель и можно начинать работать по vpn.
Для того, чтобы openvpn client автоматически подключался при запуске, нужно создать для него ярлык с параметрами:
--connect "openvpn.ovpn"
Для этого выбираем ярлык на рабочем столе OpenVPN GUI, выбираем его и нажимаем правой кнопкой мыши, открываем «Свойства». На вкладке «Ярлык» в поле «Объект» в самом конце дописываем указанные параметры. Вся строка должна выглядеть следующим образом:
"C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --connect "openvpn.ovpn"
Теперь при запуске ярлыка openvpn будет автоматически подключаться к серверу и устанавливать vpn соединение.
Мы подключились к корпоративной vpn сети, объединяющую 2 офиса. Давайте попробуем получить доступ к компьютерам внутри этой сети. Пингуем все машины из нашей схемы:
192.168.10.1 | 192.168.10.50 | 192.168.20.1 | 192.168.20.50 |
Отлично, связь есть. Теперь попробуем зайти на сетевой ресурс, который мы создали ранее на компьютере сети филиала PC2:
2: Настройка OpenVPN
Как и многие другие широко используемые инструменты с открытым исходным кодом, OpenVPN предлагает десятки вариантов конфигурации. В этом разделе вы найдете инструкции по созданию базовой конфигурации сервера OpenVPN.
OpenVPN содержит несколько образцов конфигурационных файлов в каталоге документации. Сначала скопируйте образец файла server.conf – его вы сможете использовать для создания собственного файла.
Откройте новый файл с помощью текстового редактора. Чтобы установить nano, введите такую команду:
Найдите раздел redirect-gateway и удалите точку с запятой в начале строки redirect-gateway, чтобы раскомментировать ее. Это позволит клиенту перенаправить свой трафик через сервер OpenVPN. Имейте в виду, что включение этой функции может вызвать проблемы с подключением к другим сетевым сервисам, например SSH:
Поскольку ваш клиент не сможет использовать DNS-серверы по умолчанию, предоставленные интернет-провайдером (так как его трафик будет перенаправлен), вам нужно указать, какие DNS-серверы он может использовать для подключения к OpenVPN. Вы можете выбрать любые DNS-серверы, а в мануале мы будем использовать общедоступные DNS-серверы Google (их IP-адреса 8.8.8.8 и 8.8.4.4).
Раскомментируйте обе строки push “dhcp-option DNS …” и обновите IP-адреса в них:
Чтобы OpenVPN запускался без каких-либо привилегий, раскомментируйте строки:
Затем раскомментируйте строку topology subnet . Она вместе со строкой server 10.8.0.0 255.255.255.0 настраивает установку OpenVPN для работы в качестве подсети и сообщает клиентской машине, какой IP-адрес она должна использовать. В этом случае сервер будет 10.8.0.1, а первый клиент станет 10.8.0.2.
Также рекомендуется добавить в конфигурационный файл сервера следующую строку. Она подтверждает, что все входящие клиентские сертификаты действительно поступают от клиента, что упрощает настройку безопасности (об этом немного позже):
OpenVPN настоятельно рекомендует пользователям включить аутентификацию TLS, криптографический протокол, обеспечивающий безопасную связь через компьютерную сеть. Для этого нужно будет создать статический ключ шифрования (в этом примере он называется myvpn.tlsauth, но вы можете выбрать любое имя). Перед созданием этого ключа закомментируйте строку tls-auth ta.key 0, добавив точку с запятой. Затем добавьте tls-crypt myvpn.tlsauth в строку ниже:
Сохраните и закройте файл OpenVPN, а затем сгенерируйте статический ключ шифрования с помощью следующей команды:
Теперь сервер настроен, и вы можете перейти к настройке ключей SSL и сертификатов, необходимых для безопасного подключения к VPN-соединению.
Конфигурация клиента OpenVPN на Android с TLS авторизацией
В текущем разделе мы уделим внимание примеру конфигурации клиента OpenVPN на Android и рассмотрим какие файлы,ключи,сертификаты нам понадобятся для реализации защищенной, зашифрованной VPN сети на Android средствами TLS авторизации на сервере OpenVPN. Как оговаривалось ранее, мы будем строить зашифрованную и защищенную сеть на базе TLS авторизации и с участием сервера сертификации
Прежде чем браться за настройку клиентской части VPN сети на Android с авторизацией по протоколу TLS, необходимо разобраться, какие файлы,ключи и сертификаты нам понадобятся.
Базовый набор файлов для OpenVPN клиента на Android:
- client.key — закрытый ключ шифрования клиента, выданный центром сертификации.
- client.crt — сертификат клиента, подписанный центром сертификации.
- ca.crt — сертификат центра сертификации с открытым ключем.
- client.ovpn — файл конфигурации OpenVPN клиента для Android.
После того, как мы с вами ознакомились с основным, базовым наборов необходимых файлов, ключей и сертификатов, плавно переходим к базовой конфигурации инициализации VPN клиента на Android. Интересующий нас файл имеет расширение .ovpn. Имя файла конфигурации может быть любым, например client.ovpn.
Базовая конфигурация клиентского файла client.ovpn:
На данном этапе мы разобрались с базовым минимальным набором файлов, базовой конфигурации OpenVPN клиента на Android с TLS авторизацией на сервере. Данные теоретические знания помогут вам в реализации специализированных задач по организации зашифрованных VPN сетей под ваши нужды.
Optional Commands
- To list all available configuration profiles, run this command: . Important: a configuration file typically contains generic options to be able to connect to a specific server, regardless of the device itself. OpenVPN 3 Linux also supports setting more host-specific settings on a configuration profile as well. This is handled via the `openvpn3 config-manage` interface. Any settings here will also be preserved across boots if the configuration profile was imported with the argument.
- Note that it is possible to use the D-Bus path to the configuration profile: . Note: in either of these cases is it necessary to have access to the configuration profile on disk. As long as configuration profiles are available via , all needed to start a VPN session should be present.
Настройка службы OpenVPN
Теперь, когда у вас есть сертификат сервера, подписанный вашим центром сертификации и переданный на сервер OpenVPN , пора настроить службу OpenVPN.
Мы будем использовать образец файла конфигурации, поставляемый с установочным пакетом OpenVPN, в качестве отправной точки, а затем добавим в него наши собственные параметры конфигурации.
Начните с извлечения файла конфигурации в каталог :
Откройте файл в любимом текстовом редакторе:
-
Найдите директивы параметров Certificate, Key и DH и измените имена файлов:
/etc/openvpn/server1.conf
-
Чтобы перенаправить трафик клиентов через VPN, найдите и раскомментируйте параметры и :
/etc/openvpn/server1.conf
По умолчанию используются распознаватели OpenDNS. Вы можете изменить его и использовать CloudFlare, Google или любые другие преобразователи DNS, которые захотите.
-
Найдите директивы и и раскомментируйте эти настройки, удалив символ « ”В начале каждой строки:
/etc/openvpn/server1.conf
-
Добавьте следующую строку в конец файла. Эта директива изменит алгоритм аутентификации сообщений (HMAC) с SHA1 на SHA256.
/etc/openvpn/server1.conf
Как только вы закончите, конфигурационный файл сервера (без комментариев) должен выглядеть примерно так:
/etc/openvpn/server1.conf
Несколько конфигурационных файлов
Позволит держать несколько конфигураций для подключения к различным VPN-серверам. Между последними можно переключаться из клиентской программы.
Для Windows:
В каталоге config создаем для каждого сервера свою папку и помещаем в нее рабочие файлы (файл конфигурации, сертификаты и так далее). В каждой папке называем конфигурационные файлы ovpn своими именами (даже если файлы будут находиться в разных папках, но с одинаковыми именами, клиент OpenVPN будет воспринимать их как один конфиг).
Пример каталога config:
Пример файлов в одном из каталогов:
Теперь при подключении клиентом к можно выбрать конкретный VPN-сервер:
Для 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
Initial OpenVPN Configuration
First, install the OpenVPN package from EPEL:
yum install openvpn -y
OpenVPN ships with only a sample configuration, so we will copy the configuration file to its destination:
cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn
Now that we have the file in the proper location, open it for editing:
nano -w /etc/openvpn/server.conf
Our first change will be to uncomment the «push» parameter which causes traffic on our client systems to be routed through OpenVPN.
push "redirect-gateway def1 bypass-dhcp"
We’ll also want to change the section that immediately follows route DNS queries to Google’s Public DNS servers.
push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4"
In addition, to enhance security, make sure OpenVPN drops privileges after startup. Uncomment the relevant «user» and «group» lines.
user nobody group nobody