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-протоколы.
См. также
Примечания
- ↑ ChangeLog 2006-10-01
- ↑ Release: OpenVPN version 2.6.12 — 2024.
- ↑ https://openvpn.net/index.php/about-menu/about-us.html
- ↑ https://openvpn.net/index.php/about-menu/contact-us.html
- ↑ The openvpn Open Source Project on Open Hub: Languages Page — 2006.
- ↑ OpenVPN: An Introduction and Interview with Founder, James Yonan (англ.). LinuxSecurity.com. Дата обращения: 6 марта 2015. Архивировано 15 января 2019 года.
- ↑ Security Overview (англ.). OpenVPN.net. Дата обращения: 6 марта 2015. Архивировано из оригинала 28 сентября 2011 года.
- ↑ Olaf Titz. Why TCP Over TCP Is A Bad Idea (англ.). Дата обращения: 6 марта 2015. Архивировано 6 марта 2015 года.
- ↑ Douglas Crawford. OpenVPN over TCP vs. UDP: what is the difference, and which should I choose? (англ.). BestVPN (23 августа 2013). Дата обращения: 6 марта 2015.
- ↑ Service Name and Transport Protocol Port Number Registry (англ.). IANA. Дата обращения: 6 марта 2015. Архивировано 2 апреля 2015 года.
Ссылки
- Официальный сайт. Архивная копия от 25 февраля 2007 на Wayback Machine (англ.).
- Настройка OpenVPN с X.509. Архивная копия от 17 февраля 2008 на Wayback Machine (рус.).