opened image

OpenVPN на Ubuntu: инсталляция и конфигурация

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

 

Программа  широко известна и популярна как для использования дома, так и для использования в бизнесе. Все это благодаря применению серьезных криптографических алгоритмов (AES-256-CBC, SHA256), вариативности способов верификации. Имеются в виду цифровые сертификаты, пользовательские данные и двухэтапная аутентификация (2FA).

 

VPN-соединения необходимы в самых разных сценариях:

  • Удаленный доступ к корпоративной сети. Сотрудники могут безопасно подключаться к внутренним ресурсам компании из любой точки мира.

  • Безопасный доступ к интернету. VPN шифрует трафик и защищает данные при подключении к открытым Wi-Fi-сетям в кафе, аэропортах и отелях.

  • Обход географических блокировок. Позволяет получить доступ к ресурсам, недоступным в определенных регионах.

  • Скрытие реального IP-адреса. Помогает защитить конфиденциальность в интернете и избежать отслеживания со стороны провайдеров или государственных служб.

 

Плюсы OpenVPN

 

Среди ключевых достоинств отмечаем:

 

  1. Высокая степень защиты

    • Применение в работе высококачественных протоколов шифрования, в том числе TLS и AES-256.

    • Обладает дополнительной защитой через двухэтапную верификацию.

    • Предохраняет от атак Man-in-the-Middle (MITM), а также от утечки информации.

  2. Универсальность и поддержка различных платформ

    • Обладает кроссплатформенностью и функционирует на Windows, Linux, macOS, iOS и Android.

    • Поддержка разных методов проверки подлинности, среди которых  пароли, токены и сертификаты.

    • Можно преодолевать ограничения доступа, которые установил ваш провайдер с помощью работы через TCP и UDP.

  3. Простота установки и настройки

    • Легкая инсталляция как на устройствах, так и на сервере.

    • Универсальность конфигурации параметров сети, в том числе доступа и маршрутизации.

    • Обладает способностью автосоединения с клиентами.

  4. Рациональное использование ресурсов

    • OpenVPN способен работать на слабых серверах и в облаке.

    • Процессор и оперативную память практически не загружает, в отличии от других VPN.

  5. Общедоступный код

    • Можно проводить анализ кода с целью выявления слабых мест.

    • Постоянно обновляется, сообщество разработчиков весьма активно.

 

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

 

Этап 1. Инсталляция

 

Прежде чем переходить к настройкам сервера OpenVPN, нужно проверить обновлены ли системные пакеты. 

Чтобы это сделать воспользуйтесь командой обновления системы и инсталляции самого ПО:

sudo apt update && sudo apt upgrade -y

После этого инсталлируйте OpenVPN и требуемые зависимости:

sudo apt install openvpn easy-rsa -y

 

OpenVPN на Ubuntu: инсталляция и конфигурация - 1

 

Виды пакетов:

  • openvpn
    — представляет из себя базовый пакет, в который входят компоненты для сервера и клиентов.
  • easy-rsa
    — утилита, с помощью которой можно формировать инфраструктуры для ключей и сертификатов.

Когда инсталляция будет завершена, проверьте работоспособность OpenVPN. Для этого выполните команду:

openvpn --version

 


OpenVPN на Ubuntu: инсталляция и конфигурация - 2

 

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

 

Этап 2. Настройка сервера

 

Создание каталога для ключей и сертификатов

 

OpenVPN использует инфраструктуру открытых ключей (PKI), поэтому нам необходимо создать сертификаты и ключи.

Сначала скопируем Easy-RSA в каталог

/etc/openvpn/

:

sudo cp -r /usr/share/easy-rsa /etc/openvpn/
sudo mkdir -p /etc/openvpn/easy-rsa
sudo cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/

 


OpenVPN на Ubuntu: инсталляция и конфигурация - 3

 

cd /etc/openvpn/easy-rsa

 


OpenVPN на Ubuntu: инсталляция и конфигурация - 4

 

Инициализируем инфраструктуру PKI:

sudo ./easyrsa init-pki

 


OpenVPN на Ubuntu: инсталляция и конфигурация - 5

 

Генерируем корневой сертификат (CA):

sudo ./easyrsa build-ca


OpenVPN на Ubuntu: инсталляция и конфигурация - 6

 

OpenVPN на Ubuntu: инсталляция и конфигурация - 7

 

Создаем ключи для сервера:

sudo ./easyrsa gen-req server nopass

 


OpenVPN на Ubuntu: инсталляция и конфигурация - 8

OpenVPN на Ubuntu: инсталляция и конфигурация - 9

 

sudo ./easyrsa sign-req server server

 

OpenVPN на Ubuntu: инсталляция и конфигурация - 10

 

Генерируем ключи Диффи-Хеллмана (для защиты обмена ключами):

sudo ./easyrsa gen-dh

 


OpenVPN на Ubuntu: инсталляция и конфигурация - 11

 

Создаем ключ HMAC для защиты от атак DoS:

sudo openvpn --genkey --secret /etc/openvpn/server/ta.key

 


OpenVPN на Ubuntu: инсталляция и конфигурация - 12

 

Теперь создадим конфигурационный файл сервера. Открываем

/etc/openvpn/server.conf

:

sudo nano /etc/openvpn/server.conf

 

 

Добавляем базовые настройки:

