Гид по технологиям

Установка OpenVPN на Debian 10

• 5 min read • DevOps • Обновлено 23 Nov 2025
OpenVPN на Debian 10 — установка и настройка
OpenVPN на Debian 10 — установка и настройка

! Иллюстрация: VPN-туннель и логотип OpenVPN

OpenVPN — это свободное ПО для организации защищённого доступа к сети через ненадёжные каналы. Оно создаёт зашифрованный туннель, использует SSL/TLS для обмена ключами и умеет работать за NAT. В этом руководстве описана пошаговая настройка OpenVPN-сервера и клиента на Debian 10.

Требования

  • Два сервера под управлением Debian 10 (или виртуальные машины).
  • Примерные IP: сервер — 192.168.0.103, клиент — 192.168.0.102. Замените на свои адреса.
  • Пароль root или доступ по sudo на обоих хостах.

Важно: используйте статические IP или корректно настройте перенос портов/маршрутизацию, если сервер находится за NAT.

Включение пересылки IP

Чтобы пакеты из VPN могли пробрасываться на внешний интерфейс, включите пересылку IPv4.

Откройте файл:

nano /etc/sysctl.conf

Измените / добавьте строку:

net.ipv4.ip_forward=1

Сохраните и примените настройки:

sysctl -p

Примечание: для временной активации можно выполнить echo 1 > /proc/sys/net/ipv4/ip_forward.

Установка OpenVPN

Установите пакет OpenVPN из репозитория Debian:

apt-get install openvpn -y

После установки можно переходить к созданию PKI и сертификатов.

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

Скопируйте Easy-RSA в конфигурационную директорию и подготовьте окружение:

cp -r /usr/share/easy-rsa /etc/openvpn/

Перейдите в каталог Easy-RSA и переименуйте пример файла vars:

cd /etc/openvpn/easy-rsa  
 mv vars.example vars

Отредактируйте vars и укажите свои поля (страна, провинция, город, организация, e‑mail и т.д.). По умолчанию в примере используются индийские значения — замените на актуальные для вашей инфраструктуры:

nano vars

Добавьте/проверьте эти строки (вставлены как пример):

export KEY_COUNTRY="INDIA"
export KEY_PROVINCE="CA"
export KEY_CITY="Junagadh"
export KEY_ORG="Howtoforge"
export KEY_EMAIL="[email protected]"
export KEY_OU="OpenVPN"

Сохраните файл. Рекомендуется заменить значения на свои (например, COUNTRY=”RU”).

Инициализируйте PKI:

./easyrsa init-pki

Создайте центр сертификации (CA) без пароля — удобнее для тестовой среды. Для боевого сервера рекомендуется использовать пароль или внешнее хранилище ключей:

./easyrsa build-ca nopass

Сгенерируйте запрос и приватный ключ сервера:

./easyrsa gen-req server nopass

Подпишите запрос центром сертификации:

./easyrsa sign-req server server

Сгенерируйте параметры Диффи-Хеллмана (может занимать долгое время):

./easyrsa gen-dh

Создайте HMAC-ключ для tls-auth (повышает защиту канала управления):

openvpn --genkey --secret ta.key

Скопируйте необходимые файлы в /etc/openvpn:

cp ta.key /etc/openvpn/  
 cp pki/ca.crt /etc/openvpn/  
 cp pki/private/server.key /etc/openvpn/  
 cp pki/issued/server.crt /etc/openvpn/  
 cp pki/dh.pem /etc/openvpn/

Важно: приватные ключи (server.key, ta.key и приватные ключи CA) должны храниться в защищённом каталоге с правами доступа, доступными только root.

Генерация сертификата и ключа клиента

На сервере Easy-RSA сгенерируйте ключ клиента:

./easyrsa gen-req client nopass

Подпишите клиентский сертификат:

./easyrsa sign-req client client

Скопируйте сгенерированные клиентские файлы в отдельную папку для удобной передачи на клиент:

cp pki/ca.crt /etc/openvpn/client/  
 cp pki/issued/client.crt /etc/openvpn/client/  
 cp pki/private/client.key /etc/openvpn/client/

Рекомендация: при экспорте клиентских файлов в продуктивной среде используйте защищённый канал (scp, sftp) и удаляйте временные копии отовсюду после передачи.

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

Создайте файл конфигурации сервера:

nano /etc/openvpn/server.conf

Вставьте конфигурацию (пример):

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key  # This file should be kept secret
dh dh.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
tls-auth ta.key 0 # This file is secret
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log         /var/log/openvpn/openvpn.log
log-append  /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1

