Purpose of this troubleshooting page
This page is specifically about attempting to find and resolve problems with an OpenVPN client program failing to connect to an OpenVPN Access Server. It does not deal with problems in reaching a target system over the established VPN tunnel once the VPN tunnel is already working. That is handled in a separate page: troubleshooting reaching systems over the VPN tunnel.
So if for example you start the OpenVPN client connection and it issues an error and disconnects you, then the information here should help you in determining a possible cause and solution. If not, reach out to us on the support ticket system and provide as much detail as you can.
Step 4: Generate Keys and Certificates
1. Create a vars configuration file using vars.example stored in the /easy-rsa/easyrsa3 directory. Move into the mentioned directory with:
2. You can list the contents using the command to check whether you have the vars.example file.
3. Copy the sample file vars.example under the name vars:
If you list the files in the directory again, you should have a separate vars file that you can use to configure Easy RSA.
4. Open the vars file in a text editor of your choice:
5. Scroll through the file and find the lines listed below.
6. Uncomment the lines by removing and replace the default values with your information.
7. Then, find the line specifying the KEY_NAME and change it to :
8. Finally, change KEY_CN to the domain or subdomain that resolves to your server.
9. Save and close the file.
10. Clean up any previous keys and generate the certificate authority:
11. Now, you can move on to building the certificate authority with the script. Run the command:
You will be asked to set a CA Key Passphrase and a common name for your CA.
Note: To skip password authentication each time you sign your certificates, you can use the command.
12. Create a key and certificate for the server:
13. Next, generate a Diffie-Hellman key exchange file by running:
14. You also need a certificate for each client. Generate them on the server and then copy them on the client machine.
With the following command, we create a certificate and key for client1. You can modify the command by using a name of your choice.
15. Once you have generated the keys and certificates, copy them from pki into the openvpn directory. To do so, navigate to the pki directory by running:
You need to copy four files in total:
- ca.crt
- dh.pem
- ca.key
- server.key
The first two files (ca.crt and dh.pem) are stored in the pki directory, while ca.key and server.key are in a subdirectory pki/private.
Therefore, copy ca.crt and dh.pem into the openvpn directory first:
Then, move into the subdirectory private, and copy ca.key and server.key by running:
Установка 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="[email protected]" 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 клиентского сертификата.
Отвечаем на вопросы точно так же как и на предыдущем рисунке:
Установка Confluence на RedHat/CentOS/Fedora
Atlassian Confluence — тиражируемая вики-система для внутреннего использования организациями, занимающимися проектами по разработке ПО и которая написана на Java.
Разрабатывается компанией Atlassian, распространяется под проприетарной лицензией, бесплатна для некоммерческих организаций и открытых проектов.
Сейчас я расскажу в «Установка Confluence на RedHat/CentOS/Fedora » как настроить эту систему на CentOS, RedHat или Fedora.
Установка Confluence на RedHat,CentOS,Fedora
Я, на момент написание своей статьи, использовал самую последнюю версию и по этому, если вы используете:
— CentOS, RedHat или Fedora 32 бит, выполните команду:
# cd /usr/local/src # wget http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-5.5.4-x32.bin
— CentOS, RedHat или Fedora 64 бит, выполните команду:
# cd /usr/local/src # wget http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-5.5.4-x64.bin
2. Установка программы.
Я использую 32-битную версию утилиты, по этому я выполняю (но с самого начала нужно поменять права):
# chmod 775 atlassian-confluence-5.5.4-x32.bin # ./atlassian-confluence-5.5.4-x32.bin
Если появится вот такой ерор:
/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
Фиксим его очень легко (для 32бит ОС), но я не проверял, у меня 64 бит:
# sudo yum install glibc.i386
Для 64 бит, я использовал:
# sudo yum install glibc
Установка Confluence
Я устанавливал со стандартными настройками. А вы смотрите сами, просто не вижу смысла использовать другие. После ввода цифры «1», нажимаем «Enter» для продолжения установки. Установка займет пару минут времени.
3. Настройка Confluence.
HTTP Port: 8090
RMI Port: 8000
настройка Confluence, начальное меню
Нам предлагают выбрать:
1. Запустить пробную версию программы, нажав на «Start trial»;
2. Запустить настройку программы если имеется ключ, нажав на «Start setup»
У меня нет ключа, и я устанавливаю чтобы поглядеть что это такое, по этому я выбираю 1-й пункт. После чего попадаем на следующий этап, нас просят выбрать если ли у нас аккаунт ( если есть то нажимаем на нужный пункт), а если нету ( как у меня) я выбрал что нету и ввел всю необходимую информацию в поля. Можно настроить группы и пользователей, выбрав пункт и настроив под себя. Я не описываю т.к и так это понятно. Можно еще связать программу с JIRA. Я этого не делал, не было нужды.
На этом я завершаю свою тему «Установка Confluence на RedHat/CentOS/Fedora » на своем сайте http://linux-notes.org
Какие серверы предлагает OpenVPN?
Так как режим OpenVPN полностью отличается от других известных нам VPN, нормально, что он имеет совершенно другую службу сервера, чем та, которую мы обычно знаем.
В случае OpenVPN, это не программа, которая напрямую управляется серверами разных типов, напротив, она реализует уровни, которые находятся на разных уровнях модели OSI в сети. Среди них:
1. Уровень 2: Связывание
Технология, используемая для этого слоя, позволяет туннелировать любой тип упаковки. Во многих случаях его можно стабилизировать с помощью виртуальных устройств PPP5, установив хорошее соединение.
Вот некоторые примеры:
- PPTP: Это разработано Microsoft, и имеет PPP соединение, хотя при недостатке позволяет только туннель между парами.
- L2F: Разработанная Cisco совместно с другими производителями, теперь она может считаться отраслевым стандартом.
- L2TP: также используемый Cisco, он сочетает в себе различные типы слоев для обеспечения идеальной производительности.
2. Уровень 3: Сеть
На данный момент это одна из наиболее принятых технологий в OpenVPN и подобных ей. Задуманная в первую очередь как стандарт интернет-безопасности, она использует свою работу для инкапсуляции любого сетевого трафика.
Этот слой использует 2 различных метода для правильного функционирования:
- Туннельный режим: в этом режиме все IP-пакеты инкапсулируются в новый пакет и отправляются на распаковку на другом конце, а затем направляются конечному получателю.
- Транспортный режим: это та часть, где находится полезная нагрузка в секции, где находятся зашифрованные и инкапсулированные данные.
Настройка клиента
На сервере
На сервере генерируем сертификат для клиента. Для этого сначала чистим файл index.txt в папке C:\Program Files\OpenVPN\easy-rsa\keys.
Затем запускаем командную строку от имени администратора:
Переходим в каталог easy-rsa:
cd %ProgramFiles%\OpenVPN\easy-rsa
Далее наши действия зависят от версии RSA.
а) Создание сертификатов с RSA 3
Запускаем команду:
EasyRSA-Start.bat
Мы окажемся в среде EasyRSA Shell.
Создаем клиентский сертификат:
./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1
Мы должны увидеть запрос на подтверждение намерения выпустить сертификат — вводим yes:
Confirm request details: yes
* в данном примере будет создан сертификат для client1.
После вводим пароль, который указывали при создании корневого сертификата.
Теперь из папки pki копируем файлы:
- issued/client1.crt
- private/client1.key
- ca.crt
- dh.pem
- ta.key
… и переносим их на клиентский компьютер.
б) Создание сертификатов с RSA 2
Запускаем vars.bat:
vars.bat
И генерируем сертификат первого пользователя:
build-key.bat client1
* на все запросы наживаем Enter, кроме Common Name — в данном поле вводим имя клиента (в нашем случае, просто client1). В конце подтверждаем введенную информацию — y.
** На каждого клиента нужно сгенерировать свой сертификат, в противном случае, им будет присваиваться один и тот же IP-адрес, что будет приводить к конфликту.
Получиться, что-то на подобие:
По умолчанию, для Common Name будет подставляться значение из vars.bat — но с ним сертификат не будет создаваться. Необходимо при создании каждого ключа подставлять значение, равное имени сертификата. Например, как выше — подставлено client1.
Теперь из папки keys копируем файлы:
- client1.crt
- client1.key
- ca.crt
- dh.pem
… и переносим их на клиентский компьютер.
На клиенте
Заходим на официальную страницу загрузки openvpn и скачиваем клиента для Windows:
* по сути, это тот же файл, который скачивался для сервера.
Запускаем скачанный файл и устанавливаем программу, нажимая «Далее».
Переходим в папку C:\Program Files\OpenVPN\config. И копируем в нее сертификаты, которые перенесли с сервера.
Теперь открываем блокнот от имени администратора и вставляем следующие строки:
client
resolv-retry infinite
nobind
remote 192.168.0.15 443
proto udp
dev tun
compress
ncp-disable
fast-io
cipher AES-256-CBC
ca ca.crt
cert client1.crt
key client1.key
dh dh.pem
float
keepalive 10 120
persist-key
persist-tun
verb 0
* где 192.168.0.15 443 — IP-адрес OpenVPN-сервера и порт, на котором он принимает запросы. Для боевой среды это будет внешний адрес.
Сохраняем файл с именем config.ovpn в папке C:\Program Files\OpenVPN\config.
Запускаем с рабочего стола программу «OpenVPN GUI» от имени администратора (это важно). Нажимаем правой кнопкой по появившемуся в трее значку и выбираем «Подключиться»:
Нажимаем правой кнопкой по появившемуся в трее значку и выбираем «Подключиться»:
Произойдет подключение и значок поменяет цвет с серого/желтого на зеленый.
Installation for Fedora, Red Hat Enterprise Linux, CentOS, or Scientific Linux
Packages for these distributions are provided via a Fedora Copr repository. Supported versions:
Distribution | Release versions |
---|---|
Fedora | 30, 31, 32 |
Red Hat Enterprise Linux / CentOS | 7, 8 |
In order to install the OpenVPN 3 Client for Fedora, Red Hat Enterprise Linux, CentOS, or Scientific Linux, follow the steps below:
- Open Terminal by typing terminal into the search bar
- If you are running Red Hat Enterprise Linux or its clones, you need to install the Fedora EPEL repository first. Here is the list of commands for each version:(The original article on Fedora EPEL can be found here)RHEL/CentOS 6: RHEL/CentOS 7: On RHEL 7 it is recommended to also enable the optional, extras, and HA repositories since EPEL packages may depend on packages from these repositories: RHEL/CentOS 8: On RHEL 8 it is required to also enable the On CentOS 8 it is recommended to also enable the PowerTools repository since EPEL packages may depend on packages from it:
- You need to install the yum copr module first by running the following command: . Note: Fedora releases usually have the yum/dnf copr module preinstalled.
- With the Copr module available, it is time to enable the OpenVPN 3 Copr repository by running the following command:
- Finally, the OpenVPN 3 Linux client can be installed by running the following command:
Подготовка системы
Обновляем установленные пакеты:
yum update
Установим правильную временную зону:
timedatectl set-timezone Europe/Moscow
* в данном примере московское время.
Устанавливаем сервис для синхронизации времени:
yum install chrony
Разрешаем автозапуск службы chrony и запускаем ее:
systemctl enable chronyd —now
Отключаем Selinux:
setenforce 0
Чтобы Selinux не включился после перезагрузки, откроем данный файл:
vi /etc/selinux/config
И отредактируем строчку SELINUX=enforcing на:
SELINUX=disabled
Создаем правило для firewalld:
firewall-cmd —permanent —add-port=443/udp
* в данной инструкции мы настроим работу OpenVPN на порту 443 по UDP (по умолчанию, это 1194/UDP). Если в вашем случае необходим другие порт и протокол, меняем значения на соответствующие.
… и применяем его:
firewall-cmd —reload
* если используется iptables, правило создаем командой iptables -I 1 INPUT -p udp —dport 443 -j ACCEPT, где 443 — порт, который мы будем использовать для openvpn.
Возможные проблемы при работе с OpenVPN
Диагностировать большинство возникающих ошибок можно с помощью опции verb в конфигах клиента и сервера. В примерах выше значение данного параметра выставлялась в 0 — могут быть такие варианты:
- 0 — покажет только фатальные ошибки.
- 4 — вывод предупреждений, ошибок и важных сообщений.
- 5, 6 — подробный вывод ошибок. Удобно для решения проблем.
- 9 — подробный вывод всех сообщений.
Ниже приведены наиболее часто возникающие проблемы и способы их решения.
1. no package openvpn available
Описание: при попытке установить сервер, получаем ошибку.
Причина: не настроен репозиторий для данного пакета.
Решение: устанавливаем EPEL репозиторий:
yum install epel-release
2. failed to start openvpn robust and highly flexible tunneling application on server
Описание: при запуске сервера получаем данную ошибку.
Причина: как правило, связано с отсутствием сертификата.
Решение: открываем лог /var/log/openvpn/openvpn.log и смотрим, с каким сертификатом проблема. Проверяем, что все файлы скопированы и что мы не забыли сгенерировать все сертификаты.
3. Постоянно разрывается соединение
Описание: с периодичностью от 1 до 5 минут постоянно рвется соединение с сервером. После нескольких минут переподключается.
Причина: как правило, конфликт IP-адресов. Такая ситуация возникает при случаях, когда подключение выполняется с нескольких компьютеров одновременно с одинаковыми сертификатами.
Решение:
Способ 1. Настройте клиента для подключения к серверу с уникальными сертификатами. Для каждого подключения генерируем свои ключи. Рекомендуется использовать именно этот способ.
Способ 2. Можно настроить сервер openVPN для выдачи различных IP-адресов, независимо от сертификата. Для этого открываем конфигурационный файл:
vi /etc/openvpn/server.conf
… и добавляем:
…
duplicate-cn
Перезапускаем сервис:
systemctl restart openvpn@server
Настройка сервера
Переходим в папку C:\Program Files\OpenVPN\config-auto (или для старой версии C:\Program Files\OpenVPN\config) и создаем файл server.ovpn. Открываем его на редактирование и приводим к следующему виду:
port 443
proto udp
dev tun
dev-node «VPN Server»
dh «C:\\Program Files\\OpenVPN\\ssl\\dh.pem»
ca «C:\\Program Files\\OpenVPN\\ssl\\ca.crt»
cert «C:\\Program Files\\OpenVPN\\ssl\\cert.crt»
key «C:\\Program Files\\OpenVPN\\ssl\\cert.key»
server 172.16.10.0 255.255.255.0
max-clients 32
keepalive 10 120
client-to-client
compress
ncp-disable
fast-io
cipher AES-256-CBC
persist-key
persist-tun
status «C:\\Program Files\\OpenVPN\\log\\status.log»
log «C:\\Program Files\\OpenVPN\\log\\openvpn.log»
verb 4
mute 20
* где port — сетевой порт (443 позволит избежать проблем при использовании Интернета в общественных местах, но может быть любым из свободных, например 1194, занятые порты в Windows можно посмотреть командой netstat -a); dev-node — название сетевого интерфейса; server — подсеть, в которой будут работать как сам сервер, так и подключенные к нему клиенты.
** так как в некоторых путях есть пробелы, параметр заносится в кавычках.
*** при использовании другого порта необходимо проверить, что он открыт в брандмауэре или на время тестирования отключить его.
В сетевых подключениях Windows открываем управление адаптерами — TAP-адаптер переименовываем в «VPN Server» (как у нас указано в конфигурационном файле, разделе dev-node):
Теперь открываем службы Windows и находим «OpenVpnService». Открываем ее, настраиваем на автозапуск и включаем:
Ранее переименованный сетевой интерфейс должен включиться:
VPN-сервер работает. Проверьте, что сетевой адаптер VPN Server получил IP 172.16.10.1. Если он получает что-то, на подобие, 169.254…, выключаем сетевой адаптер — перезапускаем службу OpenVpnService и снова включаем сетевой адаптер.
Как установить OpenVPN для безопасного серфинга
С другой стороны, скачать и установить OpenVPN предприятие также довольно просто по сравнению с другими VPN. Независимо от того, предназначена ли она для мобильных устройств или для использования с компьютера, вам просто необходимо выполнить следующие шаги:
- Выберите один из пакетов и продолжайте шаги, предложенные во время процедуры.
- Затем вы должны зарегистрироваться на сайте OpenVPN.
- Нажмите на значок, соответствующий операционной системе, используемой вашим компьютером или мобильным устройством.
- Открывает загруженный в устройство файл .exe.
- Откройте программу OpenVPN, которая появляется на вашем экране, и нажмите на соответствующую гиперссылку.
- Вход с регистрационной информацией.
Дополнительные настройки
Рассмотрим отдельно некоторые настройки и возможности работы с FreeIPA.
SSH аутентификация через FreeIPA
По умолчанию, клиент конфигурируется на возможность входа по SSH с использованием пользователей из FreeIPA. Внесем некоторые изменения для удобства.
Открываем конфигурационный файл для pam:
vi /etc/pam.d/common-session
Добавим в конец одну строку:
…
session required pam_mkhomedir.so skel=/etc/skel umask=0022
* данная настройка укажет на необходимость автоматического создания домашней директории для пользователя.
Готово.
Вывод клиента из домена
Если необходимо вывести клиентский компьютер из домена, вводим команду:
ipa-client-install —uninstall
Система выполнит необходимые настройки самостоятельно:
Unenrolling client from IPA server
Removing Kerberos service principals from /etc/krb5.keytab
Disabling client Kerberos and LDAP configurations
Redundant SSSD configuration file /etc/sssd/sssd.conf was moved to /etc/sssd/sssd.conf.deleted
Restoring client configuration files
Unconfiguring the NIS domain.
nscd daemon is not installed, skip configuration
nslcd daemon is not installed, skip configuration
Systemwide CA database updated.
Client uninstall complete.
The original nsswitch.conf configuration has been restored.
И отправляем компьютер в перезагрузку:
You may need to restart services or reboot the machine.
Do you want to reboot the machine? : yes
Аутентификация пользователей
Позволяет требовать от пользователя ввод логина и пароля при каждом подключении. Также идентификация каждого пользователя необходима для уникальной идентификации каждого из них и выдачи разных IP-адресов.
Настройка на сервере
Открываем конфигурационный файл openvpn:
vi /etc/openvpn/server.conf
И добавляем следующую строчку:
plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so login
* как путь, так и название файла openvpn-plugin-auth-pam.so могут отличаться. Это зависит от версии Linux и OpenVPN. Чтобы найти путь до нужного файла, можно воспользоваться командой find / -name «openvpn-*auth-pam*» -print.
Перезапускаем сервер:
systemctl restart openvpn@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).
Before you begin
Backup your settings.
To make a complete backup of your settings without stopping your server, use these . The information stored in Access Server (e.g.: server and client certificates) is unique and cannot be replaced. We recommend setting up automated backup task if you haven’t already done so.
Check server compatibility.
Compatibility of the current version of Access Server to past versions is very good. You can update as described here for versions all the way back to 1.7.1. If needed, Access Server does leave a copy of old data in this directory, whenever you upgrade: /usr/local/openvpn_as/etc/backup
Check client compatibility.
There may be some cases where older client software cannot connect to a modern Access server. To fix this, simply update to a more recent version of the client software. If that is not possible, you may lower the security requirements of the Access server. It may be that an upgraded Access Server has the minimum required TLS security level set to a higher version, causing an issue with older clients. You can change this for your server. Open the Admin Web UI, go to TLS Settings and set OpenVPN daemons to TLS 1.0.
Understand Amazon AWS tiered instance licensing.
If you have an Amazon AWS tiered instance, pre-licensed with “xx connected devices”, you don’t need to worry about licenses. It is taken care of internally by Amazon’s systems that handle licensing and billing. Simply upgrade the Access Server package itself.
Below you’ll find your different installation options. We recommend using the official OpenVPN Software Repository for upgrading.
Доступ клиентам друг к другу
Ранее мы настроили более безопасный сценарий подключения — туннели, которые не позволяют подключенным клиентам видеть друг друга. Но если мы хотим сделать так, чтобы все подключенные к VPN устройства видели друг друга по сети, нам нужно изменить некоторые настройки на сервере и клиенте.
Настройка сервера
Открываем файл настроек:
vi /etc/openvpn/server/server.conf
Добавляем строку:
client-to-client
* данная настройка как раз и говорит, что клиенты могут видеть друг друга через нашу сеть VPN.
Теперь находим настройку:
dev tun
… и меняем ее на:
dev tap
* туннели создают небольшие подсети на 4 адреса для каждого подключения, таким образом, изолируя клиентов друг от друга. Нам же нужно сделать так, чтобы клиенты были в одной сети VPN. Поэтому мы меняем тип интерфейса на tap.
Перезапускаем нашу службу сервиса:
systemctl restart openvpn-server@server
Настройка OpenVPN
Начните с копирования файлов в директорию OpenVPN. Скопировать нужно будет все файлы, которые позже понадобятся в конфигурационной директории /etc/openvpn.
Начать лучше с тех файлов, которые были созданы ранее (о них можно прочитать в предыдущей статье): они были помещены в директорию ~/openvpn-ca/keys. Конкретные файлы, которые нужно будет переместить: сертификат и ключ центра сертификации, сертификат сервера и ключ, а также подпись HMAC и файл протокола Диффи — Хеллмана. Используйте команды ниже:
$ cd ~/openvpn-ca/keys $ sudo cp ca.crt ca.key server.crt server.key ta.key dh2048.pem /etc/openvpn
Теперь необходимо скопировать и разархивировать пример конфигурационного файла OpenVPN в конфигурационную директорию. Нужно это для того, чтобы использовать этот пример как базу для последующих настроек. Выполните команду:
$ gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf
Переходим к настройке конфигурации OpenVPN. Для этого нужно открыть конфигурационный файл сервера:
$ sudo nano /etc/openvpn/server.conf
Базовая конфигурация
Вам нужно найти директиву tls-auth для того, чтобы, в свою очередь, найти секцию HMAC. Удалите знак точки с запятой (;) для того, чтобы раскомментировать строку tls-auth. А ниже добавьте параметр key-direction со значением 0:
tls-auth ta.key 0 # This file is secret key-direction 0
Следующая задача – найти секцию с криптографическим шифром, и для этого вам нужно найти закомментированные строки cipher. Шифр AES-128-CBC имеет хороший уровень защиты и отличную поддержку разными продуктами. Удалите точку с запятой для того, чтобы раскомментировать строку cipher AES-128-CBC:
cipher AES-128-CBC
Ниже добавьте строку auth для того, чтобы указать алгоритм хеширования HMAC. SHA256 прекрасно подойдет, т.к. в этом случае допускается использование ключей любого размера, а длина хеш-последовательности будет составлять 256 бит.
auth SHA256
Наконец, найдите настройки user и group и все так же удалите точку с запятой для того, чтобы раскомментировать их:
user nobody group nogroup
Как использовать VPN для всего трафика
Если вы хотите, чтобы для передачи всего трафика между двумя машинами по умолчанию использовался VPN, то вам нужно передать настройки DNS на клиентские компьютеры.
Надо раскомментировать несколько директив для того, чтобы клиентские машины по умолчанию перенаправляли весь трафик через VPN. Найдите секцию redirect-gateway и удалите знак точки с запятой:
push "redirect-gateway def1 bypass-dhcp"
Теперь найдите секцию dhcp-option и точно так же раскомментируйте обе строки:
push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220"
Теперь клиенты смогут настроить DNS так, чтобы VPN использовался в качестве канала по умолчанию.Как изменить порт и протокол
Это еще одна необязательная, но полезная настройка, которая может вам понадобиться. По умолчанию OpenVPN использует порт 1194 и UDP протокол для того, чтобы принимать клиентские соединения. Возможно, вам надо будет изменить порт, если вы столкнетесь с какими-нибудь ограничениями.
Сделать это можно в строке port в файле /etc/openvpn/server.conf. Например, вы можете изменить порт на 443, так как обычно он разрешен для использования большинством фаерволов.
# Optional! port 443
Если протокол, который вы используете, имеет ограничения по номеру порта, то в строке proto вам нужно изменить UDP на TCP:
# Optional! proto tcp
Однако если необходимости использовать какие-то другие порты и протоколы у вас нет, то лучше оставить те значения, которые идут по умолчанию.