Встановлення OpenVPN на ваш VPS — це чудовий спосіб забезпечити безпечне та зашифроване з'єднання, захистити вашу конфіденційність та обійти географічні обмеження, створивши власний VPN-сервер. Процес включає декілька ключових етапів: від підготовки сервера та встановлення необхідних пакетів до генерації криптографічних ключів, налаштування конфігураційних файлів та запуску сервісу. У цій статті ми детально розберемо кожен крок, щоб ви могли розгорнути OpenVPN на своєму віртуальному сервері, перетворивши його на надійну точку доступу для ваших пристроїв.
Чому OpenVPN? Короткий огляд для сисадміна
У світі, де кібербезпека стає не просто опцією, а необхідністю, 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
Quick pick
Looking for a server that just works?
Valebyte VPS — NVMe, 24/7 support, deploy in 60 seconds.
View VPS plans
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, коли вам це потрібно. Наші хмарні інстанси готові до роботи.
Почати з хмари →