Пояснения к важным параметрам:

  • server 10.8.0.0 255.255.255.0 — подсеть виртуальной частной сети.
  • push “redirect-gateway…” — перенаправляет весь клиентский трафик через VPN (обычно нужно для полноценной маскировки исходного IP).
  • dhcp-option DNS — указывает DNS-серверы, которые будут предоставлены клиентам.

Запустите и проверьте службу:

systemctl start openvpn@server
systemctl status openvpn@server

Ожидаемый статус: active (running) и сообщение “Initialization Sequence Completed”.

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

На клиенте установите OpenVPN:

apt-get install openvpn -y

Создайте конфигурационный файл клиента:

nano /etc/openvpn/client.conf

Пример конфигурации клиента:

client
dev tun
proto udp
remote 192.168.0.103 1194
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
tls-auth ta.key 1
cipher AES-256-CBC
verb 3

Передайте файлы с сервера на клиент (используя защищённый канал):

scp [email protected]:/etc/openvpn/client/ca.crt /etc/openvpn/  
 scp [email protected]:/etc/openvpn/client/client.crt /etc/openvpn/  
 scp [email protected]:/etc/openvpn/client/client.key /etc/openvpn/  
 scp [email protected]:/etc/openvpn/ta.key /etc/openvpn/

Запустите сервис:

systemctl start openvpn@client

Проверьте назначенный IP-интерфейса tun с помощью ifconfig или ip addr.

Проверка логов и подключений

На сервере можно в реальном времени наблюдать лог:

tail -f /var/log/openvpn/openvpn.log

В логе вы увидите подключение клиента, назначение виртуального IP и договорённый шифр.

Критерии приёмки

  • Служба openvpn@server запущена и сообщает “Initialization Sequence Completed”.
  • Клиент получает виртуальный IP (например, 10.8.0.x) и маршрут по умолчанию на сервер.
  • Трафик с клиента идёт через сервер (проверяется внешним IP-адресом и traceroute).
  • Логи не содержат ошибок TLS или проблем с сертификатами.

Контрольный список администратора

  • Включена пересылка ip_forward.
  • Сгенерирован CA и подписаны сервер/клиент сертификаты.
  • Приватные ключи защищены и доступны только root.
  • Порт UDP 1194 открыт и проброшен на сервере (если требуется).
  • Конфигурации /etc/openvpn/server.conf и client.conf проверены на опечатки.
  • Логи проверены и подключение клиента стабильно.

Шпаргалка команд

  • Перезапуск сервиса сервера: systemctl restart openvpn@server
  • Перезапуск клиента: systemctl restart openvpn@client
  • Просмотр статуса: systemctl status openvpn@server
  • Проверка интерфейсов: ip addr
  • Следить за логом: tail -f /var/log/openvpn/openvpn.log

Когда OpenVPN может не подойти

  • Если нужно очень высокое время отклика и минимальная задержка для игр — VPN может увеличить задержку.
  • Если требуется корпоративный SSO/PKI с интеграцией в существующий CA — возможно, предпочтительнее использовать корпоративное решение с централизованным управлением сертификатов.
  • Для мобильных клиентов с нестабильными сетями можно рассмотреть WireGuard как более простой и быстрый протокол.

Альтернативы и когда их рассматривать

  • WireGuard — проще в конфигурации, быстрее на большинстве платформ, но молодой экосистемой и иными требованиями к ключевому управлению.
  • IPsec (strongSwan/LibreSwan) — хорош для межсайтовых VPN и совместимости с аппаратными шлюзами.
  • Коммерческие VPN-решения — обычно предоставляют удобные клиенты, поддержку и управление пользователями.

Рекомендации по безопасности

  • Ограничьте доступ к приватным ключам (chmod 600) и храните их вне публичных разделов.
  • Регулярно обновляйте пакеты Debian и OpenSSL/OpenVPN.
  • Рассмотрите использование TLS-авторизации (tls-auth или tls-crypt) и сильных шифровых наборов (AES-GCM, ECDHE).
  • В продуктивной среде используйте пароль для CA или аппаратные модули HSM/KMS.

Итоги

Вы развернули OpenVPN-сервер и клиента на Debian 10: включили пересылку IP, установили пакет, создали PKI, подписали сертификаты, настроили конфигурации и запустили службы. Для боевого использования дополнительно настройте бэкап ключей, мониторинг и политику ротации сертификатов.

Важно: адаптируйте примерные значения (IP, DNS, поля в vars) под вашу инфраструктуру и требования безопасности.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро