Jump to content

ОпенВПН

ОпенВПН
Оригинальный автор(ы) Джеймс Йонан
Разработчик(и) Проект OpenVPN / OpenVPN Inc.
Первоначальный выпуск 13 мая 2001 г .; 23 года назад ( 13 мая 2001 ) [1]
Стабильная версия 2.6.10 [2] (20 марта 2024 г .; 4 месяца назад ( 20 марта 2024 г. ) ) [±]
Репозиторий
Написано в С
Платформа
Тип VPN
Лицензия GNU GPLv2 [10]
Веб-сайт openvpn .сеть  Edit this on Wikidata

OpenVPN — это система виртуальной частной сети (VPN), которая реализует методы создания безопасных соединений «точка-точка» или «сеть-сеть» в маршрутизируемых или мостовых конфигурациях и средствах удаленного доступа. Он реализует как клиентские, так и серверные приложения.

OpenVPN позволяет узлам аутентифицировать предварительно друг друга, используя общие секретные ключи , сертификаты или имя пользователя / пароль . При использовании в конфигурации с несколькими клиентами и серверами он позволяет серверу выдавать сертификат аутентификации для каждого клиента, используя подписи и центр сертификации .

Он широко использует OpenSSL шифрования библиотеку , а также протокол TLS и содержит множество функций безопасности и контроля. Он использует специальный протокол безопасности [11] который использует SSL/TLS для обмена ключами. Он способен проходить через трансляторы сетевых адресов (NAT) и межсетевые экраны . [ нужна ссылка ]

OpenVPN был портирован и встроен в несколько систем. Например, DD-WRT имеет функцию сервера OpenVPN. SoftEther VPN , многопротокольный VPN-сервер, также имеет реализацию протокола OpenVPN. [ нужна ссылка ]

Он был написан Джеймсом Йонаном и является свободным программным обеспечением , выпущенным на условиях GNU General Public License версии 2 (GPLv2). [12] Кроме того, доступны коммерческие лицензии. [13]

Архитектура

[ редактировать ]

Шифрование

[ редактировать ]

OpenVPN использует библиотеку OpenSSL для шифрования каналов данных и управления. Он позволяет OpenSSL выполнять всю работу по шифрованию и аутентификации, позволяя OpenVPN использовать все шифры, доступные в пакете OpenSSL. Он также может использовать функцию аутентификации пакетов HMAC , чтобы добавить дополнительный уровень безопасности к соединению (называемый создателем «брандмауэром HMAC»). Он также может использовать аппаратное ускорение для повышения производительности шифрования. [14] [15] Поддержка mbed TLS доступна начиная с версии 2.3. [16]

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

[ редактировать ]

OpenVPN имеет несколько способов аутентификации одноранговых узлов друг с другом. OpenVPN предлагает общие ключи , аутентификацию на основе сертификатов и имени пользователя и пароля. Предварительный секретный ключ является самым простым, а основанный на сертификате — наиболее надежным и многофункциональным . [ нужна ссылка ] В версии 2.0 можно включить аутентификацию по имени пользователя и паролю как с сертификатами, так и без них. Однако для использования аутентификации по имени пользователя и паролю OpenVPN зависит от сторонних модулей. [ нужна ссылка ]

OpenVPN может работать через транспорты протокола пользовательских датаграмм (UDP) или протокола управления передачей (TCP), мультиплексируя созданные туннели SSL на одном порту TCP/UDP. [17] (RFC 3948 для UDP). [18]

Начиная с версии 2.3.x, OpenVPN полностью поддерживает IPv6 как протокол виртуальной сети внутри туннеля, а приложения OpenVPN также могут устанавливать соединения через IPv6. [19] Он способен работать через большинство прокси-серверов (включая HTTP ), хорошо справляется с трансляцией сетевых адресов (NAT) и обходом межсетевых экранов. Конфигурация сервера имеет возможность «передавать» клиентам определенные параметры конфигурации сети. К ним относятся IP-адреса, команды маршрутизации и несколько вариантов подключения. OpenVPN предлагает два типа сетевых интерфейсов через универсальный драйвер TUN/TAP . Он может создать либо IP-туннель на уровне 3 (TUN), либо Ethernet TAP на уровне 2 , который может передавать любой тип Ethernet-трафика. OpenVPN может дополнительно использовать библиотеку сжатия LZO для сжатия потока данных. Порт 1194 — это официальный номер порта, присвоенный IANA для OpenVPN. Более новые версии программы теперь по умолчанию используют этот порт. Функция версии 2.0 позволяет одному процессу управлять несколькими туннелями одновременно, в отличие от исходного ограничения «один туннель на процесс» в серии 1.x.

