6.14 Встановлення та налаштування OpenVPN сервера

Банер OpenVPN – це надійне програмне забезпечення з відкритим кодом для створення захищених VPN-тунелів. Воно дозволяє безпечно передавати дані через публічні мережі, шифруючи весь трафік.

Використання VPN серверу надає можливість безпечно підключатися до корпоративної мережі віддалено, обходити географічні обмеження та захищати особисті дані при роботі через публічні Wi-Fi мережі.

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

Важливо: перед початком встановлення переконайтеся що у Вас є наступні привелегії.

  • У Вас є root-доступ до сервера.
  • Ваш сервер має статичну IP-адресу.
  • На сервері відкриті потрібні порти (за замовчуванням UDP 1194).
  • Система оновлена до останньої версії.

Процедура встановлення

Процес встановлення OpenVPN залежить від операційної системи. Перед початком встановлення важливо переконатися, що система відповідає всім необхідним вимогам та має достатньо ресурсів для стабільної роботи VPN-сервера.

Встановлення OpenVPN включає не лише копіювання файлів, але й налаштування системи безпеки, створення сертифікатів та налаштування мережевих параметрів. Важливо виконувати всі кроки послідовно та уважно, оскільки помилки на цьому етапі можуть призвести до проблем з безпекою або працездатністю сервера.

Встановлення на Debian/Ubuntu:
  1. Оновлення системи:
  1. sudo apt update && sudo apt upgrade -y
  1. Встановлення OpenVPN та утиліти easy-rsa:
  1. sudo apt install openvpn easy-rsa -y
  1. Налаштування PKI:
  1. mkdir -p /etc/openvpn/server/certs
  2. cd /etc/openvpn/server
  3. cp -r /usr/share/easy-rsa .
  4. cd easy-rsa
Встановлення на CentOS/AlmaLinux/RockyLinux:
  1. Оновлення системи:
  1. sudo yum update -y
  1. Додавання EPEL репозиторію:
  1. sudo yum install epel-release -y
  1. Встановлення OpenVPN:
  1. sudo yum install openvpn easy-rsa -y
  1. Підготовка директорій:
  1. mkdir -p /etc/openvpn/server/certs
  2. cd /etc/openvpn/server
  3. cp -r /usr/share/easy-rsa .
  4. cd easy-rsa

Підготовка PKI та сертифікатів

Public Key Infrastructure (PKI) є критично важливою складовою безпеки OpenVPN. Вона забезпечує створення та управління цифровими сертифікатами, які використовуються для аутентифікації та шифрування з’єднань. Easy-RSA - це утиліта для управління PKI, яка дозволяє легко створювати сертифікати для сервера та клієнтів.

В процесі налаштування PKI створюються:

  • Кореневий сертифікат (CA) для підпису інших сертифікатів.
  • Сертифікат та приватний ключ сервера.
  • Параметри Діффі-Хеллмана для безпечного обміну ключами.
  • Додатковий ключ TLS для захисту від DOS-атак.

Виконайте наведені команди по черзі. Під час виконання може виникнути одна з наведених нижче дій:

  1. Підтвердження дій. Якщо з’явиться запит підтвердження, введіть yes і натисніть Enter. Підтвердження так
  2. Введення пароля. Деякі команди можуть вимагати пароль. Пам’ятайте, що під час введення пароля символи не відображаються в консолі. Просто введіть пароль і натисніть Enter. Підтвердження пароля
  3. Запит імені користувача або commonName. У деяких випадках система може запросити ввести ім’я користувача чи значення commonName. Це може бути назва сервера або клієнта. Введіть потрібне значення (наприклад, server для сервера або client1 для клієнта) та натисніть Enter.
  1. ./easyrsa init-pki
  1. ./easyrsa build-ca nopass
  1. ./easyrsa gen-req server nopass
  1. ./easyrsa sign-req server server
  1. ./easyrsa gen-dh
  1. openvpn --genkey secret ta.key

Конфігурація сервера

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

