OpenVPN
OpenVPN — вільна реалізація технології віртуальної приватної мережі (VPN) з відкритим початковим кодом для створення шифрованих з'єднань між двома клієнтськими машинами або забезпечення роботи централізованого VPN-сервера для одночасної роботи декількох клієнтів. OpenVPN дозволяє встановлювати з'єднання між комп'ютерами, що перебувають за NAT-екраном, без необхідності зміни їхніх налаштувань. Технологія створена Джеймсом Йонаном (англ. James Yonan) і розповсюджується під ліцензією GNU GPL. OpenVPN може використовуватись у багатьох операційних системах.
Тип | віртуальна приватна мережа |
---|---|
Автор(и) | Джеймс Йонан |
Розробники | OpenVPN Technologies, Inc. |
Перший випуск | 0.90 (13 травня 2001[1]) |
Стабільний випуск | 2.4 (27 грудня 2016[2]) |
Версії | 2.5.4 (5 жовтня 2021)[3] |
Репозиторій | github.com/OpenVPN/openvpn |
Платформа | крос-платформовий: Intel x86, DEC Alpha, SPARC, AMD64, ARM[4] |
Операційна система | |
Мова програмування | C |
Доступні мови | англійська |
Українська | ні |
Стан розробки | активний |
Ліцензія | GNU GPL |
Вебсайт | openvpn.net/index.php/open-source.html |
OpenVPN у Вікісховищі |
Огляд
Для забезпечення безпеки керуючого каналу і потоку даних OpenVPN використовує бібліотеку OpenSSL. Завдяки цьому залучено весь набір алгоритмів шифрування, доступних у цій бібліотеці. Також може використовуватися пакетна авторизація HMAC для забезпечення вищого рівня безпеки, а також апаратне прискорення для поліпшення продуктивності шифрування. Ця бібліотека використовує OpenSSL, а точніше протоколи SSL v3 або TLS v1.
Автентифікація
OpenVPN пропонує користувачеві декілька видів автентифікації:
- Попередньо встановлений ключ — найпростіший метод;
- Сертифікатна автентифікація — найгнучкіший у налаштуваннях метод;
- За допомогою логіна та пароля, може використовуватися без створення клієнтського сертифіката (серверний сертифікат усе одно потрібен).
Мережа
OpenVPN проводить всі мережеві операції через TCP або UDP порт (при виборі протоколу існують дві точки зору: одна з них «Чому TCP над TCP є поганою ідеєю» (англ. Why TCP Over TCP Is A Bad Idea), а інша — «TCP над TCP не настільки погано» (англ. TCP Over TCP Is Not So Bad). Також можлива робота через більшу частину проксі-серверів, включно з HTTP, NAT і мережеві фільтри. Сервер може бути налаштований на призначення мережевих налаштувань клієнту. Наприклад: IP-адреса, налаштування маршрутизації та параметри з'єднання. OpenVPN пропонує два різних варіанти мережевих інтерфейсів, використовуючи драйвер TUN/TAP. Можливо створити Layer 3-based IP тунель, званий TUN, і Layer 2-based Ethernet — TAP, здатний передавати Ethernet-трафік. Також можливе використання бібліотеки LZO для стиснення потоку даних. Для роботи цієї програми використовується порт 1194, виділений Internet Assigned Numbers Authority. Версія 2.0 дозволяє контролювати декілька одночасних тунелів, на відміну від версії 1.0, що дозволяла створювати тільки один тунель на кожний процес.
Використання в OpenVPN стандартних протоколів TCP і UDP дозволяє йому стати альтернативою IPsec в ситуаціях, коли Інтернет-провайдер блокує деякі VPN протоколи.
Примітки
- OpenVPN Change Log (англ.).
- OpenVPN announcements. SourceForge.net (англ.).
- https://github.com/OpenVPN/openvpn/releases/tag/v2.5.4 — 2021.
- Installation Notes (англ.). Архів оригіналу за 25 березня 2016. Процитовано 15 червня 2016.