Использование OpenVPN общих сетевых протоколов (TCP и UDP) делает его желательной альтернативой IPsec в ситуациях, когда интернет-провайдер может блокировать определенные протоколы VPN , чтобы заставить пользователей подписаться на более дорогой уровень обслуживания «бизнес-уровня». Например, компания Comcast ранее заявляла, что их продукт @Home всегда считался услугой для жилых помещений и не позволял использовать коммерческие приложения. Их аргумент заключался в том, что удаленная работа через VPN может отрицательно повлиять на производительность сети их постоянных бытовых абонентов. Они предложили альтернативу @Home Professional, она будет стоить дороже, чем продукт @Home. Таким образом, любому, кто хочет использовать VPN, придется подписаться на более дорогой уровень обслуживания бизнес-класса. [20]

Когда OpenVPN использует транспорт протокола управления передачей (TCP) для создания туннеля, производительность будет приемлемой только до тех пор, пока на нетуннелируемом сетевом канале имеется достаточная избыточная полоса пропускания, чтобы гарантировать, что туннелированные таймеры TCP не истечат. [21] Если это окажется неправдой, производительность резко упадет. Это известно как «проблема сбоя TCP». [22] [23]

Безопасность

[ редактировать ]

OpenVPN предлагает различные функции внутренней безопасности. Он имеет 256-битное шифрование через библиотеку OpenSSL , хотя некоторые поставщики услуг могут предлагать более низкие скорости, фактически предоставляя потребителям одни из самых быстрых VPN. Он работает в пользовательском пространстве вместо того, чтобы требовать работы IP-стека (следовательно, ядра). OpenVPN имеет возможность отказаться от привилегий root , использовать mlockall для предотвращения обмена конфиденциальных данных на диск, войти в тюрьму chroot после инициализации и применить контекст SELinux после инициализации.

OpenVPN использует собственный протокол безопасности на основе SSL и TLS. [11] вместо поддержки IKE, IPsec, L2TP или PPTP .

OpenVPN предлагает поддержку смарт-карт через криптографические токены на основе PKCS#11 .

Расширяемость

[ редактировать ]

OpenVPN можно расширить с помощью сторонних плагинов или сценариев, которые можно вызывать в определенных точках входа. [24] [25] Целью этого часто является расширение OpenVPN за счет более продвинутого ведения журналов, улучшенной аутентификации с использованием имени пользователя и паролей, динамических обновлений брандмауэра, интеграции RADIUS и т. д. Плагины представляют собой динамически загружаемые модули, обычно написанные на C , а интерфейс сценариев может выполнять любые сценарии или двоичные файлы, доступные OpenVPN. В исходном коде OpenVPN [26] есть несколько примеров таких плагинов, включая PAM плагин аутентификации . Также существует несколько сторонних плагинов для аутентификации в базах данных LDAP или SQL, таких как SQLite и MySQL . [27]

[ редактировать ]
Формат заголовка OpenVPN
Смещения Октет 0 1 2 3
Октет Кусочек 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0 0 Код операции Идентификатор ключа Идентификатор сеанса
4 32 Идентификатор сеанса
8 64 Идентификатор сеанса HMAC
12 96 HMAC
24 192
28 224 HMAC Идентификатор пакета
32 256 Идентификатор пакета Чистое время
36 288 Чистое время Массив сообщений Len Идентификатор пакета сообщения #

Платформы

[ редактировать ]

Он доступен в Solaris , Linux , OpenBSD , FreeBSD , NetBSD , QNX , macOS , Windows XP и более поздних версиях . [28] OpenVPN доступен для мобильных операционных систем, включая Maemo , [29] Windows Mobile 6.5 и ниже, [30] iOS 3GS+, устройства [31] взломанные устройства iOS 3.1.2+, [32] Устройства Android 4.0+ и устройства Android, на которых была Cyanogenmod. установлена ​​прошивка [33] или установите правильный модуль ядра. [34] Он несовместим с некоторыми операционными системами мобильных телефонов, включая Palm OS . Это не «сетевая» VPN, отображаемая в виде веб-страницы, такой как веб-доступ Citrix или служб терминалов ; программа устанавливается независимо и настраивается путем редактирования текстовых файлов вручную, а не с помощью мастера с графическим интерфейсом. OpenVPN несовместим с VPN-клиентами, использующими протоколы IPsec поверх L2TP или PPTP . Весь пакет состоит из одного двоичного файла для клиентских и серверных подключений, дополнительного файла конфигурации и одного или нескольких ключевых файлов в зависимости от используемого метода аутентификации.