Створення базової конфігурації:

  1. cat > /etc/openvpn/server/server.conf << EOF
  2. port 1194
  3. proto udp
  4. dev tun
  5. ca easy-rsa/pki/ca.crt
  6. cert easy-rsa/pki/issued/server.crt
  7. key easy-rsa/pki/private/server.key
  8. dh easy-rsa/pki/dh.pem
  9. tls-auth easy-rsa/ta.key 0
  10. server 10.8.0.0 255.255.255.0
  11. push "redirect-gateway def1 bypass-dhcp"
  12. push "dhcp-option DNS 8.8.8.8"
  13. push "dhcp-option DNS 8.8.4.4"
  14. keepalive 10 120
  15. cipher AES-256-GCM
  16. auth SHA256
  17. user nobody
  18. group nogroup
  19. persist-key
  20. persist-tun
  21. status openvpn-status.log
  22. verb 3
  23. EOF

Далі ми готуємо операційну систему до роботи з VPN-сервером, включаючи налаштування IP-форвардингу, який дозволяє передавати пакети між різними мережевими інтерфейсами, що є необхідним для функціонування VPN.

Увімкнення IP форвардингу (для всіх ОС):

  1. echo 'net.ipv4.ip_forward=1' > /etc/sysctl.d/99-openvpn.conf
  2. sysctl --system

Налаштування файрволу

Налаштування файрволу включає створення правил для фільтрації вхідного та вихідного трафіку, налаштування NAT (Network Address Translation) для забезпечення доступу клієнтів до зовнішніх ресурсів, а також налаштування маршрутизації трафіку між різними мережевими інтерфейсами.

В даному розділі ми розглянемо налаштування різних типів файрволів, включаючи традиційний iptables, UFW (Uncomplicated Firewall) для Ubuntu/Debian та firewalld для CentOS. Кожен з цих інструментів має свої особливості та переваги, тому вибір конкретного рішення залежить від Ваших потреб та досвіду адміністрування.

Налаштування Iptables:

Важливо: замініть eth0 на Ваш реальний мережевий інтерфейс.

# Очистка існуючих правил
iptables -F
iptables -X
iptables -t nat -F

# Встановлення базової політики
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Дозвіл локального трафіку
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Дозвіл встановлених з'єднань
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Дозвіл SSH (порт 22)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# Дозвіл OpenVPN (порт 1194 UDP)
iptables -A INPUT -p udp --dport 1194 -j ACCEPT
  1. Налаштування NAT та форвардингу:
 Визначення зовнішнього інтерфейсу
INTERFACE=$(ip -4 route ls | grep default | grep -Po '(?<=dev )(\S+)')

# Налаштування NAT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o $INTERFACE -j MASQUERADE

# Налаштування форвардингу
iptables -A FORWARD -i tun0 -j ACCEPT
iptables -A FORWARD -i $INTERFACE -o tun0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i tun0 -o $INTERFACE -j ACCEPT
  1. Збереження правил Iptables.

Для Debian/Ubuntu:

  1. sudo apt install iptables-persistent -y
  2. netfilter-persistent save
  3. netfilter-persistent reload

Для CentOS/AlmaLinux/RockyLinux:

  1. service iptables save
  2. /etc/init.d/iptables restart
UFW на Ubuntu/Debian:
  1. Налаштування UFW:
  1. ufw default deny incoming
  2. ufw default allow outgoing
  3. ufw allow ssh
  4. ufw allow 1194/udp
  5. ufw allow from 10.8.0.0/24
  1. Налаштування форвардингу:
  1. echo 'net.ipv4.ip_forward=1' >> /etc/ufw/sysctl.conf
  2. echo '*nat' >> /etc/ufw/before.rules
  3. echo ':POSTROUTING ACCEPT [0:0]' >> /etc/ufw/before.rules
  4. echo '-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE' >> /etc/ufw/before.rules
  5. echo 'COMMIT' >> /etc/ufw/before.rules
  6. ufw enable
Firewalld на CentOS/AlmaLinux/RockyLinux:
  1. Базові налаштування:
  1. firewall-cmd --permanent --add-service=openvpn
  2. firewall-cmd --permanent --add-port=1194/udp
  3. firewall-cmd --permanent --add-masquerade
  1. Налаштування форвардингу:
  1. firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
  1. Застосування змін:
  1. firewall-cmd --reload

Генерація клієнтських сертифікатів

  1. Генерація сертифікатів для клієнта:
  1. cd /etc/openvpn/server/easy-rsa
  2. ./easyrsa gen-req client1 nopass
  3. ./easyrsa sign-req client client1
  1. Створення клієнтської конфігурації:
  1. mkdir -p /etc/openvpn/client
  2. cat > /etc/openvpn/client/client.ovpn << EOF
  3. client
  4. dev tun
  5. proto udp
  6. remote YOUR_SERVER_IP 1194
  7. resolv-retry infinite
  8. nobind
  9. persist-key
  10. persist-tun
  11. remote-cert-tls server
  12. cipher AES-256-GCM
  13. auth SHA256
  14. key-direction 1
  15. verb 3
  16. EOF
  1. Додавання сертифікатів до конфігурації:
  1. echo "<ca>" >> /etc/openvpn/client/client.ovpn
  2. cat pki/ca.crt >> /etc/openvpn/client/client.ovpn
  3. echo "</ca>" >> /etc/openvpn/client/client.ovpn
  4. echo "<cert>" >> /etc/openvpn/client/client.ovpn
  5. cat pki/issued/client1.crt >> /etc/openvpn/client/client.ovpn
  6. echo "</cert>" >> /etc/openvpn/client/client.ovpn
  7. echo "<key>" >> /etc/openvpn/client/client.ovpn
  8. cat pki/private/client1.key >> /etc/openvpn/client/client.ovpn
  9. echo "</key>" >> /etc/openvpn/client/client.ovpn
  10. echo "<tls-auth>" >> /etc/openvpn/client/client.ovpn
  11. cat ta.key >> /etc/openvpn/client/client.ovpn
  12. echo "</tls-auth>" >> /etc/openvpn/client/client.ovpn

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

Для Debian/Ubuntu:

  1. systemctl enable openvpn-server@server
  2. systemctl start openvpn-server@server

Для CentOS/AlmaLinux/RockyLinux:

  1. systemctl enable openvpn@server
  2. systemctl start openvpn@server

Інформуємо: як перевірити статус сервіса:

Перевірка на Debian/Ubuntu:
  1. systemctl status openvpn-server@server
Перевірка на CentOS/AlmaLinux/RockyLinux:
  1. systemctl status openvpn@server

Підключення на комп’ютері

Налаштування OpenVPN на персональному комп’ютері надає можливість безпечного віддаленого доступу до корпоративних ресурсів та захищеного з’єднання при роботі через публічні мережі. Процес налаштування відрізняється залежно від операційної системи, але загальні принципи залишаються незмінними.

Windows

Підключення на комп’ютерах з Windows можна виконати за допомогою офіційного клієнта OpenVPN GUI. Цей клієнт пропонує зручний графічний інтерфейс для управління VPN-з’єднаннями та підтримує всі сучасні версії Windows. Процес налаштування включає встановлення програми та імпорт конфігураційних файлів.

  1. Встановлення клієнта:

    • Завантажте OpenVPN клієнт.
    • Запустіть інсталятор та виконайте стандартні кроки встановлення.
  2. Налаштування:

    • Перемістіть конфігураційні файли в C:\Users\Ваш_Користувач\OpenVPN\config\ або C:\Program Files\OpenVPN\config\.
    • Необхідні файли (може бути потрібно від 1 до 4 файлів, в залежності від налаштувань сервера):
      • Конфігурація (*.ovpn).
      • Сертифікат клієнта (*.crt).
      • Приватний ключ (*.key).
      • Сертифікат CA (ca.crt).

Папка з файлами

Інформуємо: для зручності можна створювати окрему папку під кожну конфігурацію.

  1. Підключення:
    • Запустіть клієнт OpenVPN GUI.
    • Клікніть правою кнопкою на іконці в системному треї. Налаштування
    • Виберіть Connect. Підключення

Linux

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

Встановлення через термінал:
Для Ubuntu/Debian:
  1. sudo apt install openvpn -y
Для CentOS/AlmaLinux/RockyLinux:
  1. sudo yum install openvpn -y
  1. Налаштування через термінал:
  1. sudo cp *.ovpn /etc/openvpn/client/
  2. sudo cp *.crt /etc/openvpn/client/
  3. sudo cp *.key /etc/openvpn/client/
  1. Запуск підключення:
  1. sudo openvpn --config /etc/openvpn/client/client.ovpn
Встановлення через графічний інтерфейс:
  1. Встановіть Network Manager OpenVPN плагін:
Для Ubuntu/Debian:
  1. sudo apt install network-manager-openvpn-gnome
Для CentOS:
  1. sudo yum install NetworkManager-openvpn-gnome
  1. Відкрийте налаштування мережі.
  2. Додайте VPN-підключення.
  3. Імпортуйте файл .ovpn.

MacOS

Для користувачів MacOS можна використовувати спеціальну версію OpenVPN Connect, яка повністю інтегрується з системою та забезпечує простий і надійний спосіб управління VPN-підключеннями. Додаток підтримує всі сучасні версії MacOS та пропонує інтуїтивно зрозумілий інтерфейс.

  1. Встановлення:

    • Завантажте OpenVPN Connect
    • Запустіть інсталятор та виконайте стандартні кроки встановлення.
  2. Налаштування:

    • Відкрийте OpenVPN Connect.
    • Натисніть + для додавання профілю.
    • Імпортуйте .ovpn файл перетягуванням або через меню Browse.
    • Введіть необхідні облікові дані.
    • Збережіть профіль.

Підключення на мобільних пристроях

Мобільні пристрої стали важливою частиною нашого життя, тому безпечний доступ до мережі через VPN на смартфонах та планшетах може знадобитися для захисту даних. OpenVPN пропонує офіційні клієнти для всіх популярних мобільних платформ.

Важливо: більшість безкоштовних мобільних клієнтів OpenVPN не підтримують протокол tap, який використовується за замовчуванням. Щоб уникнути проблем, налаштуйте сервер OpenVPN для роботи з протоколом tun.

Android

OpenVPN Connect для Android забезпечує надійний та безпечний спосіб підключення до VPN-серверів. Додаток доступний через Google Play Market та підтримує широкий спектр Android-пристроїв, включаючи смартфони та планшети різних виробників. Інтерфейс програми оптимізовано для зручного використання на мобільних пристроях.

  1. Встановлення:

    • Завантажте OpenVPN Connect з Google Play Market.
  2. Налаштування:

    • Перенесіть .ovpn файл на пристрій.
    • Відкрийте OpenVPN Connect.
    • Натисніть + та виберіть спосіб імпорту: URL або Upload File. Плюс
    • Ми використовуємо Upload File, натискаємо Browse для вибору файла конфігурації Завантаження
    • Знайдіть та виберіть раніше завантажений .ovpn файл.
    • Введіть назву підключення (Profile Name) та облікові дані (Username та Password). Введення даних

iOS

Версія OpenVPN Connect для iOS розроблена з урахуванням особливостей екосистеми Apple та забезпечує безперебійну роботу на iPhone та iPad. Додаток повністю відповідає вимогам безпеки App Store та інтегрується з системними налаштуваннями iOS для максимальної зручності використання.

  1. Встановлення:

    • Завантажте OpenVPN Connect з App Store.
  2. Налаштування:

    • Імпортуйте профіль одним із способів:
      • Через файл .ovpn (iCloud, Dropbox).
      • Через URL підключення.
      • Через прямий імпорт від провайдера.
      • Введіть назву підключення та облікові дані.

Важливо:

  • Переконайтеся в наявності всіх необхідних файлів сертифікатів.
  • Використовуйте тільки офіційні джерела для завантаження клієнтів.
  • Регулярно оновлюйте програмне забезпечення.
  • Зберігайте конфігураційні файли в надійному місці.

Інформуємо: для отримання додаткової інформації звертайтеся до офіційної документації OpenVPN та документації Вашого пристрою.