Андрей Смирнов
Время чтения: ~20 мин.
Просмотров: 24

Установка и настройка OpenVPN в Linux

OpenVPN — открытая реализация одной из технологий VPN, предназначенная для организации защищенных виртуальных частных сетей между территориально удаленным локальными сетями, а также отдельными клиентами. Безопасность туннелей обеспечивается шифрованием с помощью OpenSSL.

Как работает OpenVPN?

По окончании настройки сервера и его запуске, он перейдет в режим готовности приема и перенаправления внешних защищенных SSL-соединений на виртуальный сетевой адаптер (tun/tap).

По желанию, маршрутизация сервера может быть настроена таким образом, чтобы Интернет-трафик клиентов проходил через сервер и становился трафиком сервера. В этом случае OpenVPN будет выполнять проксирование трафика (proxy).

Что требуется от операционной системы?

Перед установкой OpenVPN необходимо убедиться в корректности базовых параметров:

  1. У сервера есть хотя бы один “белый” статичный IP-адрес. Т.е. сервер должен быть доступен из сети Интернет. Если адрес динамический, но сервер все же остается быть доступным из глобальной сети — воспользуйтесь услугами DynDNS.

  2. Разрешена загрузка и установка пакетов из официальных репозиториев. Для проверки выполните cat /etc/apt/sources.list. Строки с указаниями репозиториев должны быть раскомментированы (не должно быть символа “#” решетка в начале строки).1.png

  3. Должны быть верно указаны параметры сети — hostname, параметры DNS-серверов.

Для обеспечения должного уровня безопасности, рекомендуем ознакомиться с нашими рекомендациями.

Приступаем к установке.

Все действия будем выполнять от пользователя root.

1. Обновляем информацию о репозиториях:

apt-get update

2. Устанавливаем текущие обновления системы и установленных программ:

apt-get upgrade

3. Устанавливаем OpenVPN:

apt-get install openvpn

2.png

Важно. В базовых репозиториях, зачастую отсутствует новейшая версия пакета. Разработчики OpenVPN ведут собственный репозиторий, о том как его настроить можно ознакомиться на официальном сайте.

4. Аналогичным образом устанавливаем пакет easy-rsa:

apt-get install easy-rsa

Действия после установки.

Размещаем скрипты easy-rsa:

cd /etc/openvpn/ && make-cadir easy-rsa

Подготавливаем публичные ключи (PKI — Public Key Infrastructure):

1. Переходим в директорию /etc/openvpn/easy-rsa:

cd /etc/openvpn/easy-rsa

2. Создаем символьную ссылку на файл конфигурации openssl:

ln -s openssl-1.0.0.cnf openssl.cnf

3. Инициализируем скрипт vars:

source ./vars

Система сообщит: NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys

4. Выполняем ./clean-all

3.png

5. Для создания центра сертификации выполняем скрипт:

./build-ca

В ходе своей работы, программа задаст несколько вопросов. Отвечать на них следует латиницей. Если вы не заполните какое-либо поле, программа подставит значения по умолчанию, обычно указанные в скобках.

4.png

Создаем ключ сервера.

Для создания ключа сервера выполним команду:

./build-key-server server

5.png

Следует обратить внимание, что процесс похож на генерацию сертификата центра сертификации, однако, перед подписанием сертификата программа задаст 2 уточняющих вопроса. Если все указано верно, отвечаем “y”.

Генерация клиентских ключей.

Аналогично генерации серверных ключей создаются и клиентские:

./build-key client1

Следует обратить внимание, что созданный client1.key не имеет парольной или криптографической защиты. Это может привести к тому, что любой пользователь завладевший файлом может попробовать подключиться к серверу. Если такая угроза существует, лучше генерировать ключи другим скриптом:

./build-key-pass client2

Скрипт запросит пароль ную фразу в самом начале. Далее процесс ничем не отличается от генерации ключей сервера и простого клиента.

6.png

Следует помнить, что имена ключей должны быть уникальными. Один пользователь — один ключ с уникальным именем.

Бывает так, что в процессе работы сервера, по прошествии некоторого времени, необходимо создать еще один или несколько сертификатов. Для этого потребуется повторно инициализировать скрипт vars и только потом запустить процесс генерации ключа:

cd /etc/openvpn/easy-rsa

source ./vars

./build-key client3

Генерация ключа Диффи-Хеллмана

Благодаря протоколу Диффи-Хеллмана, две и более стороны могут получить один секретный ключ, который позволит выстроить защищенный канал связи. Генерируются ключи командой:

./build-dh

Результат будет примерно таким.

7.png

По окончании работы программы, в директории /etc/openvpn/easy-rsa/keys/ появится файл dh2048.pem

Перемещение сертификатов и ключей

Сервер

Ключи и сертификаты созданы. Настало время раздать их пользователям, а серверные ключи скопировать в соответствующие каталоги на сервере.

1. Переходим в каталог с ключами:

cd /etc/openvpn/easy-rsa/keys

2. Копируем только необходимые серверу файлы:

cp ca.crt ca.key dh2048.pem server.crt server.key /etc/openvpn

Важно понимать, что перечисленные выше файлы являются основой работы и безопасности VPN сервера. Утеря или подмена этих файлов может иметь крайне негативные последствия. Важно хранить их в надежном месте и не передавать по открытым каналам связи.

Клиенты

Клиенту понадобится всего 3 файла ca.crt, client1.crt, client1.key. Каждому клиенту необходимо отдавать только его ключи. Данные файлы можно разместить в директории /etc/openvpn на машине клиента, если она под управлением Linux-подобной ОС.

В ОС Windows их следует разместить в пользовательский каталог.

Настройка сервера и клиента

Сервер

Большинство устанавливаемых программ в ОС Linux имеют так называемые sample-файлы. Эти файлы содержат примеры настройки и объяснения их. OpenVPN не стал исключением. Распакуем серверный конфигурационный файл в директорию /etc/openvpn:

gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf

С полученным файлом сервер уже готов к работе. Он сконфигурирован с возможностью туннелирования, однако не имеет возможности к проксированию, т.е. отправки клиентского трафика от своего имени. Исправим это.

Для начала, проверяем какие файлы оказались в директории /etc/openvpn:

ls /etc/openvpn

8.png

Открываем файл конфигурации:

nano /etc/openvpn/server.conf

И проверяем соответствие файлов прописанных в конфигурации с файлами находящимися в каталоге. Интересны строки после “SSL/TLS root certificate (ca), certificate (cert), and private key (key).”

9.png

Если имена отличаются от существующих, следует внести необходимые исправления. Выходим из редактора сочетанием клавиш Ctrl + X.

Запускаем сервер:

/etc/init.d/openvpn start

Проверим результат запуска:

/etc/init.d/openvpn status

10.png

Настройки клиента.

Предполагается, что на стороне клиента уже установлен пакет OpenVPN.

1. Копируем файл клиентских настроек в домашний каталог пользователя:

cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /root

2. Копируем сгенерированные ключи — client1.key, client1.crt, ca.crt:

cd /etc/openvpn/easy-rsa/keys

cp client1.key client1.crt ca.crt /root

3. Редактируем файл конфигурации клиента:

nano /root/client.conf

4. Находим закомментированные строки “# The hostname/IP and port of the server”. Для параметра remote меняем my-server-1 на IP-адрес сервера или его доменное имя.

11.png

5. В том же файле, ниже, находим блок “#SSL/TLS parms.”. Редактируем имена ключей.

12.png

6. Выходим из редактирования сочетанием Ctrl + X. На вопрос о сохранении изменений отвечаем “Y”. Имя файла оставляем неизменным.

7. Переносим файлы client1.key, client1.crt, ca.crt и client.conf на компьютер клиента с которого будет происходить подключение к серверу OpenVPN.

Важно! Некоторые клиентские реализации OpenVPN работают только с файлами *.ovpn. В подобных случаях достаточно изменить расширение файл (переименовать) с client.conf на client.ovpn.

8. Подключаемся к серверу командой:

openvpn openvpn.conf

Следует обратить внимание, что проксирование до сих пор не настроено. При этом, когда клиентская машина подключена к OpenVPN-серверу, доступ в Интернет прекращается. Связано это с тем, что созданный адаптер TUN, а в месте с ним и сам сервер, являются шлюзом по умолчанию.

Настройка маршрутизации.

1. На сервере редактируем файл server.conf:

nano /etc/openvpn/server.conf

2. В файле находим следующую строку и удаляем перед ней символ “;”, таким образом раскомментируем ее:

push "redirect-gateway def1 bypass-dhcp"

3. Сохраняем и закрываем редактор.

4. Редактируем файл /etc/sysctl:

nano /etc/sysctl.conf

5. В конец файла добавляем следующую строку:

net.ipv4.ip_forward=1

Это разрешит системе пересылать трафик между интерфейсами, но изменения вступят в силу только после перезагрузки. Сохраняем файл и закрываем редактор.

6. Разрешаем форвардинг пакетов без перезагрузки сервера:

echo 1 > /proc/sys/net/ipv4/ip_forward

7. Настроим NAT в iptables. Поочередно вводим команды:

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT

iptables -A FORWARD -j REJECT

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

iptables -A INPUT -i tun+ -j ACCEPT

iptables -A FORWARD -i tun+ -j ACCEPT

iptables -A INPUT -i tap+ -j ACCEPT

iptables -A FORWARD -i tap+ -j ACCEPT

Также их можно просто вписать в файл /etc/rc.local до строки “exit 0” или выполнить настройку firewall как это указано в нашей статье.

13.png

Сервер уже готов к использованию. Однако, задача проксировать весь трафик, а следовательно необходимо настроить форвардинг DNS-запросов. Настроим.

1. Устанавливаем dnsmasq

Если установка выполняется в ОС Ubuntu:

apt-get install dnsmasq

Несмотря на то, что в большинстве современных версий ОС Ubuntu dnsmasq уже предустановлен, в старых версиях необходимо выполнить так:

apt-get install dnsmasq && dpkg-reconfigure resolvconf

Возможно запустится диалоговое окно мастера установки. В нем будет 2 вопроса. В первом случае, на вопрос “prepare /etc/resolv.conf for dynamic updates” отвечаем “Yes”, а на следующий — “Append original file to dynamic file?” отвечаем “No”.

Для ОС Debian 7:

apt-get install dnsmasq resolvconf

2. Отредактируем файл настроек dnsmasq:

nano /etc/dnsmasq.conf

Добавим следующие параметры:

listen-address=10.8.0.1

bind-interfaces

Сохраняем файл и закрываем редактор.

3. Редактируем файл сетевых настроек:

nano /etc/network/interfaces

Требуется указать адрес DNS-серверов в соответствующих секциях настроек адаптера:

dns-nameservers 8.8.8.8 8.8.4.4

Возможно это действие уже произведено,. Повторно его выполнять не нужно.

4. Учитывая особенность запуска и последующей работы dnsmasq — возможность аварийного завершения до инициализации виртуального tun-адаптера, добавим следующую строчку в файл rc.local, перед “exit 0”:

/etc/init.d/dnsmasq restart

14.png

5. Теперь разрешим клиентам OpenVPN-сервера использовать DNS. С помощью редактора nano раскомментируем строку:

push "dhcp-option DNS 10.8.0.1"

Фиксируем изменения в файле.

6. Перезагружаем сервер:

reboot

Проверка работы

Выполняем повторное подключение к серверу. Пробуем открыть сайт для проверки IP-адреса. В результате должен быть IP-адрес сервера.

Облачные VPS/VDS

Создайте сервер всего за 1 минуту!

от8 руб/месяц

VPN – Virtual Private Network, т. е. защищённая частная сеть, которая объединяет в себе несколько разных сетей, соединённых через Интернет. OpenVPN – это свободная реализация этой технологии. Сети VPN удобны тем, что позволяют получить доступ к частным сетям из любой точки в сети Интернет верифицированным клиентам. Многие организации таким образом строят свои локальные или интрасети, когда их офисы (сервера и компьютеры) расположены далеко (даже на разных континентах) друг от друга. Это единственный вариант в такой ситуации поскольку аренда выделенного физического канала связи (кабели по дну моря например) — слишком дорогое удовольствие. Таким образом сотрудники могут подключаться к сети своей организации из дома или из любой другой точки, имея только доступ в интернет и специальный ключ. Именно с помощью ключей шифрования организуется туннели связи, объединяющие разные сети в одну защищённую VPN-структуру.

Содержание

Что для этого нужно?

Настройка OpenVPN требует наличия следующих компонентов:

  • несколько компьютеров-клиентов для организации, собственно, инфраструктуры сети VPN;
  • OpenVPN на всех компьютерах-клиентах;
  • Easy-RSA – для организации центров сертификации и работы с ключами, также на всех компьютерах;
  • корректно настроенный центр сертификации.

Следует отметить, что центр сертификации (ЦС) рекомендуется использовать на отдельной машине. ЦС служит для обслуживания запросов на сертификаты.

Установка ПО

Это, пожалуй самый простой этап. Здесь достаточно воспользоваться менеджером пакетов или системой управления пакетами (СУП) для установки требуемых пакетов ПО. Для любого из популярных дистрибутивов Linux они доступны из стандартный репозиториев. Например, для Ubuntu 18.04:

$ sudo apt install openvpn easy-rsa

В зависимости от используемого дистрибутива наименования пакетов могут различаться. Оба пакета нужно устанавливать и на сервере, и у клиентов.

Организация центра сертификации

Это очень важный этап, поскольку от наличия собственного ЦС зависит безопасность организуемой сети VPN. Также это удобно, поскольку собственный ЦС позволяет легко управлять ключами и сертификатами, а также распространять их для клиентов. Также отпадает необходимость хранения всех сертификатов клиентов, поскольку их подписи находятся у ЦС.

ЦС будет находиться в каталоге /etc/openvpn/easy-rsa. Вообще, ЦС можно разместить где угодно. Также необходимо скопировать в хранилище конфигурационные скрипты Easy-RSA:

sudo mkdir /etc/openvpn/easy-rsa  sudo cp -R /usr/share/easy-rsa /etc/openvpn/easy-rsa

Теперь необходимо развернуть сам ЦС в каталоге /etc/openvpn/easy-rsa. Для этого следует выполнить в нём некоторые скрипты (которые ранее были сюда скопированы) для создания инфраструктуры для работы ЦС:

$ sudo -i  # cd /etc/openvpn/easy-rsa  # source ./vars  # ./clean-all  # ./build-ca

Для удобства командная консоль была переведена в «суперпользовательский» режим командой sudo -i. Вторая команда устанавливает все необходимые переменные окружения. Третья команда проверяет, существует ли каталог keys/ и если его нет, то создаёт его. Если он существует, то производится очистка его содержимого. Далее устанавливаются необходимые режимы доступа. Четвёртая команда помещает в keys/ серверные ключи и сертификаты по-умолчанию.

Генерация и настройка ключей клиентов

На данном этапе нужно произвести похожие настройки для Easy-RSA на клиентских машинах, с той лишь разницей, что генерировать ключи нужно на основе главного сертификата серверной машины, на которой работает OpenVPN-сервер. Главный сертификат нужно скопировать на клиентские машины. Но для начала следует создать инфраструктуру клиентского окружения для работы с ключами:

$ sudo cp -R /usr/share/easy-rsa /etc/openvpn/easy-rsa

Далее, нужно скопировать главный сертификат сервера (файл *.crt) на все клиентские компьютеры. Для этого удобно использовать утилиту scp:

$ sudo scp username@host:/etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn/easy-rsa/keys

Далее можно создавать (генерировать) клиентские ключи, используя скопированный с сервера сертификат. Для этого на клиентском компьютере в каталоге /etc/openvpn/easy-rsa нужно выполнить следующие команды:

$ sudo -i  # cd /etc/openvpn/easy-rsa  # source ./vars  # build-req John

Важно понимать, что для того, чтобы генерация клиентских ключей была возможной, необходимо, чтобы серверный сертификат находился в каталоге keys/ у клиентов. Сгенерированные в результате клиентские ключи позволяют подключаться к серверу OpenVPN. Однако, для того, чтобы сервер их принимал и предоставлял доступ к VPN-сети, необходимо, чтобы эти ключи (файлы *.csr) были подписаны на самом сервере. Можно также, используя SCP, отправить их на сервер:

$ scp /etc/openvpn/easy-rsa/keys/John.csr username@host:~/

Теперь, на сервере, предварительно перейдя в каталог /etc/openvpn/easy-rsa, можно выполнить подпись переданного ключа John.csr:

$ sudo -i  #  cd /etc/openvpn/easy-rsa  # ./sign-req ~/John

В результате будет создан уже подписанный сервером сертификат, который необходимо отдать клиенту:

$ sudo scp username@host:/home/John.crt /etc/openvpn/easy-rsa/keys

На этом организация инфраструктуры для работы с ключами (и сертификатами) завершена. Теперь этого достаточно, чтобы сервер OpenVPN и клиенты установили защищённую связь. Однако необходимо ещё произвести некоторые настройки самой системы OpenVPN. Также, если планируется для более надёжной защиты использовать TLS-шифрование, то на стороне сервера всё в том же в каталоге /etc/openvpn/easy-rsa выполнить команду:

$ ./build-dh

Настройка сервера OpenVPN

После установки OpenVPN обычно по-умолчанию никаких конфигурационных файлов для работы не предоставляется. Это сделано потому, что для начала нужно определить, как использовать OpenVPN на конкретной машине: в качестве сервера или клиента. Только после этого должна определяться конфигурация, которая, как можно понимать, будет различаться для сервера и для клиента.

Для более удобного задания конфигурации существуют файлы-шаблоны, доступные в /usr/share/doc/openvpn/examples/sample-config-files/. На их основе можно относительно быстро сконфигурировать целый сервер OpenVPN или его клиент:

$ zcat /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf

Эта команда (точнее конвейер команд) извлечёт и архива server.conf.gz текстовые данные и создаст из них конфигурационный файл server.conf с базовыми настройками работы OpenVPN-сервера. Теперь нужно задать, собственно, актуальные опции. Протокол и номер порта:

port 1194  proto udp

Серверные ключи и сертификаты из каталога /etc/openvpn/easy-rsa/keys также необходимо определить в конфигурации:

ca /etc/openvpn/easy-rsa/keys/ca.crt  cert /etc/openvpn/easy-rsa/keys/ca.crt  key /etc/openvpn/easy-rsa/keys/ca.key  dh /etc/openvpn/easy-rsa/keys/dh.pem

Также нужно указать диапазон VPN-сети:

server 10.8.0.0 255.255.255.0

Эта запись определяет адрес самого OpenVPN-сервера (10.8.0.0), а также маску его сети. В итоге рабочая конфигурация должна выглядеть следующим образом:

port 1194  proto udp  comp-lzo  dev tun  ca /etc/openvpn/easy-rsa/keys/ca.crt  cert /etc/openvpn/easy-rsa/keys/ca.crt  dh /etc/openvpn/easy-rsa/keys/dh.pem  topology subnet  server 10.8.0.0 255.255.255.0  ifconfig-pool-persist ipp.txt

Теперь можно сохранить файл server.conf. Настройка сервера OpenVPN завершена. Далее нужно выполнить его запуск с помощью команды openvpn, указав соответствующий конфигурационный файл:

$ openvpn /etc/openvpn/server.conf

Настройка клиентов OpenVPN

Теперь необходимо настроить клиентские машины. Также нужно воспользоваться файлами шаблонами, но они доступны без распаковки:

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client.conf

Для клиента может быть задано несколько конфигурационных файлов для подключения к разным серверам OpenVPN. Ключевыми параметрами для клиентской конфигурации являются remote, ca, cert, а также key:

remote 194.67.215.125 1194  ca /etc/openvpn/easy-rsa/keys/ca.crt  cert /etc/openvpn/easy-rsa/keys/John.crt  key /etc/openvpn/easy-rsa/keys/John.key

Здесь remote задаёт IP-адрес сервера OpenVPN в Интернет, а также порт подключения, который должен совпадать с тем, что указан в серверной конфигурации. Параметр ca – это серверный сертификат, а cert – созданный на его основе ключ John.csr, а теперь подписанный сертификат John.crt. Параметр key – это закрытый ключ клиента. Следует отметить, что именно при помощи параметров cert и key обеспечивается подключение клиентов к сети VPN. Готовая рабочая клиентская конфигурация будет следующей:

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/John.crt  key /etc/openvpn/easy-rsa/keys/John.key  tls-auth ta.key 1  comp-lzo  verb 3

Теперь можно запускать OpenVPN на клиентском компьютере:

$ openvpn /etc/openvpn/client.conf

После этого, если всё настроено правильно, клиенты подключатся к VPN. Но на этом ещё не всё. Необходимо настроить перенаправление для туннеля VPN, чтобы пользователи могли направлять и получать через него трафик. Для начала необходимо разрешить серверу пропускать пакеты:

$ sysctl -w net.ipv4.ip_forward=1

Затем разрешить всем подключаться к серверу OpenVPN:

$ 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

Предыдущие три правила iptables стоит применять, когда в сети действует запрещающая политика. Также нужно следить за тем, чтобы брандмауэр не блокировал подключения по протоколу UDP к OpenVPN-серверу.

Заключение

В заключение необходимо отметить, что настройка сети VPN – довольно трудоёмкое и ответственное занятие. Особое внимание здесь нужно уделять организации ЦС, распространению ключей и сертификатов, а также форвардингу пакетов. Поэтому для таких задач очень важно иметь хорошую квалификацию по администрированию сетей. Также стоит учитывать, что была рассмотрена настройка OpenVPN для систем Ubuntu, однако принципиальной разницы для других дистрибутивов нет.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

ustanovka-OpenVPN-Client-v-Ubuntu.png

Устанавливаем OpenVPN в Linux

Поскольку большинство юзеров используют дистрибутивы, основанные Ubuntu, сегодня инструкции будут базироваться именно на этих версиях. В других же случаях кардинальной разницы в инсталляции и конфигурации OpenVPN вы не заметите, разве что придется соблюдать синтаксис дистрибутива, о чем вы можете прочесть в официальной документации своей системы. Предлагаем ознакомиться со всем процессом пошагово, чтобы детально разобраться в каждом действии.

Обязательно следует учитывать, что функционирование OpenVPN происходит через два узла (компьютер или сервер), а значит это то, что установка и настройка касается всех участников подключения. Наше следующее руководство будет ориентировано как раз на работу с двумя источниками.

Шаг 1: Установка OpenVPN

Конечно, начать следует с добавления всех необходимых библиотек на компьютеры. Приготовьтесь к тому, что для выполнения поставленной задачи использоваться будет исключительно встроенный в ОС «Терминал».

  1. Откройте меню и запустите консоль. Сделать это можно также путем нажатия комбинации клавиш Ctrl + Alt + T.

Perehod-k-rabote-v-terminale-operatsionnoj-sistemy-Ubuntu.png

Пропишите команду sudo apt install openvpn easy-rsa для установки всех нужных репозиториев. После ввода нажмите на Enter.</li>

Komanda-dlya-ustanovki-OpenVPN-v-operatsionnoj-sisteme-Ubuntu.png

Укажите пароль от учетной записи суперпользователя. Символы при наборе не отображаются в поле.</li>

Vvod-parolya-dlya-podtverzhdeniya-ustanovki-v-Ubuntu.png

Подтвердите добавление новых файлов, выбрав соответствующий вариант.</li>

Podtverzhdenie-dobavleniya-novyh-fajlov-OpenVPN-v-Ubuntu.png

</ol>

Переходите к следующему шагу только тогда, когда инсталляция будет произведена на обеих устройствах.

Шаг 2: Создание и настройка удостоверяющего центра

Центр спецификации отвечает за проверку открытых ключей и обеспечивает надежное шифрование. Создается он на том устройстве, к которому потом будут подключаться другие пользователи, поэтому откройте консоль на нужном ПК и выполните следующие действия:

  1. Первоочередно создается папка для хранения всех ключей. Вы можете расположить ее где угодно, но лучше подобрать надежное место. Используйте для этого команду sudo mkdir /etc/openvpn/easy-rsa, где /etc/openvpn/easy-rsa — место для создания директории.

Sozdanie-novoj-papki-dlya-hraneniya-skriptov-OpenVPN-v-Ubuntu.png

Далее в эту папку требуется поместить скрипты дополнения easy-rsa, а делается это через sudo cp -R /usr/share/easy-rsa /etc/openvpn/.</li>

Kopirovanie-skriptov-dlya-OpenVPN-v-Ubuntu.png

В готовой директории создается удостоверяющий центр. Сначала перейдите в эту папку cd /etc/openvpn/easy-rsa/.</li>

Perehod-v-sozdannuyu-papku-dlya-skriptov-OpenVPN-v-Ubuntu.png

Затем вставьте в поле следующую команду:

sudo -i # source ./vars # ./clean-all # ./build-ca

</li>

Sozdanie-udostoveryayushhego-tsentra-v-servernoj-chasti-Ubuntu.png

</ol>

Пока серверный компьютер можно оставить в покое и переместиться к клиентским устройствам.

Шаг 3: Конфигурация клиентских сертификатов

Инструкцию, с которой вы будете ознакомлены ниже, потребуется провести на каждом клиентском компьютере, чтобы организовать корректно функционирующее защищенное соединение.

  1. Откройте консоль и напишите там команду sudo cp -R /usr/share/easy-rsa /etc/openvpn/, чтобы скопировать все требуемые скрипты инструмента.

Kopirovanie-skriptov-na-klientskoj-chasti-OpenVPN-v-Ubuntu.png

Ранее на серверном ПК был создан отдельный файл с сертификатом. Теперь его нужно скопировать и поместить в папку с остальными компонентами. Проще всего это сделать через команду sudo scp username@host:/etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn/easy-rsa/keys, где username@host — адрес оборудования, с которого производится скачивание.</li>

Skachivanie-fajla-spetsifikatsii-s-servernogo-PK-v-Ubuntu.png

Осталось только создать личный секретный ключ, чтобы в дальнейшем через него осуществлялось соединение. Сделайте это, перейдя в папку хранения скриптов cd /etc/openvpn/easy-rsa/.</li>

Peremeshhenie-v-papku-s-klyuchami-na-klientskom-kompyutere-Ubuntu.png

Для создания файла используйте команду:

sudo -i # source ./vars # build-req Lumpics

Sozdanie-zakrytogo-klyucha-na-klientskom-kompyutere-Ubuntu.png

Lumpics в этом случае — заданное название файла. Созданный ключ в обязательном порядке должен находиться в одной и той же директории с остальными ключами.

</li>Осталось только отправить готовый ключ доступа на серверное устройство, чтобы подтвердить подлинность своего соединения. Делается это с помощью той же команды, через которую производилось скачивание. Вам нужно ввести scp /etc/openvpn/easy-rsa/keys/Lumpics.csr username@host:~/, где username@host — имя компьютера для отправки, а Lumpics.csr — название файла с ключом.</li>

Peredat-sekretnyj-klyuch-na-servernyj-kompyuter-Ubuntu.png

На серверном ПК подтвердите ключ через ./sign-req ~/Lumpics, где Lumpics — название файла. После этого верните документ обратно через sudo scp username@host:/home/Lumpics.crt /etc/openvpn/easy-rsa/keys.</li>

Zaregistrirovat-klyuch-ot-klientskogo-kompyutera-v-Ubuntu.png

</ol>

На этом все предварительные работы завершены, осталось только привести сам OpenVPN в нормальное состояние и можно начинать использовать частное шифрованное соединение с одним или несколькими клиентами.

Шаг 4: Настройка OpenVPN

Следующее руководство будет касаться и клиентской части, и серверной. Мы все разделим по действиям и предупредим об изменениях машин, поэтому вам остается только выполнить приведенную инструкцию.

  1. Сначала создайте файл конфигурации на серверном ПК с помощью команды zcat /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf. При конфигурации клиентских устройств этот файл также придется создавать отдельно.

Sozdat-konfiguratsionnyj-fajl-dlya-OpenVPN-v-Ubuntu.png

Ознакомьтесь со стандартными значениями. Как видите, порт и протокол совпадает со стандартными, однако отсутствуют дополнительные параметры.</li>

Proverit-konfiguratsionnyj-fajl-dlya-OpenVPN-v-Ubuntu.png

Запустите созданный конфигурационный файл через редактор sudo nano /etc/openvpn/server.conf.</li>

Pristupit-k-redaktirovaniyu-konfiguratsionnogo-fajla-v-Ubuntu.png

Мы не будем вдаваться в подробности изменения всех значений, поскольку в некоторых случаях они индивидуальны, но стандартные строки в файле должны присутствовать, а выглядит подобная картина так:

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

После завершения всех изменений сохраните настройки и закройте файл.</li>

Zavershit-redaktirovanie-konfiguratsionnogo-fajla-v-Ubuntu.png

Работа с серверной частью завершена. Запустите OpenVPN через созданный конфигурационный файл openvpn /etc/openvpn/server.conf.</li>

Zapustit-OpenVPN-na-servernom-kompyutere-Ubuntu.png

Теперь приступим к клиентским устройствам. Как уже было сказано, здесь тоже создается файл настроек, но на этот раз он не распаковывается, поэтому команда имеет следующий вид: sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client.conf.</li>

Sozdanie-konfiguratsionnogo-fajla-na-klientskom-kompyutere-Ubuntu.png

Запустите файл таким же образом, как это было показано выше и внесите туда следующие строки:

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.</li>Пропишите команду ifconfig, чтобы удостовериться в работе системы. Среди всех показанных значений обязательно должен присутствовать интерфейс tun0.</li>

Proverka-interfejsov-dlya-soedineniya-v-Ubuntu.png

</ol>

Для перенаправления трафика и открытия доступа к интернету для всех клиентов на серверном ПК вам потребуется поочередно активировать указанные ниже команды.

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 на серверной и клиентской части. Советуем обращать внимание на уведомления, показанные в «Терминале» и изучать коды ошибок, если такие появляются. Подобные действия помогут избежать дальнейших проблем с подключением, ведь оперативное решение проблемы предотвращает появление других вытекающих неполадок. close.pngМы рады, что смогли помочь Вам в решении проблемы.close.pngОпишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Помогла ли вам эта статья?

Используемые источники:

  • https://serverspace.by/support/help/nastroika-openvpn-v-ubuntu/
  • https://itproffi.ru/ustanovka-i-nastrojka-openvpn-v-linux/
  • https://lumpics.ru/installation-openvpn-client-in-ubuntu/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации