OpenVPN — один из самых популярных VPN-протоколов, обеспечивающий высокий уровень безопасности, поддержку большинства операционных систем и гибкие возможности настройки. В данной инструкции рассмотрена установка OpenVPN на VPS под управлением Ubuntu 22.04 или Ubuntu 24.04.
Перед началом работы убедитесь, что у вас есть:
- VPS с Ubuntu 22.04 или новее;
- Root-доступ к серверу;
- Публичный IPv4-адрес;
- SSH-клиент для подключения к серверу.
Шаг 1. Подключение к серверу
Подключитесь к серверу по SSH:
ssh root@SERVER_IP
Замените SERVER_IP на IP-адрес вашего VPS.
Шаг 2. Обновление системы
Обновите систему:
apt update && apt upgrade -y
Шаг 3. Установка OpenVPN и Easy-RSA
Установите OpenVPN и инструменты для создания сертификатов:
apt install openvpn easy-rsa -y
Проверьте установку:
openvpn --version
Шаг 4. Настройка центра сертификации (CA)
Создайте каталог Easy-RSA:
make-cadir ~/easy-rsa
cd ~/easy-rsa
Инициализируйте инфраструктуру открытых ключей:
./easyrsa init-pki
Создайте корневой сертификат:
./easyrsa build-ca nopass
Введите название организации или нажмите Enter для использования значения по умолчанию.
Шаг 5. Создание сертификата сервера
Создайте сертификат сервера:
./easyrsa build-server-full server nopass
Сгенерируйте параметры Диффи-Хеллмана:
./easyrsa gen-dh
Создайте TLS-ключ защиты:
openvpn --genkey secret ta.key
Шаг 6. Создание сертификата клиента
Создайте клиентский сертификат:
./easyrsa build-client-full client1 nopass
При необходимости можно создавать дополнительные клиентские сертификаты для каждого устройства.
Шаг 7. Копирование файлов OpenVPN
Скопируйте необходимые файлы:
cp pki/ca.crt /etc/openvpn/server/
cp pki/private/server.key /etc/openvpn/server/
cp pki/issued/server.crt /etc/openvpn/server/
cp pki/dh.pem /etc/openvpn/server/
cp ta.key /etc/openvpn/server/
Шаг 8. Создание конфигурации OpenVPN
Создайте файл конфигурации:
nano /etc/openvpn/server/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.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
cipher AES-256-GCM
auth SHA256
persist-key
persist-tun
user nobody
group nogroup
verb 3
Шаг 9. Включение IP Forwarding
Откройте системный файл:
nano /etc/sysctl.conf
Найдите строку:
#net.ipv4.ip_forward=1
и замените на:
net.ipv4.ip_forward=1
Примените настройки:
sysctl -p
Шаг 10. Настройка NAT
Определите сетевой интерфейс сервера:
ip route
Обычно это eth0 или ens3.
Добавьте правило NAT:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Сохраните правила:
apt install iptables-persistent -y
netfilter-persistent save
Шаг 11. Запуск OpenVPN
Запустите службу:
systemctl start openvpn-server@server
Добавьте автозапуск:
systemctl enable openvpn-server@server
Проверьте состояние:
systemctl status openvpn-server@server
Шаг 12. Настройка Firewall
Если используется UFW:
ufw allow 1194/udp
Разрешите маршрутизацию:
ufw allow OpenSSH
ufw reload
Проверьте статус:
ufw status
Шаг 13. Создание клиентского конфигурационного файла
Создайте файл:
nano client.ovpn
Добавьте:
client
dev tun
proto udp
remote SERVER_IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-GCM
auth SHA256
verb 3
Замените SERVER_IP на IP-адрес вашего VPS.
Шаг 14. Добавление сертификатов в клиентский файл
Добавьте содержимое следующих файлов в конец client.ovpn:
<ca>
Содержимое файла ca.crt
</ca>
<cert>
Содержимое client1.crt
</cert>
<key>
Содержимое client1.key
</key>
<tls-auth>
Содержимое ta.key
</tls-auth>
key-direction 1
После этого клиентский файл будет полностью готов к использованию.
Подключение Windows
- Скачайте и установите OpenVPN Connect.
- Запустите программу.
- Нажмите Import Profile.
- Выберите файл
client.ovpn. - Нажмите Connect.
Подключение Android
- Установите OpenVPN Connect из Google Play.
- Нажмите Import Profile.
- Выберите файл
client.ovpn. - Подключитесь к VPN.
Подключение iPhone
- Установите OpenVPN Connect из App Store.
- Импортируйте файл
client.ovpn. - Разрешите создание VPN-подключения.
- Подключитесь к серверу.
Проверка работы VPN
После подключения откройте:
https://whatismyipaddress.com
IP-адрес должен соответствовать IP вашего VPS.
Добавление новых устройств
Для каждого нового устройства рекомендуется:
- Создать отдельный клиентский сертификат.
- Сгенерировать отдельный файл
.ovpn. - Использовать уникальное имя клиента.
Частые ошибки
Клиент подключается, но интернет отсутствует
Проверьте включение IP Forwarding:
sysctl net.ipv4.ip_forward
Результат должен быть:
net.ipv4.ip_forward = 1
TLS Handshake Failed
Проверьте правильность сертификатов и содержимое файла ta.key.
Не удается подключиться к серверу
Убедитесь, что открыт порт UDP 1194 и отсутствуют ограничения со стороны Firewall или провайдера VPS.
AUTH FAILED
Проверьте правильность клиентского сертификата и ключа.
VPN не запускается после перезагрузки
Убедитесь, что служба добавлена в автозагрузку:
systemctl enable openvpn-server@server