VPN для безпечного адміністрування. Як налаштувати OpenVPN та WireGuard?

Віддалене адміністрування серверів є щоденною практикою DevOps-інженерів та системних адміністраторів, і забезпечення надійного з’єднання між системами та сервером є ключовим для запобігання кіберзагрозам. 

VPN (Virtual Private Network) надає шифрування трафіку, що дозволяє якісно керувати серверами, незалежно від того, де ти перебуваєш.

У цьому матеріалі розглянемо, як налаштувати OpenVPN та WireGuard, а також надамо поради з регулювання сертифікатів і маршрутизації для захисту з’єднання.

Що таке VPN і навіщо він потрібен?

VPN створює захищений “тунель” між твоїм комп’ютером та сервером через Інтернет. Це особливо важливо під час роботи в публічних або ненадійних мережах, де зловмисники можуть перехопити не шифровані дані. 

За допомогою VPN ти отримуєш:

  • Шифрування трафіку. Дані передаються у зашифрованому вигляді, що ускладнює їх перехоплення.
  • Анонімність. Твоя IP-адреса приховується за IP-адресою VPN-сервера, що забезпечує додаткову конфіденційність.
  • Захист від атак. Використання VPN допомагає захиститися від атак типу Man-in-the-Middle (MITM), де зловмисник може перехоплювати або змінювати твої дані.

Тепер розглянемо процес налаштування двох популярних VPN-інструментів — OpenVPN та WireGuard.

Налаштування OpenVPN

OpenVPN — часто використовуваний і надійний VPN-протокол, який підтримує безліч конфігураційних можливостей, що робить його універсальним рішенням для різних типів мереж. Його головною перевагою є використання SSL/TLS для захищеного шифрування з’єднання, а також можливість налаштування на роботу через будь-який порт і протокол (TCP або UDP).

Крок 1. Встановлення OpenVPN

На сервері з Ubuntu ти можеш встановити OpenVPN за допомогою команд:

sudo apt-get update
sudo apt-get install openvpn easy-rsa

easy-rsa — інструмент для створення ключів і сертифікатів, який використовується для захисту VPN-з’єднання.

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

OpenVPN вимагає створення сертифікатів для сервера і клієнтів. Це потрібно для автентифікації під час встановлення з’єднання.

1. Ініціалізуйте easy-rsa:

make-cadir ~/openvpn-ca

cd ~/openvpn-ca

source ./vars

./clean-all

2. Згенеруй сертифікати:

Сертифікат для CA (Certificate Authority):

./build-ca

Сертифікат для сервера:

./build-key-server server

Ключі для клієнтів:

./build-key client

Diffie-Hellman параметри для обміну ключами:

./build-dh

Ці сертифікати гарантують, що лише сервер і клієнти з правильними ключами можуть встановити з’єднання.

Крок 3. Налаштування конфігураційного файлу

Наступним кроком є налаштування серверного конфігураційного файлу. Відкрий /etc/openvpn/server.conf і додай такі параметри:

port 1194               # Порт для з'єднання
proto udp               # Протокол (UDP або TCP)
dev tun                 # Віртуальний тунельний інтерфейс
ca ca.crt               # Сертифікат авторизації
cert server.crt         # Сертифікат сервера
key server.key          # Приватний ключ сервера
dh dh.pem               # Diffie-Hellman параметри

Крок 4. Налаштування маршрутизації та трафіку

Щоб VPN трафік йшов через сервер, потрібно налаштувати маршрутизацію:

push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"

Також необхідно дозволити IP Forwarding:

echo 1 > /proc/sys/net/ipv4/ip_forward

Або зміни значення в файлі /etc/sysctl.conf:

net.ipv4.ip_forward=1

Активуй зміни:

sudo sysctl -p

Крок 5. Запуск і перевірка

Запусти OpenVPN:

sudo systemctl start openvpn@server

Переконайся, що сервіс працює:

sudo systemctl status openvpn@server

Налаштування WireGuard

WireGuard — новий VPN-протокол, відомий своєю простотою, швидкістю та високим рівнем безпеки. Його архітектура набагато легша, ніж в OpenVPN, що робить його швидшим та простішим для налаштування.

Крок 1. Встановлення WireGuard

Встанови WireGuard на Ubuntu за допомогою:

sudo apt-get update
sudo apt-get install wireguard

Крок 2. Генерація ключів

WireGuard використовує пари приватних і публічних ключів для автентифікації. Згенеруй ключі для сервера і клієнта:

wg genkey | tee privatekey | wg pubkey > publickey

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

Створи файл конфігурації /etc/wireguard/wg0.conf для серверної частини:

[Interface]
PrivateKey = <server_private_key>
Address = 10.0.0.1/24
ListenPort = 51820
[Peer]
PublicKey = <client_public_key>
AllowedIPs = 10.0.0.2/32

Крок 4. Налаштування клієнта

Клієнт має свій власний конфігураційний файл, наприклад, на машині з Ubuntu або іншою ОС:

[Interface]
PrivateKey = <client_private_key>
Address = 10.0.0.2/24
[Peer]
PublicKey = <server_public_key>
Endpoint = <server_ip>:51820
AllowedIPs = 0.0.0.0/0

Крок 5. Запуск і перевірка

Запусти інтерфейс WireGuard:

sudo wg-quick up wg0

Для перевірки стану використовуй:

sudo wg

Поради для безпечного налаштування VPN

  1. Постійно оновлюй VPN-сервери для захисту від нових вразливостей.
  2. Для OpenVPN використовуй сертифікати з надійних джерел і регулярно перевіряй їх.
  3. Приватні ключі мають бути захищеними. Вони ніколи не повинні бути доступними для сторонніх осіб.
  4. Обмеж доступ до твого сервера через файрвол, щоб трафік йшов виключно через VPN.
  5. Переконайся, що використовується надійний DNS-сервер, щоб уникнути витоку даних.

Підсумуємо

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

Обирай той інструмент, який найкраще відповідає твоїм потребам, і завжди приділяй особливу увагу налаштуванню безпеки.

Розвивайся разом з ITEDU! Переглянь усі напрями навчання та обери потрібний. Дату, час та формат погодимо разом.

Залишити відповідь

Дякуємо, що поділились