Реализации прошивки

[ редактировать ]

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

Известные пакеты прошивки с интеграцией OpenVPN включают:

Известные пакеты прошивки с интеграцией OpenVPN
Пакет прошивок Расходы Разработчик Ссылки
ДД-ВРТ Бесплатно НьюМедиа-НЕТ ГмбХ [35]
Горгулья Бесплатно Эрик Бишоп [36]
OpenWrt Бесплатно Развитие, управляемое сообществом [37]
ОПНсенс Бесплатно БВ решил [38]
pfSense Бесплатно Рубикон Коммуникейшнс, ООО (Нетгейт)
Помидор Бесплатно Кейт Мойер [39] [40]

OpenVPN также реализован в прошивках маршрутизаторов некоторых производителей.

Реализации программного обеспечения

[ редактировать ]

OpenVPN был интегрирован в SoftEther VPN , многопротокольный VPN-сервер с открытым исходным кодом, чтобы позволить пользователям подключаться к VPN-серверу из существующих клиентов OpenVPN.

OpenVPN также интегрирован в Vyos маршрутизации с открытым исходным кодом , операционную систему , созданную на основе программного маршрутизатора Vyatta .

Лицензирование

[ редактировать ]

OpenVPN доступен в двух версиях:

  • OpenVPN Community Edition — бесплатная версия с открытым исходным кодом.
  • Сервер доступа OpenVPN (OpenVPN-AS) основан на Community Edition, но предоставляет дополнительные платные и проприетарные функции, такие как интеграция LDAP, сервер SMB, управление веб-интерфейсом, а также набор инструментов для установки и настройки, которые, как сообщается, упрощают быстрое развертывание решение для удаленного доступа VPN. [41] [42] Версия Access Server в значительной степени зависит от iptables для балансировки нагрузки и по этой причине она никогда не была доступна в Windows. Эта версия также способна динамически создавать установщики клиента («OpenVPN Connect»), которые включают профиль клиента для подключения к определенному экземпляру сервера доступа. [43] Однако пользователю не обязательно иметь клиент сервера доступа для подключения к экземпляру сервера доступа; можно использовать клиент из OpenVPN Community Edition. [44]

См. также

[ редактировать ]
  1. ^ Журнал изменений OpenVPN — Примечания к выпуску OpenVPN
  2. ^ «Загрузки сообщества» . openvpn.net . Проверено 20 июня 2024 г.
  3. ^ «Загрузки» . openvpn.net . Проверено 27 января 2023 г.
  4. ^ «Частный туннель VPN – приложения Android в Google Play» .
  5. ^ «Частный туннель VPN» . Магазин приложений . 23 октября 2014 г.
  6. ^ «Как подключиться к Access Server с компьютера Linux» .
  7. ^ «Поиск портов FreeBSD» .
  8. ^ «Порты OpenBSD» .
  9. ^ «Коллекция пакетов NetBSD: net/openvpn» .
  10. ^ «openvpn_COPYING на мастере · OpenVPN_openvpn» . Гитхаб . 30 июля 2019 года. Архивировано из оригинала 31 июля 2019 года . Проверено 30 июля 2019 г.
  11. ^ Jump up to: а б «Обзор безопасности OpenVPN» . Проверено 28 сентября 2011 г.
  12. ^ LinuxSecurity.com - OpenVPN: введение и интервью с основателем Джеймсом Йонаном
  13. ^ openvpn.net: Цены , дата обращения 12 декабря 2018 г.
  14. ^ Эндрю Локхарт (2006). Хаки сетевой безопасности: советы и инструменты для защиты вашей конфиденциальности . «О'Рейли Медиа, Инк.». п. 339. ИСБН  978-0-596-55143-8 .
  15. ^ 6нет (2008). Руководство по развертыванию IPv6 . Javvin Technologies Inc. с. 109. ИСБН  978-1-60267-005-1 . {{cite book}}: CS1 maint: числовые имена: список авторов ( ссылка )
  16. ^ Обзор изменений в OpenVPN v2.3 - ChangesInOpenvpn23 - Сообщество OpenVPN
  17. ^ Страница руководства OpenVPN, раздел «Параметры режима TLS»
  18. ^ Петрос Дарас; Оскар Майора (2013). Пользовательско-ориентированные медиа: Первая международная конференция, UCMedia 2009, Венеция, Италия, 9–11 декабря 2009 г., Пересмотренные избранные статьи . Springer Science & Business Media. п. 239. ИСБН  978-3-642-12629-1 .
  19. ^ Вики-сайт сообщества OpenVPN , IPv6 в OpenVPN - получено 8 декабря 2013 г.
  20. ^ «Протокол OpenVPN VPN» . Privacyhq.com . Проверено 24 июня 2021 г.
  21. ^ Мюррей, Майк (20 марта 2021 г.). «OPENVPN MTU: поиск правильных настроек» . Гик-паб . Архивировано из оригинала 20 марта 2021 года . Проверено 20 июля 2022 г.
  22. ^ Титц, Олаф (23 апреля 2001 г.). «Почему TCP поверх TCP — плохая идея» . Проверено 17 октября 2015 г.
  23. ^ Хонда, Осаму; Осаки, Хироюки; Имасе, Макото; Исидзука, Мика; Мураяма, Дзюнъити (октябрь 2005 г.). «Понимание TCP через TCP: влияние туннелирования TCP на сквозную пропускную способность и задержку». В Атикуззамане, Мохаммед; Баландин, Сергей И. (ред.). Производительность, качество обслуживания и управление коммуникационными и сенсорными сетями следующего поколения III . Том. 6011. Бибкод : 2005SPIE.6011..138H . CiteSeerX   10.1.1.78.5815 . дои : 10.1117/12.630496 . S2CID   8945952 .
  24. ^ «Точки входа в скрипт OpenVPN» . Openvpn.net . Проверено 30 июля 2012 г.
  25. ^ Точки входа подключаемого модуля OpenVPN для модулей на основе C.
  26. ^ «Примеры плагинов OpenVPN» . Openvpn.git.sourceforge.net . Проверено 30 июля 2012 г.
  27. ^ Wiki сообщества OpenVPN — связанные проекты
  28. ^ «Загрузки» . openvpn.net . ОпенВПН . Проверено 6 августа 2015 г.
  29. ^ «Пакет OpenVPN Maemo» . Maemo.org . Проверено 30 июля 2012 г.
  30. ^ «OpenVPN для PocketPC» . Ovpnppc.ziggurat29.com. 1 апреля 2007 года . Проверено 30 июля 2012 г.
  31. ^ «ОпенВПН Коннект» . OpenVPN-технологии. 16 января 2013 года . Проверено 16 января 2013 г.
  32. ^ «GuizmOVPN — графический интерфейс OpenVPN для iPhone/iPad» . guizmovpn.com. 30 сентября 2007 года . Проверено 30 сентября 2012 г.
  33. ^ «CHANGELOG в эклере из android_vendor_cyanogen от CyanogenMod» . Гитхаб . циан. 7 июля 2010 г. Проверено 28 октября 2010 г. Список изменений Nexus One Cyanogenmod
  34. ^ «Как установить и настроить OpenVPN на устройстве Android с root-доступом | Блог VPN содержит актуальную информацию о VPN» . Vpnblog.info . Архивировано из оригинала 26 мая 2011 года.
  35. ^ dd-wrt.com - OpenVPN
  36. ^ Горгулья Wiki - OpenVPN
  37. ^ «OpenVPN — OpenWrt Wiki» . openwrt.org . Проверено 11 июня 2018 г.
  38. ^ «opnsense.org — Объявление о выпуске OPNsense 17.1» .
  39. ^ «ТоматоВПН» . Tomatovpn.keithmoyer.com . Проверено 30 июля 2012 г.
  40. ^ LinksysInfo.org - сборка VPN с веб-интерфейсом.
  41. ^ «Сравнение продуктов OpenVPN» . Проверено 15 января 2017 г.
  42. ^ «Что такое сервер доступа OpenVPN (OpenVPN-AS)?» . Проверено 15 января 2017 г.
  43. ^ «Относительно репозитория Chocolatey.org · Проблема № 2 · wget/chocolatey_package_openvpn» . Гитхаб . 16 января 2017 года . Проверено 16 января 2017 г.
  44. ^ «Могу ли я использовать клиент OpenVPN сообщества для подключения к серверу доступа?» . Проверено 16 января 2017 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 3fa1de2d47304867c067d5582c8ca62c__1719500400
URL1:https://arc.ask3.ru/arc/aa/3f/2c/3fa1de2d47304867c067d5582c8ca62c.html
Заголовок, (Title) документа по адресу, URL1:
OpenVPN - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)