Некоторые пользователи заинтересованы в создании частной виртуальной сети между двумя компьютерами. Обеспечивается поставленная задача с помощью технологии VPN (Virtual Private Network). Реализовывается соединение через открытые или закрытые утилиты и программы. После успешной установки и настройки всех компонентов процедуру можно считать завершенной, а подключение — защищенным. Далее мы бы хотели детально обсудить осуществления рассмотренной технологии через клиент OpenVPN в операционной системе на базе ядра Linux.
Устанавливаем OpenVPN в Linux
Поскольку большинство юзеров используют дистрибутивы, основанные Ubuntu, сегодня инструкции будут базироваться именно на этих версиях. В других же случаях кардинальной разницы в инсталляции и конфигурации OpenVPN вы не заметите, разве что придется соблюдать синтаксис дистрибутива, о чем вы можете прочесть в официальной документации своей системы. Предлагаем ознакомиться со всем процессом пошагово, чтобы детально разобраться в каждом действии.
Обязательно следует учитывать, что функционирование OpenVPN происходит через два узла (компьютер или сервер), а значит это то, что установка и настройка касается всех участников подключения. Наше следующее руководство будет ориентировано как раз на работу с двумя источниками.
Шаг 1: Установка OpenVPN
Конечно, начать следует с добавления всех необходимых библиотек на компьютеры. Приготовьтесь к тому, что для выполнения поставленной задачи использоваться будет исключительно встроенный в ОС «Терминал».
- Откройте меню и запустите консоль. Сделать это можно также путем нажатия комбинации клавиш Ctrl + Alt + T.
- Пропишите команду
sudo apt install openvpn easy-rsa
для установки всех нужных репозиториев. После ввода нажмите на Enter. - Укажите пароль от учетной записи суперпользователя. Символы при наборе не отображаются в поле.
- Подтвердите добавление новых файлов, выбрав соответствующий вариант.
Переходите к следующему шагу только тогда, когда инсталляция будет произведена на обеих устройствах.
Шаг 2: Создание и настройка удостоверяющего центра
Центр спецификации отвечает за проверку открытых ключей и обеспечивает надежное шифрование. Создается он на том устройстве, к которому потом будут подключаться другие пользователи, поэтому откройте консоль на нужном ПК и выполните следующие действия:
- Первоочередно создается папка для хранения всех ключей. Вы можете расположить ее где угодно, но лучше подобрать надежное место. Используйте для этого команду
sudo mkdir /etc/openvpn/easy-rsa
, где /etc/openvpn/easy-rsa — место для создания директории. - Далее в эту папку требуется поместить скрипты дополнения easy-rsa, а делается это через
sudo cp -R /usr/share/easy-rsa /etc/openvpn/
. - В готовой директории создается удостоверяющий центр. Сначала перейдите в эту папку
cd /etc/openvpn/easy-rsa/
. - Затем вставьте в поле следующую команду:
sudo -i
# source ./vars
# ./clean-all
# ./build-ca
Пока серверный компьютер можно оставить в покое и переместиться к клиентским устройствам.
Шаг 3: Конфигурация клиентских сертификатов
Инструкцию, с которой вы будете ознакомлены ниже, потребуется провести на каждом клиентском компьютере, чтобы организовать корректно функционирующее защищенное соединение.
- Откройте консоль и напишите там команду
sudo cp -R /usr/share/easy-rsa /etc/openvpn/
, чтобы скопировать все требуемые скрипты инструмента. - Ранее на серверном ПК был создан отдельный файл с сертификатом. Теперь его нужно скопировать и поместить в папку с остальными компонентами. Проще всего это сделать через команду
sudo scp username@host:/etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn/easy-rsa/keys
, где username@host — адрес оборудования, с которого производится скачивание. - Осталось только создать личный секретный ключ, чтобы в дальнейшем через него осуществлялось соединение. Сделайте это, перейдя в папку хранения скриптов
cd /etc/openvpn/easy-rsa/
. - Для создания файла используйте команду:
sudo -i
# source ./vars
# build-req LumpicsLumpics в этом случае — заданное название файла. Созданный ключ в обязательном порядке должен находиться в одной и той же директории с остальными ключами.
- Осталось только отправить готовый ключ доступа на серверное устройство, чтобы подтвердить подлинность своего соединения. Делается это с помощью той же команды, через которую производилось скачивание. Вам нужно ввести
scp /etc/openvpn/easy-rsa/keys/Lumpics.csr username@host:~/
, где username@host — имя компьютера для отправки, а Lumpics.csr — название файла с ключом. - На серверном ПК подтвердите ключ через
./sign-req ~/Lumpics
, где Lumpics — название файла. После этого верните документ обратно черезsudo scp username@host:/home/Lumpics.crt /etc/openvpn/easy-rsa/keys
.
На этом все предварительные работы завершены, осталось только привести сам OpenVPN в нормальное состояние и можно начинать использовать частное шифрованное соединение с одним или несколькими клиентами.
Шаг 4: Настройка OpenVPN
Следующее руководство будет касаться и клиентской части, и серверной. Мы все разделим по действиям и предупредим об изменениях машин, поэтому вам остается только выполнить приведенную инструкцию.
- Сначала создайте файл конфигурации на серверном ПК с помощью команды
zcat /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf
. При конфигурации клиентских устройств этот файл также придется создавать отдельно. - Ознакомьтесь со стандартными значениями. Как видите, порт и протокол совпадает со стандартными, однако отсутствуют дополнительные параметры.
- Запустите созданный конфигурационный файл через редактор
sudo nano /etc/openvpn/server.conf
. - Мы не будем вдаваться в подробности изменения всех значений, поскольку в некоторых случаях они индивидуальны, но стандартные строки в файле должны присутствовать, а выглядит подобная картина так:
port 1194
proto udp
comp-lzo
dev tun
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/ca.crt
dh /etc/openvpn/easy-rsa/2.0/keys/dh2048.pem
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txtПосле завершения всех изменений сохраните настройки и закройте файл.
- Работа с серверной частью завершена. Запустите OpenVPN через созданный конфигурационный файл
openvpn /etc/openvpn/server.conf
. - Теперь приступим к клиентским устройствам. Как уже было сказано, здесь тоже создается файл настроек, но на этот раз он не распаковывается, поэтому команда имеет следующий вид:
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client.conf
. - Запустите файл таким же образом, как это было показано выше и внесите туда следующие строки:
client
.
dev tun
proto udp
remote 194.67.215.125 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/Sergiy.crt
key /etc/openvpn/easy-rsa/keys/Sergiy.key
tls-auth ta.key 1
comp-lzo
verb 3По завершении редактирования запустите OpenVPN:
openvpn /etc/openvpn/client.conf
. - Пропишите команду
ifconfig
, чтобы удостовериться в работе системы. Среди всех показанных значений обязательно должен присутствовать интерфейс tun0.
Для перенаправления трафика и открытия доступа к интернету для всех клиентов на серверном ПК вам потребуется поочередно активировать указанные ниже команды.
sysctl -w net.ipv4.ip_forward=1
iptables -A INPUT -p udp --dport 1194 -j ACCEPT
iptables -I FORWARD -i tun0 -o eth0 -j ACCEPT
iptables -I FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
В рамках сегодняшней статьи вы были ознакомлены с процедурой инсталляции и настройки OpenVPN на серверной и клиентской части. Советуем обращать внимание на уведомления, показанные в «Терминале» и изучать коды ошибок, если такие появляются. Подобные действия помогут избежать дальнейших проблем с подключением, ведь оперативное решение проблемы предотвращает появление других вытекающих неполадок.

Отблагодарите автора, поделитесь статьей в социальных сетях.

ввожу «source ./vars»
пишет нет такого файла или каталога
иду в /etc/openvpn/easy-rsa/ там все есть
что не так?
Здравствуйте, Кенши. Вы уверены в том, что выполняете команду source ./vars, находясь именно в каталоге /etc/openvpn/easy-rsa/ путем последовательного ввода всех команд, которые указаны в этом шаге?
:/etc/openvpn/easy-rsa# source ./vars
**************************************************************
No /etc/openvpn/easy-rsa/openssl.cnf file could be found
Further invocations will fail
**************************************************************
NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys