bolt Valebyte VPS від $4/міс — NVMe, запуск за 60 секунд.

Отримати VPS arrow_forward

Як встановити OpenVPN на VPS?

calendar_month March 17, 2025 schedule 9 хв. читання visibility 571 переглядів
person
Valebyte Team
Як встановити OpenVPN на VPS?
summarize

TL;DR

  • Для работы OpenVPN требуется VPS с минимум 512 МБ RAM, но для стабильности рекомендуется 1 ГБ.
  • Протокол использует SSL/TLS и библиотеку OpenSSL (AES) для создания защищенных зашифрованных туннелей.
  • Поддержка TCP и UDP позволяет адаптировать VPN под разные сетевые условия и эффективно обходить фаерволы.
  • Свой VPN на VPS дает полный контроль над данными и исключает зависимость от политик сторонних провайдеров.

Встановлення OpenVPN на ваш VPS — це чудовий спосіб забезпечити безпечне та зашифроване з'єднання, захистити вашу конфіденційність та обійти географічні обмеження, створивши власний VPN-сервер. Процес включає декілька ключових етапів: від підготовки сервера та встановлення необхідних пакетів до генерації криптографічних ключів, налаштування конфігураційних файлів та запуску сервісу. У цій статті ми детально розберемо кожен крок, щоб ви могли розгорнути OpenVPN на своєму віртуальному сервері, перетворивши його на надійну точку доступу для ваших пристроїв.

Чому OpenVPN? Короткий огляд для сисадміна

A secure digital tunnel connecting a laptop to a server rack, symbolizing OpenVPN's role in creating secure, encrypted connections.

У світі, де кібербезпека стає не просто опцією, а необхідністю, OpenVPN зарекомендував себе як одне з найнадійніших та гнучких рішень для створення приватних віртуальних мереж. Для нас, сисадмінів, це не просто інструмент, а потужний союзник у забезпеченні безпеки даних та доступу до ресурсів.

Ключові переваги OpenVPN:

  • Безпека: Використовує SSL/TLS для обміну ключами та OpenSSL для шифрування даних, підтримуючи широкий спектр алгоритмів (AES, Blowfish та ін.). Це дозволяє будувати тунелі з високим рівнем захисту.
  • Гнучкість: Може працювати як по TCP, так і по UDP, що дає можливість адаптуватися до різних мережевих умов та обходити фаєрволи. Підтримка різних методів автентифікації, включаючи сертифікати, логіни/паролі, а також двофакторну автентифікацію.
  • Кросплатформність: Доступні клієнти для всіх популярних операційних систем: Windows, macOS, Linux, Android, iOS.
  • Відкритий вихідний код: Прозорість коду дозволяє спільноті постійно перевіряти його на вразливості, що підвищує довіру до рішення.
  • Обхід блокувань: Дозволяє отримати доступ до ресурсів, обмежених за географічною ознакою або заблокованих провайдером.

Розгортання власного OpenVPN сервера на VPS дає вам повний контроль над вашою VPN-інфраструктурою, на відміну від сторонніх VPN-провайдерів, де ви змушені довіряти їх політиці конфіденційності.

Підготовка VPS: Що потрібно знати перед стартом

Перш ніж ми перейдемо до встановлення, переконаємося, що ваш VPS готовий до роботи. Ці кроки критично важливі для безпеки та стабільності.

1. Вибір VPS та ОС

Для OpenVPN підійде практично будь-який VPS з достатнім обсягом оперативної пам'яті (мінімум 512 МБ, краще 1 ГБ для комфортної роботи) та дискового простору (декілька ГБ). В якості операційної системи ми будемо використовувати Ubuntu Server 22.04 LTS, як одну з найпопулярніших та добре документованих. Процес буде дуже схожим і для інших Debian-based дистрибутивів.

2. Підключення до VPS через SSH

Першим ділом, підключаємося до вашого VPS. Рекомендується використовувати автентифікацію за SSH-ключами замість пароля для підвищення безпеки.

ssh ваш_пользователь@ваш_ip_адрес_vps

Якщо ви використовуєте SSH-ключі, переконайтеся, що ваш публічний ключ доданий на сервер, а приватний ключ доступний на вашій локальній машині. Якщо ви використовуєте пароль, будьте готові ввести його.

Порада для колег: Якщо ви зіткнулися з помилкою підключення, перевірте, чи запущено SSH-сервіс на VPS (`sudo systemctl status sshd`), чи відкрито порт 22 у фаєрволі сервера і чи немає проблем з мережевою зв'язністю.

3. Оновлення системи

Завжди починайте з оновлення пакетної бази та встановлених пакетів. Це гарантує, що у вас будуть останні версії ПЗ та виправлення безпеки.

sudo apt update && sudo apt upgrade -y

4. Налаштування базового фаєрвола (UFW)

Фаєрвол — ваш перший рубіж оборони. Ми будемо використовувати UFW (Uncomplicated Firewall) для його простоти та ефективності.

sudo apt install ufw -y
sudo ufw allow OpenSSH # Разрешаем SSH, чтобы не потерять доступ
sudo ufw enable # Включаем фаервол
sudo ufw status # Проверяем статус

На цьому етапі фаєрвол дозволяє тільки SSH-з'єднання. Пізніше ми додамо правила для OpenVPN.

Потрібен надійний VPS для OpenVPN?

Оберіть ідеальний VPS-хостинг, щоб ваш OpenVPN працював бездоганно та безпечно. — from €4.49/mo.

Вибрати VPS-хостинг →

Встановлення та налаштування OpenVPN

Тепер, коли сервер готовий, переходимо до основної частини.

Крок 1: Встановлення OpenVPN та Easy-RSA

Нам знадобиться сам OpenVPN та Easy-RSA — набір скриптів для управління інфраструктурою відкритих ключів (PKI).

sudo apt install openvpn easy-rsa -y

Що таке Easy-RSA? Це скрипти, які спрощують процес створення та управління сертифікатами, необхідними для OpenVPN. Вони дозволяють легко створити кореневий центр сертифікації (CA), сертифікати для сервера та клієнтів, а також Diffie-Hellman параметри.

Крок 2: Налаштування PKI з Easy-RSA

Безпека OpenVPN багато в чому залежить від правильно налаштованої PKI. Ми створимо власний Центр Сертифікації (CA), який буде підписувати сертифікати для нашого OpenVPN сервера та клієнтів.

2.1. Підготовка робочої директорії Easy-RSA

Скопіюйте скрипти Easy-RSA в окрему директорію, наприклад, в `/etc/openvpn/easy-rsa/`, щоб працювати з ними незалежно від системних файлів.

sudo make-cadir /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa

2.2. Ініціалізація PKI

Запустіть ініціалізацію нового PKI-середовища. Це створить необхідні піддиректорії та файли.

./easyrsa init-pki

2.3. Створення кореневого Центру Сертифікації (CA)

CA буде засвідчувати справжність всіх сертифікатів в нашій VPN. Вам буде запропоновано ввести Common Name (CN) для CA. Можна залишити значення за замовчуванням або ввести щось осмислене, наприклад, "Valebyte OpenVPN CA".

./easyrsa build-ca nopass

Використання `nopass` означає, що приватний ключ CA не буде захищений паролем. Для production-середовища з високими вимогами до безпеки рекомендується використовувати пароль, але це ускладнить автоматизацію та потребує ручного введення пароля при кожному підписанні.

2.4. Генерація сертифіката та ключа сервера

Тепер створимо запит на сертифікат для нашого OpenVPN сервера, а потім підпишемо його нашим CA.

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

Вам буде запропоновано підтвердити підписання сертифіката. Введіть `yes`.

2.5. Генерація Diffie-Hellman параметрів

Параметри Діффі-Хеллмана використовуються для безпечного обміну ключами між сервером та клієнтами. Цей процес може зайняти деякий час, в залежності від потужності вашого VPS.

./easyrsa gen-dh

2.6. Створення ключа TLS-Auth (HMAC)

Ключ TLS-Auth додає додатковий рівень безпеки, захищаючи OpenVPN від DoS-атак та сканування портів. Це вкрай рекомендована міра.

openvpn --genkey --secret ta.key

Цей ключ буде використовуватися як сервером, так і клієнтами.

Крок 3: Налаштування OpenVPN сервера

Після генерації всіх ключів та сертифікатів, прийшов час налаштувати сам OpenVPN сервер.

3.1. Копіювання ключів та сертифікатів

Перенесемо згенеровані файли в директорію OpenVPN.

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

3.2. Створення конфігураційного файла сервера

OpenVPN поставляється з прикладом конфігураційного файла, який ми використаємо як основу.

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
sudo gzip -d /etc/openvpn/server.conf.gz
sudo nano /etc/openvpn/server.conf

Відредагуйте файл `/etc/openvpn/server.conf`, внісши наступні зміни. Зверніть увагу на коментарі:

