cp.lv — VPS, выделенные и облачные серверы

cp.lv (LANGMARKET LLP) — хостинг-провайдер: VPS, выделенные и облачные серверы на NVMe с выбором ОС, полным root-доступом и поддержкой 24/7. Тест-период до оплаты: выделенные серверы — 5 дней, VPS и облако — 5 часов.

Contact Info
LANGMARKET LLP
Rīga, Latvija

+371 00 000 000

Follow Us

Личный кабинет

Язык

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

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

Запустить на сервере одной командой (сначала проверьте содержимое скрипта ниже):

curl -sSL https://cp.lv/scripts/openvpn-na-servere.sh | sudo bash

…или через wget:

wget -qO- https://cp.lv/scripts/openvpn-na-servere.sh | sudo bash

Содержимое скрипта openvpn-na-servere.sh:

#!/usr/bin/env bash
# Ручная установка OpenVPN: CA, сертификаты, конфиг сервера (Ubuntu/Debian)
set -euo pipefail

RSA_DIR=/etc/openvpn/easy-rsa
WAN_IF=$(ip route list default | awk '{print $5; exit}')
export EASYRSA_BATCH=1

# 1. Установка пакетов
sudo apt update && sudo apt install -y openvpn easy-rsa

# 2. Центр сертификации и ключи (неинтерактивно)
sudo make-cadir "$RSA_DIR"
cd "$RSA_DIR"
sudo -E ./easyrsa init-pki
sudo -E ./easyrsa build-ca nopass
sudo -E ./easyrsa gen-req server nopass
sudo -E ./easyrsa sign-req server server
sudo -E ./easyrsa gen-dh
sudo openvpn --genkey secret /etc/openvpn/ta.key
sudo cp pki/ca.crt pki/dh.pem pki/issued/server.crt pki/private/server.key /etc/openvpn/

# 3. Конфиг сервера (кавычки 'EOF' — директивы пишутся дословно)
sudo tee /etc/openvpn/server.conf > /dev/null << 'EOF'
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0
server 10.9.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"
keepalive 10 120
cipher AES-256-GCM
user nobody
group nogroup
persist-key
persist-tun
verb 3
EOF

# 4. Форвардинг, NAT и firewall
echo "net.ipv4.ip_forward = 1" | sudo tee /etc/sysctl.d/99-openvpn.conf
sudo sysctl -p /etc/sysctl.d/99-openvpn.conf
sudo iptables -t nat -A POSTROUTING -s 10.9.0.0/24 -o "$WAN_IF" -j MASQUERADE
sudo ufw allow 1194/udp || true

# 5. Запуск
sudo systemctl enable --now openvpn@server
echo "Готово: OpenVPN слушает 1194/udp. Клиента создайте через easyrsa gen-req."

Быстрее всего OpenVPN разворачивается готовым скриптом: он ставит пакеты, создаёт центр сертификации, генерирует конфиг сервера и первый клиентский .ovpn-профиль. Ниже — и автоматический способ, и ручная настройка через easy-rsa, чтобы понимать, что происходит под капотом.

Когда выбирать OpenVPN

OpenVPN проверен временем, работает по TCP и UDP, легко проходит через жёсткие firewall (порт 443/TCP маскируется под HTTPS). Если нужна максимальная совместимость и обход блокировок — это надёжный выбор. Для скорости и простоты чаще берут WireGuard.

Требования: VPS с 1 vCPU и 512 МБ RAM, Ubuntu/Debian, root-доступ, публичный IPv4.

Быстрый способ: скрипт

Популярный проверенный скрипт разворачивает всё в интерактивном режиме:

apt update && apt install -y curl
curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
chmod +x openvpn-install.sh
./openvpn-install.sh

Скрипт спросит IP, протокол (UDP рекомендуется), порт (1194 по умолчанию), DNS. По завершении в домашней папке появится файл <имя>.ovpn — это готовый профиль клиента.

Чтобы добавить нового клиента позже, запустите скрипт повторно — он предложит меню.

Ручная настройка

Шаг 1. Установка пакетов

apt update
apt install -y openvpn easy-rsa

Шаг 2. Центр сертификации

make-cadir /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
./easyrsa init-pki
./easyrsa build-ca nopass

Шаг 3. Сертификат сервера и ключи

./easyrsa gen-req server nopass
./easyrsa sign-req server server
./easyrsa gen-dh
openvpn --genkey secret /etc/openvpn/ta.key

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

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

Шаг 4. Конфиг сервера

Откройте /etc/openvpn/server.conf в редакторе (sudo nano /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
server 10.9.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"
keepalive 10 120
cipher AES-256-GCM
user nobody
group nogroup
persist-key
persist-tun
verb 3

Либо создайте конфиг целиком одной командой — скопируйте и вставьте в консоль (кавычки 'EOF' записывают директивы дословно):

sudo tee /etc/openvpn/server.conf > /dev/null << 'EOF'
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0
server 10.9.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"
keepalive 10 120
cipher AES-256-GCM
user nobody
group nogroup
persist-key
persist-tun
verb 3
EOF

Шаг 5. Форвардинг и firewall

echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/99-openvpn.conf
sysctl -p /etc/sysctl.d/99-openvpn.conf
iptables -t nat -A POSTROUTING -s 10.9.0.0/24 -o eth0 -j MASQUERADE
ufw allow 1194/udp

Замените eth0 на ваш внешний интерфейс (ip route list default).

Шаг 6. Запуск

systemctl enable --now openvpn@server
systemctl status openvpn@server

Генерация клиентского профиля

Создайте ключ клиента:

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

Соберите .ovpn, встроив сертификаты между тегами <ca>, <cert>, <key>, <tls-auth>, и укажите:

client
dev tun
proto udp
remote <IP_вашего_VPS> 1194
cipher AES-256-GCM
key-direction 1

Передайте файл на устройство и импортируйте в клиент OpenVPN Connect.

Сравнение с WireGuard

Параметр OpenVPN WireGuard
Скорость Средняя Высокая
Обход блокировок Отличный (TCP/443) Средний
Простота конфига Сложнее Проще
Протокол TCP/UDP UDP

Отзыв доступа клиента

Если ключ клиента скомпрометирован, отзовите сертификат и обновите список отзыва (CRL):

cd /etc/openvpn/easy-rsa
./easyrsa revoke client1
./easyrsa gen-crl
cp pki/crl.pem /etc/openvpn/

Добавьте в server.conf строку и перезапустите сервис:

crl-verify crl.pem
systemctl restart openvpn@server

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

Усиление безопасности

Несколько практик, которые стоит применить сразу:

  • ограничьте права на ключи: chmod 600 /etc/openvpn/server.key /etc/openvpn/ta.key;
  • запускайте демон от непривилегированного пользователя (user nobody, group nogroup — уже в конфиге);
  • используйте только современный шифр AES-256-GCM и параметр tls-auth для защиты от сканирования;
  • закройте firewall’ом всё, кроме порта VPN и SSH.

Проверка и диагностика

Убедитесь, что сервис слушает нужный порт:

ss -tulpn | grep 1194

Логи подключений и ошибок:

journalctl -u openvpn@server -f

Проверьте, что интерфейс tun0 создан:

ip a show tun0

Если клиент подключается, но нет доступа в интернет — почти всегда причина в отсутствии IP-форвардинга или неверном интерфейсе в правиле MASQUERADE.

Частые вопросы

UDP или TCP? UDP быстрее и рекомендуется по умолчанию. TCP на порту 443 используйте, если провайдер блокирует VPN.

Как отозвать доступ клиента? ./easyrsa revoke client1, затем ./easyrsa gen-crl и перезапуск сервиса.

Почему нет интернета после подключения? Проверьте IP-форвардинг и правило MASQUERADE с правильным интерфейсом.

Можно ли изменить порт на 443? Да, поменяйте port и proto tcp в конфиге и откройте порт в firewall — так VPN сложнее заблокировать.

Скрипт или ручная настройка? Скрипт — быстро и безопасно для типовых задач. Ручная настройка нужна для тонкого контроля.


Нужен сервер под VPN? Смотрите VPS для VPN и безопасности и аренду VPS. Настроим за вас — Администрирование серверов.

Инга Витола

Инга Витола

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