Настройка OpenVPN на Linux: пошаговое руководство
Содержание
- Подготовка сервера для OpenVPN
- Установка OpenVPN на сервере
- Подключение к OpenVPN с Linux
- Подключение к OpenVPN с Windows
- Подключение к OpenVPN с Mac
- Добавление нового клиента на сервер OpenVPN
- Удаление клиентов из OpenVPN
- Удаление OpenVPN с сервера
- Когда это не подходит и альтернативы
- Безопасность и рекомендации по защите
- Чек‑листы для роли администратора и пользователя
- Критерии приёмки и тесты
- Часто задаваемые вопросы
Введение
Виртуальные частные сети (VPN) скрывают ваши сетевые соединения и повышают безопасность при работе в публичных сетях. Многие провайдеры предлагают готовые решения, но собственный сервер даёт полный контроль над трафиком и конфигурацией. В этом руководстве мы развернём маршрутный (routing) OpenVPN-сервер на Ubuntu, подключим клиенты и разберём сопутствующие операции: добавление/удаление клиентов, безопасные настройки и тесты.
Важно: в примерах используется Ubuntu, но все шаги применимы и для большинства других дистрибутивов Linux с системой apt.
Подготовка сервера для OpenVPN
Что делает этот раздел: подготавливает пакетный менеджер, загружает установочный скрипт и даёт базовые рекомендации по сетевой подготовке.
- Обновите индекс пакетов и установите необходимые утилиты:
sudo apt update
sudo apt install -y wget curl ca-certificates- Загрузите сторонний скрипт установки OpenVPN от angristan (автоматизирует большую часть работы):
wget https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh -O ./openvpn-install.sh
- Дайте скрипту права на исполнение:
sudo chmod ug+x ./openvpn-install.shПримечание: скрипт автоматизирует создание CA, ключей и конфигурации демона OpenVPN. Если вы хотите управлять сертификатами вручную — используйте официальную документацию OpenVPN и easy-rsa.
Установка OpenVPN на сервере
Запустите инсталлятор от имени суперпользователя и следуйте интерактивным подсказкам:
sudo ./openvpn-install.shЧто ожидается на каждом шаге (пояснения к подсказкам скрипта):
- Интерфейс: скрипт спросит IP/интерфейс. Для сервера VPS обычно достаточно оставить значение по умолчанию и нажать Enter.

- IPv6: вам предложат включить поддержку IPv6 — нажмите Y, если у сервера есть IPv6-адрес. Если нет, введите N.

Порт и протокол: рекомендуется оставить UDP и порт по умолчанию (1194), если у вас нет причин менять их.
DNS: скрипт предложит выбрать DNS-резолвер. Популярные варианты — Cloudflare и Google (8.8.8.8). Выберите в соответствии с политиками вашего проекта.

- Сжатие и шифрование: по соображениям безопасности лучше отключить сжатие (вредно при применении compression-oracle-атаки) и выбрать современные шифры. Скрипт предложит эти варианты — рекомендуем отказаться от компрессии и согласиться на современные настройки шифрования.

После завершения установки скрипт создаст клиентский .ovpn‑файл (например, maketecheasier.ovpn) в домашнем каталоге root или указанной учётной записи.
Совет: если вы хотите интегрировать routing с существующей сетью, проверьте правила iptables/nftables и параметры sysctl (net.ipv4.ip_forward = 1).
Подключение к вашему OpenVPN с Linux
Кратко: вы переносите .ovpn‑файл на локальную машину и импортируете его в системные настройки сети или в клиент OpenVPN.
- Скопируйте файл .ovpn на локальный компьютер. На примере scp:
scp user@your.server.ip.address:/home/youruser/maketecheasier.ovpn /home/$USER/Замените user и путь на фактические значения.
- Откройте «Настройки» (Settings) вашей рабочей среды, перейдите в раздел «Сеть», нажмите «+» возле VPN и выберите «Импорт из файла…».




- Выберите .ovpn‑файл в файловом диалоге и нажмите «Открыть», затем «Добавить».

Готово — подключение доступно через панель задач.
Советы по отладке:
- Просмотрите системный журнал: sudo journalctl -u NetworkManager -b –no-pager
- Если клиент не подключается, проверьте доступность порта сервера (sudo ss -upln | grep 1194) и правила файрвола (iptables/nftables, cloud provider security groups).
Подключение к вашему OpenVPN с Windows
- Скачайте официальный клиент OpenVPN Connect или OpenVPN Community Client с сайта разработчика.
- Запустите установщик и следуйте мастеру: Accept → Next → Install.


- При первом запуске клиента согласитесь с политикой сбора данных (если предлагается), затем перейдите на вкладку Upload File и выберите ваш .ovpn файл.


- Нажмите Connect после проверки параметров.

Подсказки:
- Запуск от имени администратора может понадобиться для установки сетевого адаптера TAP.
- Пользовательские политики антивируса или корпоративный прокси могут блокировать соединение.
Подключение к вашему OpenVPN с Mac
- Скачайте OpenVPN Connect для macOS или альтернативный клиент, например Tunnelblick.

- Установите приложение, согласитесь с лицензионным соглашением и запустите его.


- Откройте Launchpad, запустите OpenVPN Connect, согласитесь с политикой и загрузите .ovpn через Upload File → Browse.





Заметка: Tunnelblick — удобная бесплатная альтернатива для macOS, если OpenVPN Connect не подходит.
Добавление нового клиента на сервер OpenVPN
Чтобы сгенерировать ещё один клиентский профиль, просто запустите инсталлятор снова:
sudo ./openvpn-install.shПри появлении меню выберите опцию добавления клиента (обычно «1»), присвойте имя клиенту (например, maketecheasier-2) и решите, требуется ли пароль для ключа. Скрипт сгенерирует новый .ovpn файл в домашнем каталоге.

Распределяйте .ovpn файлы по защищённым каналам (SCP, зашифрованная почта, физический носитель). Не отправляйте ключи в открытом виде в публичных чатах.
Удаление клиента из OpenVPN
Чтобы удалить существующий профиль, запустите тот же инсталлятор и выберите удаление клиента (обычно опция «2»), затем укажите индекс клиента в списке.
sudo ./openvpn-install.sh
Удаление удаляет ключи и файлы конфигурации, а также обновляет серверный список разрешённых клиентов.
Совет: храните резервную копию и журнал изменений (audit log) перед удалением для возможности восстановления.
Удаление OpenVPN с сервера
Если нужно полностью удалить OpenVPN, снова запустите инсталлятор и выберите опцию удаления OpenVPN (обычно «3»). Скрипт снимет конфигурацию и удалит созданные файлы.
sudo ./openvpn-install.shКогда это не подходит и альтернативы
OpenVPN — гибкое решение, но есть случаи, когда стоит выбрать альтернативу:
- Нужна сверхнизкая задержка и современная криптография → рассмотрите WireGuard.
- Требуется простая организация частной сети между устройствами без проброса портов → Tailscale (на базе WireGuard) проще в эксплуатации.
- На macOS удобнее Tunnelblick как GUI‑альтернатива.
- Если вы хотите избежать ручного управления сертификатами — используйте облачные VPN/SD-WAN решения.
Краткое сравнение (качественное):
- OpenVPN: совместимость, зрелость, гибкая настройка, но может быть медленнее.
- WireGuard: простота, производительность, но менее гибкая аутентификация на уровне PKI.
- Tailscale: минимум настроек, NAT traversal, но модель централизована.
Безопасность и рекомендации по защите
Рекомендации по жёсткой конфигурации сервера OpenVPN:
- Отключите компрессию трафика (в конфиге client и server): это предотвращает уязвимости, связанные с компрессией.
- Используйте современные шифры (AES‑GCM, CHACHA20‑POLY1305) и TLS 1.2/1.3, если возможно.
- Включите перенаправление IPv4: sysctl net.ipv4.ip_forward = 1.
- Жёстко настройте файрвол: разрешите только порты OpenVPN и административный доступ по SSH из доверенных адресов.
- Регулярно ротируйте ключи и сертификаты; удаляйте неиспользуемые клиентские профили.
- Используйте fail2ban или аналогичные инструменты для защиты от перебора SSH и попыток доступа к VPN.
- Храните резервную копию CA и ключей в зашифрованном хранилище.
Короткий чек безопасности:
- Проверить включён ли IP forwarding
- Проверить правила NAT/masquerade
- Проверить список клиентов и удалённые ключи
- Убедиться, что система обновлена (apt upgrade)
Чек‑лист для роли администратора
- Установить обновления на сервере
- Установить wget, curl, ca-certificates
- Скачать и проверить целостность скрипта перед выполнением
- Настроить резервное копирование ключей CA
- Отключить компрессию в конфигурации OpenVPN
- Настроить iptables/nftables и включить MASQUERADE
- Ограничить доступ к SSH через firewall
- Завести журнал операций при добавлении/удалении клиентов
Чек‑лист для конечного пользователя
- Получить .ovpn файл безопасным способом
- Импортировать профиль в клиент
- Протестировать подключение и проверить IP/маршрут (curl ifconfig.me)
- Проверить доступ к ресурсам внутри сети, если нужно
Критерии приёмки и тесты
Минимальный набор тестов, который должен пройти развернутый VPN:
- Подключение клиента: клиент успешно устанавливает VPN‑сессию и получает IP из пула.
- Маршрутизация наружу: трафик клиента выходит через публичный IP сервера (если это требуется).
- Доступ к внутренним ресурсам: при необходимости клиент имеет доступ к внутренним хостам.
- Отказоустойчивость: при перезапуске сервиса OpenVPN клиенты восстанавливают соединение.
- Безопасность: сканирование портов не выявляет лишних открытых сервисов.
Примеры команд проверки:
# Проверить состояние службы
sudo systemctl status openvpn-server@server.service
# Проверить порт (UDP 1194 по умолчанию)
sudo ss -ulpn | grep 1194
# Проверить форвардинг
sysctl net.ipv4.ip_forward
# Проверить внешний IP через VPN
curl --interface tun0 ifconfig.meЧасто задаваемые вопросы
Можно ли пробросить порт на машину внутри OpenVPN?
Нет. OpenVPN в маршрутизации по умолчанию не принимает входящие соединения извне к хостам внутри VPN без дополнительной настройки проброса портов на сервере или использования обратного проксирования. Решения: проброс портов на маршрутизаторе, настройка статического NAT или динамического DNS.
Теряю ли я внешний IP при подключении к OpenVPN?
Не теряете «оригинальный» локальный IP, но после подключения трафик может выходить через IP сервера VPN. Это нормальное поведение: ваш внешний видимый IP в интернете станет IP сервера (если настроен full-tunnel).
Можно ли использовать несколько конфигураций OpenVPN на одной машине?
Да. Убедитесь, что каждая конфигурация имеет уникальное имя и unit-файл. Пример копии и включения второго клиента:
sudo cp ./maketecheasier-new.ovpn /etc/openvpn/client-2.conf
sudo systemctl disable --now openvpn@client.service
sudo systemctl enable --now openvpn@client-2.serviceКогда OpenVPN не годится: примеры и альтернативы
Контрпримеры, когда OpenVPN может оказаться неудачным выбором:
- Вам нужна минимальная задержка для игр или VoIP — WireGuard часто даёт лучшую производительность.
- Нужна простая организация приватной mesh‑сети между мобильными устройствами — Tailscale устраняет хлопоты с пробросом портов.
- Нужно централизованное управление доступом и большая интеграция с IAM — корпоративные SD‑WAN/Cloud VPN решения будут удобнее.
Короткая глоссарий (1 строка на термин)
- CA — центр сертификации, отвечает за выпуск и подпись сертификатов.
- .ovpn — единый файл конфигурации клиента OpenVPN, содержащий ключи и параметры.
- Routing — организация передачи пакетов между сетями на уровне IP (в отличие от bridging).
- NAT (MASQUERADE) — преобразование исходных адресов пакетов для выхода в интернет через один IP.
Резюме
OpenVPN остаётся надёжным и гибким решением для личного и корпоративного VPN. Быстрая установка через сторонний инсталлятор подходит для большинства задач, но требует внимательной настройки безопасности: отключайте компрессию, используйте надёжные шифры, ограничивайте доступ по файрволу и храните ключи в защищённом хранилище. Для задач с высокими требованиями к производительности или минимизации операций управления рассмотрите WireGuard или Tailscale.
Image credit: Anthony Choren via Unsplash (фон) и Wikimedia Commons (логотип). Все скриншоты и изменения — Ramces Red.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента