OpenVPN

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

OpenVPN — свободная реализация технологии виртуальной частной сети (VPN) с открытым исходным кодом для создания зашифрованных каналов типа точка-точка или сервер-клиенты между компьютерами. Она позволяет устанавливать соединения между компьютерами, находящимися за 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. v2.7.6 — 2026.
  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 года.

Ссылки

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.