linux:proxy_vpn:openvpn_v2

OpenVPN

Повна детальна інструкція для встановлення OpenVPN на Ubuntu 22.04, EasyRSA 3.


1) Оновлення системи

sudo apt update && sudo apt upgrade -y

2) Встановлення OpenVPN та необхідних пакетів

sudo apt install openvpn easy-rsa -y

3) Копіювання EasyRSA в робочу директорію

sudo cp -r /usr/share/easy-rsa /etc/openvpn/
cd /etc/openvpn/easy-rsa

4) Ініціалізація PKI

sudo ./easyrsa init-pki

5) Створення CA (Центра сертифікації)

sudo ./easyrsa build-ca

• Коли спитає Common Name (CN), введи наприклад MyVPN-CA.

6) Генерація серверного ключа та сертифіката

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

• На запит Sign the certificate? введи yes.

7) Генерація клієнтського сертифіката

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

На запит Sign the certificate? введи yes.

8) Генерація параметрів Diffie-Hellman

sudo ./easyrsa gen-dh

9) Генерація TLS-ключа для захисту від атак

sudo openvpn --genkey secret /etc/openvpn/easy-rsa/pki/ta.key

10) Копіювання сертифікатів у папку OpenVPN

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

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

sudo nano /etc/openvpn/server.conf

Встав вміст:

port 1194
proto udp
dev tun

ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh.pem
tls-auth /etc/openvpn/ta.key 0

server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 8.8.8.8"

keepalive 10 120
cipher AES-256-CBC
auth SHA256
persist-key
persist-tun
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log

verb 3
explicit-exit-notify 1

Збережи (Ctrl + X, Y, Enter).


12) Включення IP Forwarding

sudo nano /etc/sysctl.conf

Знайди рядок: #net.ipv4.ip_forward=1

Зміни на:

net.ipv4.ip_forward=1

Збережи (Ctrl + X, Y, Enter), потім активуй зміни:

sudo sysctl -p

13) Налаштування iptables

Всі можливі правила які потрібні для роботи 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

# Дозволяємо вхідні з'єднання для OpenVPN
sudo iptables -A INPUT -i ens5 -p udp --dport 1194 -j ACCEPT

# Дозволяємо трафік між VPN та сервером
sudo iptables -A INPUT -i tun0 -j ACCEPT

# Дозволяємо відповіді на VPN-з'єднання
sudo iptables -A OUTPUT -o tun0 -j ACCEPT

! ens5 заміни на свій інтерфейс


Для збереження правил назавжди використаєм:

sudo apt install iptables-persistent

! Під час установки пакету тобі буде запропоновано зберегти поточні правила. Тобі потрібно вибрати “Так” (Yes), щоб зберегти їх.

Якщо потрібно вручну зберегти:

sudo iptables-save> /etc/iptables/rules.v4

14) Запуск сервера

sudo systemctl start openvpn@server

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

sudo systemctl status openvpn@server

15) Додавання в автозапуск

sudo systemctl enable openvpn@server

16) Генерація клієнтського файлу конфігурації

nano client.ovpn

Встав вміст (заміни YOUR_VPN_SERVER_IP на реальну IP-адресу VPS):

client
dev tun
proto udp
remote YOUR_VPN_SERVER_IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
auth SHA256
verb 3
key-direction 1

<ca>
# Встав сюди вміст файлу ca.crt (/etc/openvpn/ca.crt) (раніше виконували копіювання цього файла в цю директорію)
</ca>
<cert>
# Встав сюди вміст файлу client1.crt (/etc/openvpn/easy-rsa/pki/issued/client.crt)
</cert>
<key>
# Встав сюди вміст файлу client1.key (/etc/openvpn/easy-rsa/pki/private/client.key)
</key>
<tls-auth>
# Встав сюди вміст файлу ta.key (/etc/openvpn/ta.key) (раніше виконували копіювання цього файла в цю директорію)
</tls-auth>

Збережи (Ctrl + X, Y, Enter).


17) Скачування файлів з сервера на клієнт (Linux, MacOS)

scp user@your-client-ip:/home/user/client.ovpn .

На клієнті (Linux, Mac, Windows) запусти:

sudo openvpn --config client.ovpn

Готово! 🎉 Тепер твій VPN-сервер працює. 🚀

1) Перейти в директорію /easy-rsa

cd /etc/openvpn/easy-rsa

2) Генерація запиту на сертифікат для нового користувача: Використовуємо команду для генерації запиту на сертифікат і приватного ключа для нового користувача (наприклад, client2):

sudo ./easyrsa gen-req client2 nopass

3) Підписання сертифіката користувача: Тепер підписуємо цей запит сертифікаційним центром (CA):

sudo ./easyrsa sign-req client client2

Копіювання файлів на сервер

Після підписання сертифіката користувача, необхідно перемістити файли сертифіката, приватного ключа та інших необхідних файлів в каталог /etc/openvpn/client.

1. Переміщення файлів: Ви повинні перемістити наступні файли в каталог /etc/openvpn/client:

  • Сертифікат користувача (client2.crt).
  • Приватний ключ користувача (client2.key).

Приклад команд для переміщення:

sudo cp /etc/openvpn/easy-rsa/pki/issued/client2.crt /etc/openvpn/client/
sudo cp /etc/openvpn/easy-rsa/pki/private/client2.key /etc/openvpn/client/

2. Далі створити файл клієнта .ovpn можна по прикладу в пункт 16 або просто скопіювати з готового.

3. Після цього можна використовувати конфіг-файл client2.ovpn в VPN-клієнтах.

  • linux/proxy_vpn/openvpn_v2.txt
  • Востаннє змінено: 17/03/2025 11:01
  • (зовнішнє редагування)