# Указываем порт и протокол. UDP предпочтительнее для VPN из-за скорости.
port 1194
proto udp

# Вказуємо тип тунелю. tun для IP-маршрутизації.
dev tun

# Шляхи до наших ключів і сертифікатів.
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0 # 0 для сервера

# Підмережа для клієнтів VPN. Виберіть діапазон, який не перетинається з вашою локальною мережею.
server 10.8.0.0 255.255.255.0

# Перенаправляємо весь трафік клієнта через VPN.
push "redirect-gateway def1 bypass-dhcp"

# Призначаємо DNS-сервери для клієнтів. Можна використовувати публічні DNS (Cloudflare, Google).
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 1.0.0.1"

# Дозволяємо клієнтам бачити один одного (опціонально, для безпеки краще закоментувати).
#client-to-client

# Дозволяємо декільком клієнтам підключатися з одним сертифікатом/ключем (не рекомендується для унікальних користувачів).
#duplicate-cn

# Параметри keepalive для виявлення неактивних клієнтів.
keepalive 10 120

# Шифрування та аутентифікація. Рекомендуються сучасні алгоритми.
cipher AES-256-GCM
auth SHA256

# Стиснення даних (опціонально, може впливати на продуктивність).
#compress lz4-v2
#push "compress lz4-v2"

# Безпека: запуск OpenVPN від непривілейованого користувача.
user nobody
group nogroup

# Збереження стану ключів і тунелю при перезапуску.
persist-key
persist-tun

# Статус логування.
status /var/log/openvpn-status.log
log /var/log/openvpn.log
verb 3 # Рівень деталізації логів (3 - хороший баланс)

# Для роботи NAT
explicit-exit-notify 1

Збережіть та закрийте файл.

3.3. Увімкнення IP-форвардингу

Щоб ваш VPS міг перенаправляти трафік від VPN-клієнтів в інтернет, необхідно увімкнути IP-форвардинг.

sudo nano /etc/sysctl.conf

Знайдіть рядок `#net.ipv4.ip_forward=1` і розкоментуйте його (видаліть `#`):

net.ipv4.ip_forward=1

Застосуйте зміни:

sudo sysctl -p

3.4. Налаштування фаєрволу для OpenVPN

Тепер потрібно дозволити трафік OpenVPN та налаштувати NAT, щоб клієнти могли виходити в інтернет через ваш VPS. Для UFW це робиться через файл `before.rules`. Спочатку дізнайтеся ім'я вашого мережевого інтерфейсу (зазвичай `eth0` або `ens3`).

ip route show default | awk '/default via/ {print $5}'

Далі, відредагуйте `/etc/ufw/before.rules`:

sudo nano /etc/ufw/before.rules

Додайте наступні рядки в самий початок файлу, після рядка `:ufw-before-logging-forward - [0:0]`:

# START OPENVPN RULES
# Allow traffic from OpenVPN client to any interface
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE # Замініть eth0 на ім'я вашого основного мережевого інтерфейсу
COMMIT
# END OPENVPN RULES

Тепер додайте правила для дозволу OpenVPN трафіку:

sudo ufw allow 1194/udp
sudo ufw allow in on tun0 # Дозволяємо трафік на інтерфейсі tun0, який створить OpenVPN
sudo ufw disable && sudo ufw enable # Перезавантажуємо UFW, щоб застосувати правила

Перевірте статус UFW: `sudo ufw status`.

Крок 4: Запуск та перевірка OpenVPN сервера

Запустіть OpenVPN сервіс і переконайтеся, що він працює коректно.

sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server
sudo systemctl status openvpn@server

Якщо сервіс запущено успішно, ви повинні побачити активний статус. Якщо є помилки, перевірте логи:

sudo journalctl -u openvpn@server -f
rocket_launch Швидкий вибір

Шукаєте сервер, який просто працює?

Valebyte VPS — NVMe, підтримка 24/7, розгортання за 60 секунд.

Переглянути тарифи VPS arrow_forward

Налаштування клієнта OpenVPN

Тепер, коли сервер готовий, нам потрібно створити клієнтські конфігураційні файли.

Крок 1: Генерація клієнтських сертифікатів та ключів

Поверніться в директорію `easy-rsa` на сервері.

cd /etc/openvpn/easy-rsa

Створіть запит на сертифікат для клієнта (наприклад, `client1`) і підпишіть його:

./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1

Ви можете повторювати цей крок для кожного нового клієнта, змінюючи `client1` на унікальне ім'я.

Крок 2: Збір клієнтських файлів

Для кожного клієнта вам знадобляться наступні файли:

  • ca.crt (кореневий сертифікат CA)
  • client1.crt (сертифікат клієнта)
  • client1.key (приватний ключ клієнта)
  • ta.key (ключ TLS-Auth)

Ці файли знаходяться в наступних місцях (з директорії `/etc/openvpn/easy-rsa/`):

  • pki/ca.crt
  • pki/issued/client1.crt
  • pki/private/client1.key
  • /etc/openvpn/ta.key (його потрібно скопіювати з `/etc/openvpn/` назад в `easy-rsa` або просто вказати шлях)

Кращий спосіб отримати їх на свою локальну машину — використовувати `scp`:

# З вашого локального комп'ютера
scp ваш_пользователь@ваш_ip_адрес_vps:/etc/openvpn/easy-rsa/pki/ca.crt .
scp ваш_пользователь@ваш_ip_адрес_vps:/etc/openvpn/easy-rsa/pki/issued/client1.crt .
scp ваш_пользователь@ваш_ip_адрес_vps:/etc/openvpn/easy-rsa/pki/private/client1.key .
scp ваш_пользователь@ваш_ip_адрес_vps:/etc/openvpn/ta.key .

Крок 3: Створення клієнтського конфігураційного файлу (.ovpn)

Створіть файл `client1.ovpn` на вашій локальній машині з наступним вмістом. Замініть `ВАШ_IP_АДРЕС_VPS` на реальний IP вашого сервера.

client
dev tun
proto udp

# IP-адреса вашого OpenVPN сервера та порт.
remote ВАШ_IP_АДРЕС_VPS 1194

resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server

cipher AES-256-GCM
auth SHA256

key-direction 1 # 1 для клієнта

verb 3

<ca>
# Содержимое файла ca.crt
</ca>
<cert>
# Содержимое файла client1.crt
</cert>
<key>
# Содержимое файла client1.key
</key>
<tls-auth>
# Содержимое файла ta.key
</tls-auth>

Вставте вміст кожного з файлів (`ca.crt`, `client1.crt`, `client1.key`, `ta.key`) між відповідними тегами (`<ca>...</ca>` і т.д.). Це зручно, оскільки створює один файл `.ovpn`, який легко розповсюджувати.

Крок 4: Підключення клієнта

Встановіть OpenVPN клієнтське ПЗ на ваш пристрій (Windows, macOS, Linux, iOS, Android). Імпортуйте файл `client1.ovpn` і підключіться. Після підключення переконайтеся, що ваша публічна IP-адреса змінилася на IP вашого VPS, і перевірте відсутність DNS-витоків на сайтах на кшталт `ip.skr.sh` або `dnsleaktest.com`.

Управління користувачами та відкликання сертифікатів

Для сисадміна важливо вміти керувати доступом. Якщо клієнтський сертифікат скомпрометовано або користувач більше не повинен мати доступу, його необхідно відкликати.

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

Потім додайте в `server.conf` рядок:

crl-verify crl.pem

І перезапустіть OpenVPN сервіс: `sudo systemctl restart openvpn@server`.

Висновки

Ми пройшли через повний цикл встановлення та налаштування OpenVPN сервера на VPS, починаючи від базової підготовки сервера і закінчуючи створенням клієнтських конфігурацій. Тепер у вас є власний, безпечний і повністю контрольований VPN-сервер. Це не тільки підвищує вашу конфіденційність і безпеку в мережі, але й дає вам гнучкість в управлінні доступом до ваших ресурсів.

Пам'ятайте, що підтримка сервера в актуальному стані, регулярне оновлення ПЗ і моніторинг логів - це невід'ємна частина відповідального адміністрування. Експериментуйте з різними налаштуваннями OpenVPN, такими як багатофакторна автентифікація або використання різних портів/протоколів, щоб ще більше адаптувати його під свої потреби.

Якщо вам потрібен надійний і продуктивний VPS для вашого OpenVPN сервера або інших проектів, зверніть увагу на пропозиції Valebyte. Наші сервери оптимізовані для стабільної роботи і надають широкі можливості для ваших завдань.

Масштабуйте OpenVPN з хмарними інстансами

Отримайте гнучкість і продуктивність для вашого OpenVPN, коли вам це потрібно. Наші хмарні інстанси готові до роботи.

Почати з хмари →
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.