Розбіжності
Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
| Наступна ревізія | Попередня ревізія | ||
| linux:proxy_vpn:openvpn_v2 [17/03/2025 11:11] – створено osvex | linux:proxy_vpn:openvpn_v2 [Невідома дата] (поточний) – зовнішнє редагування (Невідома дата) 127.0.0.1 | ||
|---|---|---|---|
| Рядок 1: | Рядок 1: | ||
| - | ====== OpenVPN | + | ====== OpenVPN ====== |
| - | Ось повна детальна інструкція для встановлення OpenVPN на Ubuntu 22.04, | + | Повна детальна інструкція для встановлення OpenVPN на Ubuntu 22.04, EasyRSA 3. |
| ---- | ---- | ||
| - | **📌 | + | ==== Встановлення OpenVPN та EasyRSA |
| - | **1️⃣ | + | **1) Оновлення системи** |
| - | < | + | < |
| + | sudo apt update && sudo apt upgrade -y | ||
| </ | </ | ||
| - | 📍 **Директорія: | ||
| - | **2️⃣ | + | **2) Встановлення OpenVPN та необхідних пакетів** |
| - | < | + | < |
| + | sudo apt install openvpn easy-rsa -y | ||
| </ | </ | ||
| - | 📍 **Директорія: | ||
| ---- | ---- | ||
| - | **📌 | + | ==== Налаштування PKI (Сертифікати) |
| - | **3️⃣ | + | **3) Копіювання EasyRSA в робочу директорію** |
| - | < | + | < |
| - | cd / | + | sudo cp -r / |
| + | cd / | ||
| </ | </ | ||
| - | 📍 **Директорія: | ||
| - | **4️⃣ | + | **4) Ініціалізація PKI** |
| - | < | + | < |
| + | sudo ./easyrsa init-pki | ||
| </ | </ | ||
| - | 📍 **Директорія: | ||
| - | **5️⃣ | + | **5) Створення CA (Центра сертифікації)** |
| - | < | + | < |
| + | sudo ./easyrsa build-ca | ||
| </ | </ | ||
| - | • Коли спитає **Common Name (CN)**, введи MyVPN-CA. | ||
| - | 📍 **Директорія: | + | • Коли спитає |
| - | **6️⃣ | + | **6) Генерація серверного ключа та сертифіката** |
| - | < | + | < |
| - | sudo ./easyrsa sign-req server server'' | + | sudo ./easyrsa gen-req server nopass |
| + | sudo ./easyrsa sign-req server server | ||
| </ | </ | ||
| - | • На запит Sign the certificate? | ||
| - | 📍 **Директорія:** / | + | • На запит Sign the certificate? |
| - | **7️⃣ | + | **7) Генерація клієнтського сертифіката** |
| - | < | + | < |
| - | sudo ./easyrsa sign-req client client1'' | + | sudo ./easyrsa gen-req client1 nopass |
| + | sudo ./easyrsa sign-req client client1 | ||
| </ | </ | ||
| - | • На запит Sign the certificate? | ||
| - | 📍 **Директорія:** / | + | На запит Sign the certificate? |
| - | **8️⃣ | + | **8) Генерація параметрів Diffie-Hellman** |
| - | < | + | < |
| + | sudo ./easyrsa gen-dh | ||
| </ | </ | ||
| - | 📍 **Директорія: | ||
| - | **9️⃣ | + | **9) Генерація TLS-ключа для захисту від атак** |
| - | < | + | < |
| + | sudo openvpn --genkey secret / | ||
| </ | </ | ||
| - | 📍 **Директорія: | ||
| ---- | ---- | ||
| - | **📌 | + | ==== Налаштування OpenVPN-сервера |
| - | **🔟 Копіювання сертифікатів у папку OpenVPN** | + | **10) Копіювання сертифікатів у папку OpenVPN** |
| - | < | + | < |
| + | sudo cp pki/ca.crt pki/issued/server.crt pki/private/server.key pki/dh.pem pki/ta.key / | ||
| </ | </ | ||
| - | 📍 **Директорія: | ||
| - | **1️⃣1️⃣ | + | **11) Створення конфігураційного файлу сервера** |
| - | < | + | < |
| + | sudo nano / | ||
| </ | </ | ||
| - | 📍 **Директорія: | ||
| - | 🔹 **Встав вміст: | + | **Встав вміст: |
| - | < | + | < |
| + | port 1194 | ||
| proto udp | proto udp | ||
| dev tun | dev tun | ||
| Рядок 115: | Рядок 116: | ||
| verb 3 | verb 3 | ||
| - | explicit-exit-notify 1'' | + | explicit-exit-notify 1 |
| </ | </ | ||
| + | |||
| Збережи (Ctrl + X, Y, Enter). | Збережи (Ctrl + X, Y, Enter). | ||
| ---- | ---- | ||
| - | **📌 | + | ==== Налаштування маршрутизації |
| - | **1️⃣2️⃣ | + | **12) Включення IP Forwarding** |
| - | < | + | < |
| + | sudo nano / | ||
| </ | </ | ||
| - | 📍 **Директорія: | ||
| - | 🔹 **Знайди рядок:** | + | Знайди рядок: ''# |
| - | < | + | |
| - | </ | + | Зміни на: |
| - | 🔹 **Зміни на:** | + | |
| - | < | + | < |
| + | net.ipv4.ip_forward=1 | ||
| </ | </ | ||
| - | Збережи (Ctrl + X, Y, Enter), потім активуй зміни: | ||
| - | < | + | **Збережи** (Ctrl + X, Y, Enter), потім активуй зміни: |
| + | < | ||
| + | sudo sysctl -p | ||
| </ | </ | ||
| - | 📍 **Директорія: | ||
| - | **1️⃣3️⃣ | + | **13) Налаштування iptables** |
| - | < | + | |
| - | sudo iptables-save | sudo tee / | + | |
| - | </ | + | Всі можливі правила які потрібні для роботи OpenVPN |
| - | 📍 **Директорія:** будь-яка | + | |
| - | 🔹 Щоб правила зберігались після перезавантаження, | ||
| < | < | ||
| - | '' | + | # Дозволяємо маршрутизацію |
| + | sudo sysctl -w net.ipv4.ip_forward=1 | ||
| + | |||
| + | # Маскування (NAT) | ||
| + | sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o ens5 -j MASQUERADE | ||
| + | |||
| + | # Дозволяємо пересилати пакети між інтерфейсами | ||
| + | sudo iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT | ||
| + | sudo iptables -A FORWARD -d 10.8.0.0/24 -j ACCEPT | ||
| + | |||
| + | # Дозволяємо вхідні з' | ||
| + | sudo iptables | ||
| + | |||
| + | # Дозволяємо трафік між VPN та сервером | ||
| + | sudo iptables -A INPUT -i tun0 -j ACCEPT | ||
| + | |||
| + | # Дозволяємо відповіді на VPN-з'єднання | ||
| + | sudo iptables -A OUTPUT -o tun0 -j ACCEPT | ||
| </ | </ | ||
| - | 📍 **Директорія: | ||
| - | 🔹 Встав це: | + | **! **'' |
| - | < | + | \\ |
| - | iptables-restore < / | + | Для збереження правил назавжди використаєм: |
| + | |||
| + | < | ||
| + | sudo apt install | ||
| </ | </ | ||
| - | Збережи (Ctrl + X, Y, Enter). | ||
| - | Зроби | + | **! ** Під час установки пакету тобі буде запропоновано зберегти поточні правила. Тобі потрібно |
| + | \\ | ||
| + | Якщо потрібно вручну зберегти: | ||
| - | < | + | < |
| + | sudo iptables-save> | ||
| </ | </ | ||
| Рядок 175: | Рядок 194: | ||
| ---- | ---- | ||
| - | **📌 | + | ==== Запуск OpenVPN |
| - | **1️⃣4️⃣ | + | **14) Запуск сервера** |
| - | < | + | < |
| + | sudo systemctl start openvpn@server | ||
| </ | </ | ||
| - | 📍 **Директорія: | ||
| Переконайся, | Переконайся, | ||
| - | < | + | < |
| + | sudo systemctl status openvpn@server | ||
| </ | </ | ||
| - | **1️⃣5️⃣ | + | |
| - | < | + | **15) Додавання в автозапуск** |
| + | < | ||
| + | sudo systemctl enable openvpn@server | ||
| </ | </ | ||
| - | 📍 **Директорія: | ||
| ---- | ---- | ||
| - | **📌 | + | ==== Налаштування клієнта |
| - | **1️⃣6️⃣ | + | **16) Генерація клієнтського файлу конфігурації** |
| - | < | + | < |
| + | nano client.ovpn | ||
| </ | </ | ||
| - | 📍 **Директорія: | ||
| - | 🔹 **Встав вміст (заміни YOUR_VPN_SERVER_IP на реальну IP-адресу VPS):** | + | Встав вміст (заміни |
| - | < | + | < |
| + | client | ||
| dev tun | dev tun | ||
| proto udp | proto udp | ||
| Рядок 220: | Рядок 242: | ||
| <ca> | <ca> | ||
| - | # Встав сюди вміст файлу ca.crt | + | # Встав сюди вміст файлу ca.crt |
| </ca> | </ca> | ||
| < | < | ||
| - | # Встав сюди вміст файлу client1.crt | + | # Встав сюди вміст файлу client1.crt |
| </ | </ | ||
| <key> | <key> | ||
| - | # Встав сюди вміст файлу client1.key | + | # Встав сюди вміст файлу client1.key |
| </ | </ | ||
| < | < | ||
| - | # Встав сюди вміст файлу ta.key | + | # Встав сюди вміст файлу ta.key |
| - | </ | + | </ |
| </ | </ | ||
| + | |||
| Збережи (Ctrl + X, Y, Enter). | Збережи (Ctrl + X, Y, Enter). | ||
| ---- | ---- | ||
| - | **1️⃣7️⃣ Копіювання файлів на клієнт** | + | **17) Скачування файлів |
| - | < | + | < |
| + | scp user@your-client-ip:/ | ||
| </ | </ | ||
| - | 📍 **Директорія: | ||
| ---- | ---- | ||
| - | **📌 | + | ==== Підключення клієнта |
| - | 🔹 **На клієнті (Linux, Mac, Windows) запусти: | + | **На клієнті (Linux, Mac, Windows) запусти: |
| - | < | + | < |
| + | sudo openvpn --config client.ovpn | ||
| </ | </ | ||
| + | |||
| Готово! 🎉 Тепер твій VPN-сервер працює. 🚀 | Готово! 🎉 Тепер твій VPN-сервер працює. 🚀 | ||
| + | |||
| + | ==== Додавання нового клієнського профіля на сервері OpenVPN ==== | ||
| + | |||
| + | **1) Перейти в директорію /easy-rsa** | ||
| + | < | ||
| + | cd / | ||
| + | |||
| + | </ | ||
| + | |||
| + | **2)** **Генерація запиту на сертифікат для нового користувача**: | ||
| + | < | ||
| + | sudo ./easyrsa gen-req client2 nopass | ||
| + | |||
| + | </ | ||
| + | |||
| + | **3)** **Підписання сертифіката користувача**: | ||
| + | < | ||
| + | sudo ./easyrsa sign-req client client2 | ||
| + | |||
| + | </ | ||
| + | |||
| + | === Копіювання файлів на сервер === | ||
| + | |||
| + | Після підписання сертифіката користувача, | ||
| + | |||
| + | **1. Переміщення файлів**: | ||
| + | |||
| + | * Сертифікат користувача ('' | ||
| + | * Приватний ключ користувача ('' | ||
| + | |||
| + | Приклад команд для переміщення: | ||
| + | |||
| + | < | ||
| + | sudo cp / | ||
| + | sudo cp / | ||
| + | |||
| + | </ | ||
| + | |||
| + | 2. Далі створити файл клієнта '' | ||
| + | |||
| + | 3. Після цього можна використовувати конфіг-файл '' | ||