OpenVPN (OpenVPN)

Перейти к навигации Перейти к поиску
OpenVPN
Логотип программы OpenVPN
Автор Джеймс Йонан[вд][3]
Разработчик OpenVPN Inc.[вд][4]
Написана на Си[5]
Операционная система кроссплатформенность
Первый выпуск 23 марта 2002[1]
Аппаратная платформа Android
Последняя версия
Репозиторий github.com/OpenVPN
gitlab.com/openvpn
Лицензия GNU GPL
Сайт openvpn.net (англ.)
Логотип Викисклада Медиафайлы на Викискладе

OpenVPN — свободная реализация технологии виртуальной частной сети (VPN) с открытым исходным кодом для создания зашифрованных каналoв типа точка-точка или сервер-клиенты между компьютерами. Она позволяет устанавливать соединения между компьютерами, находящимися за NAT и сетевым экраном, без необходимости изменения их настроек. OpenVPN была создана Джеймсом Йонаном (James Yonan) и распространяется под лицензией GNU GPL[6].

Для обеспечения безопасности управляющего канала и потока данных OpenVPN использует библиотеку OpenSSL. Это позволяет задействовать весь набор алгоритмов шифрования, доступных в данной библиотеке. Также может использоваться пакетная аутентификация HMAC для обеспечения большей безопасности, и аппаратное ускорение для улучшения производительности шифрования. Эта библиотека использует OpenSSL, а точнее — протоколы SSLv3/TLSv1.2[7]. OpenVPN имеет версии для работы на платформах Solaris, OpenBSD, FreeBSD, NetBSD, GNU/Linux, macOS, QNX, Microsoft Windows, Android, iOS.

Аутентификация

[править | править код]

OpenVPN предлагает пользователю несколько видов аутентификации.

  • Предустановленный ключ — самый простой метод.
  • Сертификатная аутентификация — наиболее гибкий в настройках метод.
  • С помощью логина и пароля — может использоваться без создания клиентского сертификата (серверный сертификат всё равно нужен).

OpenVPN проводит все сетевые операции через TCP- или UDP-транспорт. В общем случае предпочтительным является UDP по той причине, что через туннель проходит трафик сетевого уровня и выше по OSI, если используется TUN-соединение, или трафик канального уровня и выше, если используется TAP. Это значит, что OpenVPN для клиента выступает протоколом канального или даже физического уровня, а значит, надежность передачи данных может обеспечиваться вышестоящими по OSI уровнями, если это необходимо. Именно поэтому протокол UDP по своей концепции наиболее близок к OpenVPN, т. к. он, как и протоколы канального и физического уровней, не обеспечивает надежности соединения, передавая эту инициативу более высоким уровням. Если же настроить туннель на работу по ТСР, сервер в типичном случае будет получать ТСР-сегменты OpenVPN, которые содержат другие ТСР-сегменты от клиента. В результате в цепи получается двойная проверка на целостность информации, что совершенно не имеет смысла, т. к. надежность не повышается, а скорости соединения и пинга снижаются.[8][9]. Также возможна работа через большую часть прокси-серверов, включая HTTP, SOCKS, через NAT и сетевые фильтры. Сервер может быть настроен на назначение сетевых настроек клиенту. Например: IP-адрес, настройки маршрутизации и параметры соединения. OpenVPN предлагает два различных варианта сетевых интерфейсов, используя драйвер TUN/TAP. Возможно создать туннель сетевого уровня, называемый TUN, и канального уровня — TAP, способный передавать Ethernet-трафик. Также возможно использование библиотеки компрессии LZO для сжатия потока данных. Используемый порт 1194 выделен Internet Assigned Numbers Authority для работы данной программы[10]. Версия 2.0 позволяет одновременно управлять несколькими туннелями в отличие от версии 1.0, позволявшей создавать только 1 туннель на 1 процесс.

Использование в OpenVPN стандартных протоколов TCP и UDP позволяет ему стать альтернативой IPsec в ситуациях, когда Интернет-провайдер блокирует некоторые VPN-протоколы.

Примечания

[править | править код]
  1. ChangeLog 2006-10-01
  2. Release: OpenVPN version 2.6.12 — 2024.
  3. https://openvpn.net/index.php/about-menu/about-us.html
  4. https://openvpn.net/index.php/about-menu/contact-us.html
  5. The openvpn Open Source Project on Open Hub: Languages Page — 2006.
  6. OpenVPN: An Introduction and Interview with Founder, James Yonan (англ.). LinuxSecurity.com. Дата обращения: 6 марта 2015. Архивировано 15 января 2019 года.
  7. Security Overview (англ.). OpenVPN.net. Дата обращения: 6 марта 2015. Архивировано из оригинала 28 сентября 2011 года.
  8. Olaf Titz. Why TCP Over TCP Is A Bad Idea (англ.). Дата обращения: 6 марта 2015. Архивировано 6 марта 2015 года.
  9. Douglas Crawford. OpenVPN over TCP vs. UDP: what is the difference, and which should I choose? (англ.). BestVPN (23 августа 2013). Дата обращения: 6 марта 2015.
  10. Service Name and Transport Protocol Port Number Registry (англ.). IANA. Дата обращения: 6 марта 2015. Архивировано 2 апреля 2015 года.