OpenVPN

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
OpenVPN
Ovpntech logo-s REVISED.png
Тип

VPN

Разработчик

Джеймс Йонан

Написана на

C

Операционная система

Кроссплатформенный

Первый выпуск

10 апреля 2002

Последняя версия

2.4 (27 декабря 2016)

Лицензия

GNU GPL

Сайт

openvpn.net

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

Введение[править | править вики-текст]

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

Аутентификация[править | править вики-текст]

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

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

Сеть[править | править вики-текст]

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

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

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

  1. OpenVPN: An Introduction and Interview with Founder, James Yonan (англ.). LinuxSecurity.com. Проверено 6 марта 2015.
  2. Security Overview (англ.). OpenVPN.net. Проверено 6 марта 2015.
  3. Olaf Titz. Why TCP Over TCP Is A Bad Idea (англ.). Проверено 6 марта 2015.
  4. Douglas Crawford. OpenVPN over TCP vs. UDP: what is the difference, and which should I choose? (англ.). BestVPN (23.08.2013). Проверено 6 марта 2015.
  5. Service Name and Transport Protocol Port Number Registry (англ.). IANA. Проверено 6 марта 2015.

Ссылки[править | править вики-текст]