port 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/server.crt
key /etc/openvpn/easy-rsa/pki/private/server.key
dh /etc/openvpn/easy-rsa/pki/dh.pem
tls-auth /etc/openvpn/server/ta.key 0
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
cipher AES-256-CBC
persist-key
persist-tun
status openvpn-status.log
log /var/log/openvpn.log
verb 3

 


OpenVPN на Ubuntu: инсталляция и конфигурация - 13

 

Сохраняем и выходим 

CTRL + X

, затем

Y

,

Enter

.

Перезапускаем OpenVPN:

sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server

 

 

Проверяем статус:

sudo systemctl status openvpn@server


 

OpenVPN на Ubuntu: инсталляция и конфигурация - 14

 

Этап 3. Настройка брандмауэра

Чтобы VPN-клиенты могли подключаться, необходимо открыть порт 1194 (или другой, если вы изменили его в конфигурации).

Открываем порт для OpenVPN в

UFW

:

sudo ufw allow 1194/udp

 


OpenVPN на Ubuntu: инсталляция и конфигурация - 15

 

Включаем пересылку трафика в файле

/etc/sysctl.conf

:

sudo nano /etc/sysctl.conf

Находим строку и раскомментируем (или добавляем, если ее нет):

net.ipv4.ip_forward=1

 


OpenVPN на Ubuntu: инсталляция и конфигурация - 16

 

Применяем изменения:

sudo sysctl -p

 


OpenVPN на Ubuntu: инсталляция и конфигурация - 17

 

Если используется

iptables

, разрешаем трафик:

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
sudo iptables-save | sudo tee /etc/iptables.rules

 

 

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

 

На клиентском устройстве (Windows, Linux, MacOS) необходимо установить OpenVPN и создать конфигурационный файл.

Создание ключей и сертификатов для клиента

На сервере генерируем клиентские ключи:

cd /etc/openvpn/easy-rsa
sudo ./easyrsa gen-req client1 nopass
sudo ./easyrsa sign-req client client1

 

 

Скопируем файлы на клиент:

sudo cp /etc/openvpn/easy-rsa/pki/ca.crt 
/etc/openvpn/easy-rsa/pki/issued/client1.crt 
/etc/openvpn/easy-rsa/pki/private/client1.key 
/etc/openvpn/client/

 

 

2. Формирование клиентского файла настроек

На клиенте создаем файл

client.ovpn

:

client
dev tun
proto udp
remote YOUR_SERVER_IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
cipher AES-256-CBC
tls-auth ta.key 1
verb 3

 

 

Копируем файлы

ca.crt

,

client1.crt

,

client1.key

,

ta.key

в каталог клиента.

Запускаем клиент OpenVPN:

openvpn --config client.ovpn

 

 

Этап 5. Проверка подключения

 

Тестирование соединения

На клиенте запускаем OpenVPN и смотрим на выходные логи. Должны быть строки:

Initialization Sequence Completed

 

Проверка соединения с сервером

На сервере проверяем подключенные клиенты:

sudo cat /var/log/openvpn.log

Если клиент не подключается, смотрим возможные ошибки:

  • Ошибка
    TLS handshake failed
    — проверьте сертификаты.
  • Ошибка
    No route to host
    — убедитесь, что порт 1194 открыт.
  • Ошибка
    Connection refused
    — проверьте, что OpenVPN работает 
    systemctl status openvpn@server
    .

Если всё работает, проверяем, передается ли трафик через VPN:

curl ifconfig.me

IP-адрес должен совпадать с адресом VPN-сервера.

 

 

Итог

 

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

Тем не менее создание VPN-пространства есть лишь начальным этапом. Если вы хотите сохранять стабильность соединения и хорошую защищенность, не забывайте о некоторых ключевых аспектах:

 

 

1. Систематическая актуализация

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

 

 

2. Отслеживание серверного функционирования

Следите за работой VPN-сервера и активностью клиентов. Опирайтесь в этом процессе на:

  • Журналы OpenVPN 
    /var/log/openvpn.log
    чтобы находить ошибки и подозрительную активность.
  • Системные утилиты 
    systemctl status openvpn, journalctl -u openvpn
     чтобы администрировать рабочий процесс.

 

 

3. Повышение защиты

Для улучшения безопасности сервера VPN следует:

  • Ограничить IP-доступ — подключите доступ к серверу через файервол в ситуациях, когда с сервером работают конкретные пользователи.
  • Включите двухфакторную аутентификацию (2FA).
  • Настроить строгие правила файрвола (iptables, UFW) для снижения шансов столкнуться с несанкционированной попыткой получения данных.
  • Ограничить число неудачных попыток входа, применив инструменты типа Fail2Ban.

 

 

4. Улучшение работоспособности

Когда на сервер ложится большая нагрузка из-за большого количества пользователей, может возникнуть проблема с производительностью. Чтобы предотвратить такие ситуация для улучшения работы OpenVPN выполните следующие действия:

  • По возможности замените UDP на TCP, чтобы ускорить соединение.
  • Сконфигурируйте инструментом вроде LZO сжатие данных.
  • Если вашим оборудованием поддерживается возможность аппаратного ускорения шифрования, то можно использовать это для снижения нагрузки на процессор.

 

 

5. Автоматизация и удобство использования

Для упрощенного пользовательского соединения советуем:

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

 

 

6. Бэкап настроек

Систематически делайте бэкап файлов конфигураций 

/etc/openvpn/

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

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