Розбіжності
Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
| Порівняння попередніх версій Попередня ревізія Наступна ревізія | Попередня ревізія | ||
| linux:proxy_vpn:openvpn_v2 [17/03/2025 12:42] – 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 | sudo apt update && sudo apt upgrade -y | ||
| Рядок 13: | Рядок 13: | ||
| </ | </ | ||
| - | 📍 **Директорія: | + | **2) Встановлення OpenVPN та необхідних пакетів** |
| - | + | ||
| - | **2️⃣ | + | |
| < | < | ||
| sudo apt install openvpn easy-rsa -y | sudo apt install openvpn easy-rsa -y | ||
| </ | </ | ||
| - | |||
| - | 📍 **Директорія: | ||
| ---- | ---- | ||
| - | **📌 | + | ==== Налаштування PKI (Сертифікати) |
| - | **3️⃣ | + | **3) Копіювання EasyRSA в робочу директорію** |
| < | < | ||
| sudo cp -r / | sudo cp -r / | ||
| Рядок 34: | Рядок 30: | ||
| </ | </ | ||
| - | 📍 **Директорія: | + | **4) Ініціалізація PKI** |
| - | + | ||
| - | **4️⃣ | + | |
| < | < | ||
| sudo ./easyrsa init-pki | sudo ./easyrsa init-pki | ||
| Рядок 42: | Рядок 36: | ||
| </ | </ | ||
| - | 📍 **Директорія: | + | **5) Створення CA (Центра сертифікації)** |
| - | + | ||
| - | **5️⃣ | + | |
| < | < | ||
| sudo ./easyrsa build-ca | sudo ./easyrsa build-ca | ||
| Рядок 50: | Рядок 42: | ||
| </ | </ | ||
| - | • Коли спитає **Common Name (CN)**, введи наприклад MyVPN-CA. | + | • Коли спитає **Common Name (CN)**, введи наприклад |
| - | + | ||
| - | 📍 **Директорія: | + | |
| - | **6️⃣ | + | **6) Генерація серверного ключа та сертифіката** |
| < | < | ||
| sudo ./easyrsa gen-req server nopass | sudo ./easyrsa gen-req server nopass | ||
| Рядок 61: | Рядок 51: | ||
| </ | </ | ||
| - | • На запит Sign the certificate? | + | • На запит Sign the certificate? |
| - | 📍 **Директорія: | + | **7) Генерація клієнтського сертифіката** |
| - | + | ||
| - | **7️⃣ | + | |
| < | < | ||
| sudo ./easyrsa gen-req client1 nopass | sudo ./easyrsa gen-req client1 nopass | ||
| Рядок 72: | Рядок 60: | ||
| </ | </ | ||
| - | На запит Sign the certificate? | + | На запит Sign the certificate? |
| - | 📍 **Директорія: | + | **8) Генерація параметрів Diffie-Hellman** |
| - | + | ||
| - | **8️⃣ | + | |
| < | < | ||
| sudo ./easyrsa gen-dh | sudo ./easyrsa gen-dh | ||
| Рядок 82: | Рядок 68: | ||
| </ | </ | ||
| - | 📍 **Директорія: | + | **9) Генерація TLS-ключа для захисту від атак** |
| - | + | ||
| - | **9️⃣ | + | |
| < | < | ||
| sudo openvpn --genkey secret / | sudo openvpn --genkey secret / | ||
| </ | </ | ||
| - | |||
| - | 📍 **Директорія: | ||
| ---- | ---- | ||
| - | **📌 | + | ==== Налаштування OpenVPN-сервера |
| - | **🔟 Копіювання сертифікатів у папку OpenVPN** | + | **10) Копіювання сертифікатів у папку OpenVPN** |
| < | < | ||
| sudo cp pki/ca.crt pki/ | sudo cp pki/ca.crt pki/ | ||
| Рядок 102: | Рядок 84: | ||
| </ | </ | ||
| - | 📍 **Директорія: | + | **11) Створення конфігураційного файлу сервера** |
| - | + | ||
| - | **1️⃣1️⃣ | + | |
| < | < | ||
| sudo nano / | sudo nano / | ||
| Рядок 110: | Рядок 90: | ||
| </ | </ | ||
| - | 📍 **Директорія: | + | **Встав вміст: |
| - | + | ||
| - | 🔹 **Встав вміст: | + | |
| < | < | ||
| port 1194 | port 1194 | ||
| Рядок 146: | Рядок 124: | ||
| ---- | ---- | ||
| - | **📌 | + | ==== Налаштування маршрутизації |
| - | **1️⃣2️⃣ | + | **12) Включення IP Forwarding** |
| < | < | ||
| sudo nano / | sudo nano / | ||
| Рядок 154: | Рядок 132: | ||
| </ | </ | ||
| - | 📍 **Директорія:** будь-яка | + | Знайди рядок: ''# |
| - | 🔹 **Знайди рядок:** | + | Зміни на: |
| - | < | + | |
| - | # | + | |
| - | </ | ||
| - | |||
| - | 🔹 **Зміни на:** | ||
| < | < | ||
| net.ipv4.ip_forward=1 | net.ipv4.ip_forward=1 | ||
| Рядок 168: | Рядок 141: | ||
| </ | </ | ||
| - | Збережи (Ctrl + X, Y, Enter), потім активуй зміни: | + | **Збережи** (Ctrl + X, Y, Enter), потім активуй зміни: |
| < | < | ||
| sudo sysctl -p | sudo sysctl -p | ||
| Рядок 175: | Рядок 147: | ||
| </ | </ | ||
| - | 📍 **Директорія:** будь-яка | + | **13) Налаштування iptables** |
| - | **1️⃣3️⃣ Налаштування iptables** | + | Всі можливі правила які потрібні для роботи OpenVPN |
| - | **Всі можливі правила які потрібні для роботи OpenVPN** | ||
| < | < | ||
| # Дозволяємо маршрутизацію | # Дозволяємо маршрутизацію | ||
| Рядок 185: | Рядок 156: | ||
| # Маскування (NAT) | # Маскування (NAT) | ||
| - | sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o **ens5** | + | sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o ens5 -j MASQUERADE |
| - | | + | |
| # Дозволяємо пересилати пакети між інтерфейсами | # Дозволяємо пересилати пакети між інтерфейсами | ||
| Рядок 203: | Рядок 173: | ||
| </ | </ | ||
| - | **ens5** заміни на свій інтерфейс | + | **! **'' |
| - | \\ | ||
| \\ | \\ | ||
| Для збереження правил назавжди використаєм: | Для збереження правил назавжди використаєм: | ||
| Рядок 214: | Рядок 183: | ||
| </ | </ | ||
| - | Під час установки пакету тобі буде запропоновано зберегти поточні правила. Тобі потрібно вибрати “Так” (Yes), щоб зберегти їх.\\ | + | **! ** Під час установки пакету тобі буде запропоновано зберегти поточні правила. Тобі потрібно вибрати “Так” (**Yes**), щоб зберегти їх.\\ |
| \\ | \\ | ||
| Якщо потрібно вручну зберегти: | Якщо потрібно вручну зберегти: | ||
| Рядок 225: | Рядок 194: | ||
| ---- | ---- | ||
| - | **📌 | + | ==== Запуск OpenVPN |
| - | **1️⃣4️⃣ | + | **14) Запуск сервера** |
| < | < | ||
| sudo systemctl start openvpn@server | sudo systemctl start openvpn@server | ||
| Рядок 240: | Рядок 209: | ||
| </ | </ | ||
| - | **1️⃣5️⃣ | + | **15) Додавання в автозапуск** |
| < | < | ||
| sudo systemctl enable openvpn@server | sudo systemctl enable openvpn@server | ||
| Рядок 248: | Рядок 217: | ||
| ---- | ---- | ||
| - | **📌 | + | ==== Налаштування клієнта |
| - | **1️⃣6️⃣ | + | **16) Генерація клієнтського файлу конфігурації** |
| < | < | ||
| nano client.ovpn | nano client.ovpn | ||
| Рядок 256: | Рядок 225: | ||
| </ | </ | ||
| - | 🔹 **Встав вміст (заміни YOUR_VPN_SERVER_IP на реальну IP-адресу VPS):** | + | Встав вміст (заміни |
| < | < | ||
| client | client | ||
| Рядок 291: | Рядок 260: | ||
| ---- | ---- | ||
| - | **1️⃣7️⃣ | + | **17) Скачування файлів з сервера на клієнт (Linux, MacOS)** |
| < | < | ||
| scp user@your-client-ip:/ | scp user@your-client-ip:/ | ||
| Рядок 299: | Рядок 268: | ||
| ---- | ---- | ||
| - | **📌 | + | ==== Підключення клієнта |
| - | 🔹 **На клієнті (Linux, Mac, Windows) запусти: | + | **На клієнті (Linux, Mac, Windows) запусти: |
| < | < | ||
| sudo openvpn --config client.ovpn | sudo openvpn --config client.ovpn | ||
| Рядок 308: | Рядок 277: | ||
| Готово! 🎉 Тепер твій 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. Після цього можна використовувати конфіг-файл '' | ||