Быстрый старт VPN Обновлено 4 мин Android, iOS, Windows, macOS

Настройка OpenVPN сервера на Debian: пошаговое руководство

Подробное руководство по развертыванию OpenVPN сервера на Debian. Включает установку, конфигурацию сертификатов, настройку клиента и обеспечение безопасности.

OpenVPNDebianVPN сервернастройкаEasyRSAiptables
Содержание
КороткоУстановите OpenVPN и EasyRSA, сгенерируйте сертификаты, настройте сервер и клиента, включите IP-пересылку и настройте iptables. Проверьте подключение и исправьте типичные ошибки.

Настройка OpenVPN сервера на Debian — это практическая задача, которая решается за несколько шагов: установка пакетов, генерация сертификатов, конфигурация сервера и клиента, включение маршрутизации и настройка файрвола. В этом руководстве мы пройдем весь путь от начала до конца, чтобы вы получили рабочий VPN-сервер и смогли подключиться к нему с любого устройства.

Подготовка сервера Debian

Перед началом убедитесь, что у вас есть сервер с Debian 11 или 12, доступ по SSH с правами root, и открытый порт UDP 1194 в панели управления хостингом. Обновите систему и установите OpenVPN и EasyRSA:

apt update && apt upgrade -y
apt install openvpn easy-rsa -y

EasyRSA — это набор скриптов для управления ключами и сертификатами. Создайте каталог для PKI (инфраструктуры открытых ключей) и перейдите в него:

make-cadir ~/easy-rsa
cd ~/easy-rsa

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

Инициализируйте PKI и создайте корневой сертификат CA. В процессе вам будет предложено ввести пароль для CA и общее имя (Common Name) — укажите что-то вроде myvpn-ca:

./easyrsa init-pki
./easyrsa build-ca

Теперь создайте серверный сертификат и подпишите его:

./easyrsa gen-req server nopass
./easyrsa sign-req server server

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

./easyrsa gen-dh

Также создайте ключ TLS для защиты от DoS-атак:

openvpn --genkey --secret ta.key

Конфигурация сервера OpenVPN

Скопируйте все необходимые файлы в каталог OpenVPN:

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

Создайте файл конфигурации /etc/openvpn/server.conf с таким содержимым:

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0
cipher AES-256-GCM
auth SHA256
user nobody
group nogroup
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
persist-key
persist-tun
verb 3

Здесь server 10.8.0.0 255.255.255.0 задает подсеть для клиентов, push "redirect-gateway" перенаправляет весь трафик через VPN, а tls-auth обеспечивает дополнительную защиту.

Включение IP-пересылки и настройка iptables

Чтобы клиенты могли выходить в интернет, включите IP-пересылку. Раскомментируйте строку в /etc/sysctl.conf:

net.ipv4.ip_forward=1

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

sysctl -p

Настройте iptables. Замените eth0 на ваш основной сетевой интерфейс (проверьте командой ip route):

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -i tun0 -j ACCEPT
iptables -A FORWARD -o tun0 -j ACCEPT

Сохраните правила, установив iptables-persistent:

apt install iptables-persistent -y
netfilter-persistent save

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

Сгенерируйте сертификат для клиента (например, client1):

cd ~/easy-rsa
./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1

Скопируйте файлы ca.crt, client1.crt, client1.key и ta.key на клиентское устройство. Создайте файл конфигурации client1.ovpn:

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

Замените YOUR_SERVER_IP на реальный IP вашего сервера. Импортируйте этот файл в OpenVPN на клиенте.

Запуск сервера и проверка подключения

Запустите OpenVPN и добавьте в автозагрузку:

systemctl start openvpn@server
systemctl enable openvpn@server

Проверьте статус:

systemctl status openvpn@server

Если сервер работает, подключитесь с клиента и проверьте IP-адрес командой curl ifconfig.me. Если отображается IP вашего сервера — всё настроено верно.

Типичные ошибки и их решение

  1. Клиенты подключаются, но нет доступа в интернет. Проверьте, включена ли IP-пересылка (sysctl net.ipv4.ip_forward должно быть 1) и правильно ли настроены правила iptables.
  2. Ошибка прав доступа к файлам. Убедитесь, что все файлы в /etc/openvpn/ доступны для чтения пользователю nobody: chmod 644 /etc/openvpn/*.
  3. Порт 1194 закрыт. Откройте порт в брандмауэре сервера и в панели хостинг-провайдера.
  4. Конфликт подсетей. Если ваша локальная сеть использует 10.8.0.0/24, измените подсеть в конфигурации сервера.

Часто задаваемые вопросы

Как изменить порт OpenVPN?

Измените директиву port в server.conf и в клиентском файле .ovpn укажите новый порт. Не забудьте открыть его в брандмауэре.

Можно ли использовать TCP вместо UDP?

Да, замените proto udp на proto tcp в конфигурациях сервера и клиента. TCP может быть полезен при нестабильном соединении, но обычно UDP быстрее.

Как добавить второго клиента?

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

Как отозвать сертификат клиента?

Используйте команду ./easyrsa revoke client1 в каталоге easy-rsa, затем обновите список отозванных сертификатов: ./easyrsa gen-crl и скопируйте crl.pem в /etc/openvpn/, добавив в конфигурацию сервера crl-verify crl.pem.

Как настроить OpenVPN на роутере?

На роутере обычно используется встроенный клиент OpenVPN. Импортируйте файл .ovpn в веб-интерфейс роутера, указав путь к сертификатам.

Если вам нужен быстрый и простой VPN для личного использования, обратите внимание на OpenVPN в Польше или OpenVPN для Android TV. Для старых систем, таких как Windows XP, может пригодиться VPN для XP.

Мини-чеклист

  • Обновить систему и установить openvpn и easy-rsa
  • Создать PKI и корневой сертификат CA
  • Сгенерировать серверный сертификат и ключ
  • Сгенерировать параметры Диффи-Хеллмана и ta.key
  • Скопировать сертификаты в /etc/openvpn/
  • Создать server.conf с правильными параметрами
  • Включить IP-пересылку в sysctl.conf
  • Настроить iptables для NAT и форвардинга
  • Сохранить правила iptables
  • Создать клиентский сертификат и конфигурацию
  • Запустить OpenVPN и проверить статус
  • Проверить подключение с клиента

Частые ошибки

  • Не включена IP-пересылка
  • Неправильные права на файлы сертификатов
  • Порт 1194 закрыт брандмауэром
  • Конфликт подсетей
  • Неправильно указан IP сервера в конфигурации клиента

Источники и документация

FAQ

Как изменить порт OpenVPN?

Измените директиву port в server.conf и в клиентском файле .ovpn укажите новый порт. Не забудьте открыть его в брандмауэре.

Можно ли использовать TCP вместо UDP?

Да, замените proto udp на proto tcp в конфигурациях сервера и клиента. TCP может быть полезен при нестабильном соединении, но обычно UDP быстрее.

Как добавить второго клиента?

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

Как отозвать сертификат клиента?

Используйте команду ./easyrsa revoke client1 в каталоге easy-rsa, затем обновите список отозванных сертификатов: ./easyrsa gen-crl и скопируйте crl.pem в /etc/openvpn/, добавив в конфигурацию сервера crl-verify crl.pem.

Как настроить OpenVPN на роутере?

На роутере обычно используется встроенный клиент OpenVPN. Импортируйте файл .ovpn в веб-интерфейс роутера, указав путь к сертификатам.

Хотите перейти сразу к рабочему доступу?

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

Получить доступ

Дальше по теме

Связанные статьи