Openvpn gui что это за программа

Зачем нужен OpenVPN. Области применения данной технологии

Openvpn gui что это за программа. Смотреть фото Openvpn gui что это за программа. Смотреть картинку Openvpn gui что это за программа. Картинка про Openvpn gui что это за программа. Фото Openvpn gui что это за программа

Области применения технологии OpenVPN : для безопасного объединения сетей или серверов с помощью сети Интернет, для обхода блокировок локальных сетевых экранов или ограничений провайдеров, для осуществления контроля за использованием сетевого трафика в рамках одной сети, в качестве безопасного доступа на сервер или в Сеть и другое.

OpenVPN в основном применяют в качестве механизма защиты для частной Сети. Использовать подобный инструмент с открытым исходным кодом можно с целью полноценной разработки зашифрованного канала. Работатают с OpenVPN в режимах: точка-точка или сервер-клиенты. Считается по праву довольно полезным методом шифрования между компьютерами в условиях конкретной сети.

Для пользователя данной технологией предоставляется пару видов аутентификации:

Первый, с помощью предустановленного ключа, это по сути наиболее простой способ.

Второй, это сертификатная аутентификация, которая является очень гибкой в процессе настройки. И на завершение третий: с помощью логина и пароля (может работать без создания клиентского сертификата, но серверный сертификат все равно нужен).

OpenVPN использует статические, предустановленные ключи или обмен динамическими ключами на основе TLS. Существует поддержка соединения VPN с динамическими удалёнными узлами (DHCP или клиенты dial-up), туннели поверх NAT или с помощью полноценного межсетевого экрана.

Бесплатные и платные VPN-сервисы. Что выбрать?

OpenVPN хорошо совмещен и связан с OpenSSL библиотеками, поэтому механизмы шифрования основаны в основном на нем.

OpenVPN портирован в MacOS X — существует свободно распространяемый проект tunnelblick. Нет поддержки параметра TCP_NODELAY ядром этой ОС. Разработан коммерческий проект viscocity для этой ОС. OpenVPN часто используют на маршрутизаторах некоторых производителей: Linksys и Mikrotik и другие.

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

Как обеспечить онлайн безопасность? 7 советов для работы в Сети.

Источник

Как пользоваться OpenVPN GUI

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

Эта статья собственно и расскажет, как пользоваться OpenVPN GUI. Будем настраивать подключение OpenVPN на примере операционной системы Windows 10. Большинство поставщиков VPN-услуг и экспертов по безопасности действительно рекомендуют OpenVPN. Благодаря открытому исходному коду любой пользователь может его проверить или улучшить.

Как настроить OpenVPN на Windows 10

Как работает OpenVPN

Протокол OpenVPN отвечает за поддержание коммуникации между клиентом и сервером. Как правило, он используется для создания защищённого туннеля между VPN-клиентом и сервером.

Для шифрования и аутентификации OpenVPN использует библиотеку OpenSSL. Кроме того, для передачи данных OpenVPN могут использоваться протоколы UDP или TCP.

Как установить OpenVPN

На официальном сайте производителя выберите версию программы для своей операционной системы. Существуют клиенты под все популярные операционные системы: Windows, Linux, MacOS, Android, iOS. Если же Вы загружали установщик с официального сайта, тогда проблем с установкой не возникнет. Запустите установочный файл и следуйте шагам мастера установки.

Openvpn gui что это за программа. Смотреть фото Openvpn gui что это за программа. Смотреть картинку Openvpn gui что это за программа. Картинка про Openvpn gui что это за программа. Фото Openvpn gui что это за программа

Как подключиться OpenVPN

Перед подключением нужно выбрать бесплатный VPN сервер, загрузив на компьютер файл конфигурации определённого сервера. Его стоит выбирать исходя из расположения, к ачества линии, пропускной способности и пинга.

Много разных сайтов содержат бесплатные сервера ретрансляции. Рекомендуем перейти на сайт vpngate.net и выбрать подходящий сервер загрузив файл конфигурации для OpenVPN.

Теперь запустите программу OpenVPN GUI от имени администратора в Windows 10. В противоположном случае просто не удастся подключиться к выбранному серверу.

Рекомендуем импортировать несколько разных конфигураций, после чего перейти к их тестированию. Для тестирования можно воспользоваться сервисами проверки скорости Интернета на компьютере Windows 10.

Если же перейти в расположение: C:\ Пользователи\ Имя_пользователя\ OpenVPN\ config, то можно увидеть, и при необходимости удалить, папки с ранее добавленными конфигурациями.

После подключения к определённому серверу весь трафик пользователя будет проходить через VPN. Таким образом, можно будет играть в игры или посещать сайты, заблокированные в регионе. Скорость — далеко не его сильная сторона, но если у Вас скоростной Интернет, то скорость будет приемлемой. Как правило, скорость интернета падает из-за сильного уровня шифрования в OpenVPN.

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

Источник

Openvpn gui что это

Содержание

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

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

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

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

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

OpenVPN 2.4.8 — released on 2019.10.31

This is primarily a maintenance release with bugfixes and improvements. The Windows installers (I601) have several improvements compared to the previous release:

A summary of the changes is available in Changes.rst, and a full list of changes is available here.

Please note that LibreSSL is not a supported crypto backend. We accept patches and we do test on OpenBSD 6.0 which comes with LibreSSL, but if newer versions of LibreSSL break API compatibility we do not take responsibility to fix that.

Also note that Windows installers have been built with NSIS version that has been patched against several NSIS installer code execution and privilege escalation problems. Based on our testing, though, older Windows versions such as Windows 7 might not benefit from these fixes. We thus strongly encourage you to always move NSIS installers to a non-user-writeable location before running them. We are moving to MSI installers in OpenVPN 2.5, but OpenVPN 2.4.x will remain NSIS-only.

Compared to OpenVPN 2.3 this is a major update with a large number of new features, improvements and fixes. Some of the major features are AEAD (GCM) cipher and Elliptic Curve DH key exchange support, improved IPv4/IPv6 dual stack support and more seamless connection migration when client’s IP address changes (Peer-ID). Also, the new —tls-crypt feature can be used to increase users’ connection privacy.

OpenVPN GUI bundled with the Windows installer has a large number of new features compared to the one bundled with OpenVPN 2.3. One of major features is the ability to run OpenVPN GUI without administrator privileges. For full details, see the changelog. The new OpenVPN GUI features are documented here.

Please note that OpenVPN 2.4 installers will not work on Windows XP. The last OpenVPN version that supports Windows XP is 2.3.18, which is downloadable as 32-bit and 64-bit versions.

If you find a bug in this release, please file a bug report to our Trac bug tracker. In uncertain cases please contact our developers first, either using the openvpn-devel mailinglist or the developer IRC channel (#openvpn-devel at irc.freenode.net). For generic help take a look at our official documentation, wiki, forums, openvpn-users mailing list and user IRC channel (#openvpn at irc.freenode.net).

Important: you will need to use the correct installer for your operating system. The Windows 10 installer works on Windows 10 and Windows Server 2016/2019. The Windows 7 installer will work on Windows 7/8/8.1/Server 2012r2. This is because of Microsoft’s driver signing requirements are different for kernel-mode devices drivers, which in our case affects OpenVPN’s tap driver (tap-windows6).

Source Tarball (gzip)

Source Tarball (xz)

Source Zip

Windows 7/8/8.1/Server 2012r2 installer (NSIS)

Windows 10/Server 2016/Server 2019 installer (NSIS)

NOTE: the GPG key used to sign the release files has been changed since OpenVPN 2.4.0. Instructions for verifying the signatures, as well as the new GPG public key are available here.

We also provide static URLs pointing to latest releases to ease automation. For a list of files look here.

This release is also available in our own software repositories for Debian and Ubuntu, Supported architectures are i386 and amd64. For details. look here.

You can use EasyRSA 2 or EasyRSA 3 for generating your own certificate authority. The former is bundled with Windows installers. The latter is a more modern alternative for UNIX-like operating systems.

The Windows installers are bundled with OpenVPN-GUI – its source code is available on its project page and as tarballs on our alternative download server.

OpenVPN 2.4.7 — released on 2019.02.21

This is primarily a maintenance release with bugfixes and improvements. One of the big things is enhanced TLS 1.3 support. A summary of the changes is available in Changes.rst, and a full list of changes is available here.

Please note that LibreSSL is not a supported crypto backend. We accept patches and we do test on OpenBSD 6.0 which comes with LibreSSL, but if newer versions of LibreSSL break API compatibility we do not take responsibility to fix that.

Also note that Windows installers have been built with NSIS version that has been patched against several NSIS installer code execution and privilege escalation problems. Based on our testing, though, older Windows versions such as Windows 7 might not benefit from these fixes. We thus strongly encourage you to always move NSIS installers to a non-user-writeable location before running them. We are moving to MSI installers in OpenVPN 2.5, but OpenVPN 2.4.x will remain NSIS-only.

Compared to OpenVPN 2.3 this is a major update with a large number of new features, improvements and fixes. Some of the major features are AEAD (GCM) cipher and Elliptic Curve DH key exchange support, improved IPv4/IPv6 dual stack support and more seamless connection migration when client’s IP address changes (Peer-ID). Also, the new —tls-crypt feature can be used to increase users’ connection privacy.

OpenVPN GUI bundled with the Windows installer has a large number of new features compared to the one bundled with OpenVPN 2.3. One of major features is the ability to run OpenVPN GUI without administrator privileges. For full details, see the changelog. The new OpenVPN GUI features are documented here.

Please note that OpenVPN 2.4 installers will not work on Windows XP. The last OpenVPN version that supports Windows XP is 2.3.18, which is downloadable as 32-bit and 64-bit versions.

If you find a bug in this release, please file a bug report to our Trac bug tracker. In uncertain cases please contact our developers first, either using the openvpn-devel mailinglist or the developer IRC channel (#openvpn-devel at irc.freenode.net). For generic help take a look at our official documentation, wiki, forums, openvpn-users mailing list and user IRC channel (#openvpn at irc.freenode.net).

Important: you will need to use the correct installer for your operating system. The Windows 10 installer will not work on Windows 7/8/8.1/Server 2012r2. This is because Microsoft’s driver signing requirements and tap-windows6. For the same reason you need to use an older installer with Windows Server 2016. This older installer has a local privilege escalation vulnerability issue which we cannot resolve for Windows Server 2016 until tap-windows6 passes the HLK test suite on that platform. In the meanwhile we recommend Windows Server 2016 users to avoid installing OpenVPN/tap-windows6 driver on hosts where all users can’t be trusted. Users of Windows 7-10 and Server 2012r2 are recommended to update to latest installers as soon as possible.

Source Tarball (gzip)

Source Tarball (xz)

Source Zip

Windows 7/8/8.1/Server 2012r2 installer (NSIS)

Windows 10 installer (NSIS)

Windows Server 2016 installer (NSIS)

NOTE: the GPG key used to sign the release files has been changed since OpenVPN 2.4.0. Instructions for verifying the signatures, as well as the new GPG public key are available here.

We also provide static URLs pointing to latest releases to ease automation. For a list of files look here.

This release is also available in our own software repositories for Debian and Ubuntu, Supported architectures are i386 and amd64. For details. look here.

You can use EasyRSA 2 or EasyRSA 3 for generating your own certificate authority. The former is bundled with Windows installers. The latter is a more modern alternative for UNIX-like operating systems.

The Windows installers are bundled with OpenVPN-GUI – its source code is available on its project page and as tarballs on our alternative download server.

OpenVPN 2.4.6 — released on 2018.04.24

This is primarily a maintenance release with minor bugfixes and improvements, and one security relevant fix for the Windows Interactive Service. Windows installer includes updated OpenVPN GUI and OpenSSL. Installer I601 included tap-windows6 driver 9.22.1 which had one security fix and dropped Windows Vista support. However, in installer I602 we had to revert back to tap-windows 9.21.2 due to driver getting reject on freshly installed Windows 10 rev 1607 and later when Secure Boot was enabled. The failure was due to the new, more strict driver signing requirements. The 9.22.1 version of the driver is in the process of getting approved and signed by Microsoft and will be bundled in an upcoming Windows installer.

Please note that LibreSSL is not a supported crypto backend. We accept patches and we do test on OpenBSD 6.0 which comes with LibreSSL, but if newer versions of LibreSSL break API compatibility we do not take responsibility to fix that.

Also note that Windows installers have been built with NSIS version that has been patched against several NSIS installer code execution and privilege escalation problems. Based on our testing, though, older Windows versions such as Windows 7 might not benefit from these fixes. We thus strongly encourage you to always move NSIS installers to a non-user-writeable location before running them. Our long-term plan is to migrate to using MSI installers instead.

Compared to OpenVPN 2.3 this is a major update with a large number of new features, improvements and fixes. Some of the major features are AEAD (GCM) cipher and Elliptic Curve DH key exchange support, improved IPv4/IPv6 dual stack support and more seamless connection migration when client’s IP address changes (Peer-ID). Also, the new —tls-crypt feature can be used to increase users’ connection privacy.

A summary of the changes is available in Changes.rst, and a full list of changes is available here.

OpenVPN GUI bundled with the Windows installer has a large number of new features compared to the one bundled with OpenVPN 2.3. One of major features is the ability to run OpenVPN GUI without administrator privileges. For full details, see the changelog. The new OpenVPN GUI features are documented here.

Please note that OpenVPN 2.4 installers will not work on Windows XP.

If you find a bug in this release, please file a bug report to our Trac bug tracker. In uncertain cases please contact our developers first, either using the openvpn-devel mailinglist or the developer IRC channel (#openvpn-devel at irc.freenode.net). For generic help take a look at our official documentation, wiki, forums, openvpn-users mailing list and user IRC channel (#openvpn at irc.freenode.net).

Source Tarball (gzip)

Source Tarball (xz)

Source Zip

Windows installer (NSIS)

NOTE: the GPG key used to sign the release files has been changed since OpenVPN 2.4.0. Instructions for verifying the signatures, as well as the new GPG public key are available here.

We also provide static URLs pointing to latest releases to ease automation. For a list of files look here.

This release is also available in our own software repositories for Debian and Ubuntu, Supported architectures are i386 and amd64. For details. look here.

You can use EasyRSA 2 or EasyRSA 3 for generating your own certificate authority. The former is bundled with Windows installers. The latter is a more modern alternative for UNIX-like operating systems.

The Windows installers are bundled with OpenVPN-GUI – its source code is available on its project page and as tarballs on our alternative download server.

OpenVPN – технология позволяющая на базе открытого исходного кода выстраивать сеть VPN между клиентом и сервером, сайтом и сайтом, поверх самого интернета. Созданный Джеймсом Йонаном 10 апреля 2002 года OpenVPN до сих пор широко применяется юзерами с целью шифрования трафика и безопасного использования всемирной паутины. Более того, популярность технологи растет из года в год.

Openvpn gui что это за программа. Смотреть фото Openvpn gui что это за программа. Смотреть картинку Openvpn gui что это за программа. Картинка про Openvpn gui что это за программа. Фото Openvpn gui что это за программа

Работая через TCP/UDP порты и SSL/TLS протоколы OpenVPN обладает исключительной легкостью и простотой в плане настройки и установки. Кроссплатформенность дает возможность инсталлировать клиент на любые версии Windows (включая 2000 и XP), Linux, Mac OS, Solaris, Open, Net и FreeBSD без принципиальных изменений в конфигурации и архитектуре.

Принципы работы OpenVPN:

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

Использование VPN в среде частных пользователей облегчает специальный OpenVPN GUI клиент. Что такое OpenVPN GUI? Это графический интерфейс, средство позволяющее работать с VPN на персональном устройстве. GUI клиент представляет из себя устанавливаемую программу малых размеров, с помощью которой пользователь может выбрать сервер для подключения, установить соединение с виртуальной частной сетью, увидеть лог подключения и т.д. Во время работы GUI скрывается в трее и совершенно не грузит систему.

Еще немного об OpenVPN, SSL и IPSec

До появления SSL протокол IPSec являлся единственным средством, с помощью которого можно было шифровать данные в сетях типа сайт-сайт и клиент-сервер. К счастью, в 90-х монополия исчезла, т.к. кампания Netscape презентовала первую версию протокола SSL, современную версию которого чаще называют TLS. С его помощью юзерам представилась возможность шифровать данные при участии упомянутых выше открытых ключей (аутентификация или логинпароль). И сегодня можно точно сказать, что благодаря относительной простоте OpenVPN SSL протокол используется не только для защиты данных по HTTP, но и для построения VPN типа клиент-сервер.

Openvpn gui что это за программа. Смотреть фото Openvpn gui что это за программа. Смотреть картинку Openvpn gui что это за программа. Картинка про Openvpn gui что это за программа. Фото Openvpn gui что это за программа

Что такое VPN вкратце? Это виртуальная частная сеть, представляющая из себя туннель между двумя устройствами (клиент-сервер или точка-точка) и работающая поверх еще одной сети (например, сеть Интернет). Определяющими факторами для безопасного VPN является конфиденциальность и шифрование, целостность передаваемой информации, а также аутентификация – объекты должны быть уверены в подлинности друг друга до начала передачи трафика. Именно за шифрование и аутентификацию отвечают библиотеки IPSec и SSL. Однако, не смотря на схожие задачи, протоколы имеют принципиально разные пути решения проблем.

Все это давно привело к тому, что в сегменте VPN сервисов типа клиент-сервер OpenVPN окончательно вытеснил протокол IPSec. Можно сказать, что IPSec является одним из этапов развития VPN технологий и на данный момент на порядок уступает более безопасному, современному и удобному OpenVPN. В сухом остатке никаких существенных преймуществ у IPSec на данный момент по сравнению с OpenVPN попросту нет. Настройка OpenVPN клиента занимает не более минуты, а создание подключений и вовсе считанные секунды – необходимо лишь скачать клиентские конфиги и разместить их в соответствующей папке программы. К тому же при использовании OpenVPN не требуется настраивать антивирусные программы и сетевые экраны для стабильного обмена трафиком с VPN сервером, чего не скажешь про IPSec. Все пользователи, обеспокоенные конфиденциальностью своих данных должны понимать это и отдавать предпочтение более надежным решениям.

И ещё чуть-чуть про OpenVPN и PPTP

Следующим за OpenVPN можно назвать технологию, разработанную компанией Microsoft в 1999 году — PPTP, что переводится как “Протокол Туннелирования Точка-Точка”. Это ещё один тип VPN-соединения, доступный из всех представленных на сегодняшний день. Однако сразу стоит отметить, что технология считается уязвимой и более нестабильной по сравнению с OpenVPN:

Многих прельщает тот факт, что для PPTP в среде Windows не требуется дополнительного программного обеспечения, но по факту из-за работы через GRE-соединение стабильность подключения намного ниже, чем в случае с OpenVPN. Причина тому заключается в NAT-е. GRE – это протокол сетевого уровня, из-за чего межсетевые экраны блокируют большую часть соединений, что вынуждает использовать такие примочки, как PPTP Passthrough посредством так называемого Port Forwarding-а, или проброса портов. Как выше уже упоминалось PPTP – технология устаревшая и изначально не рассчитывалась на использование под NAT-ом, тогда как в OpenVPN эти нюансы учтены и проблем не возникает. По итогу пользователю может потребоваться производить настройки маршрутизатора и в конечном счете времени уйдет больше, чем на установку OpenVPN клиента.

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

Источник

OpenVPN, о котором вы так мало знали

OpenVPN, как много в этом слове. Мультиплатформенный, гибко настраиваемый, бесплатный VPN сервер с открытым исходным кодом, являющийся фактически стандартом «defacto» для организации доступа к внутренним корпоративным сетям. Большинство администраторов используют его с настройками по умолчанию или с типовыми конфигурациями широко описанными в разных HOW-TO. Но так ли прост OpenVPN, как он кажется на первый взгляд? В данной статье мы рассмотрим скрытые от глаз внутренние механизмы OpenVPN, которые кардинально меняют представление о его возможностях.

OpenVPN сервер распространяется в виде исходного кода или готовых к установке скомпилированных пакетов для различных операционных систем. В качестве библиотеки обеспечивающей шифрование используется OpenSSL.

Большинство конфигураций для связи клиентов с сервером, а также между серверами, предполагает использование связки приватных или приватно/публичных ключей для обеспечения безопасности внутреннего трафика. Для корпоративных сетей в режиме MultiPoint-To-SinglePoint обычно используется свой центр сертификации PKI, который легко строится либо при помощи easy-rsa, либо на основе XCA. Для межсервенной коммуникации типа Point-to-point, в основном используется конфигурация с общим ключом. Вспомним основные, всем известные механизмы и возможности.

Основные механизмы и возможности

Сертификатная аутентификация

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

Приватные point-to-point ключи

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

Во всех случаях подключения для безопасности «рукопожатия» handshake между клиентом и сервером используется протокол Diffie-Hellmann.

Внешняя аутентификация пользователей

Для упрощения контроля за подключением пользователей, вместо схемы со своим PKI, можно использовать схему с внешней аутентификацией пользователей по логину/паролю. Данная схема удобна для аутентификации пользователей скажем по доменному логину/паролю. Для подключения к серверу в конфигурационный файл клиента добавляется сертификат сервера и ключ подписи передаваемых пакетов HARDENING OPENVPN SECURITY.
пример клиентского конфига

Часть серверного конфига для аутентификации клиентов через файл
Using alternative authentication methods

Данная схема удобна, но очень небезопасна.

Для повышения безопасности можно использовать подключаемые модули обеспечивающие проверку логина/пароля во внешних системах. Самым распространённым методом является системный PAM(Pluggable Authentication Modules).
В конфигурационный файл OpenVPN необходимо добавить строку

Маршрутизация

Т.к. основной задачей сервера является обеспечение доступа удалённых пользователей/серверов к внутренним ресурсам, сервер позволяет определять статическую маршрутизацию от клиентов к серверу и от сервера к клиентам. С точки зрения доступа клиентов к внутренним ресурсам, сервер при помощи протокола DHCP и директив «route» или «push route» позволяет передать клиенту маршруты внутренних сетей. Для оповещения самого сервера об удалённых сетях на стороне клиента используется «client config dir» (ccd), механизм позволяющий описать при помощи директивы «iroute» список внутренних сетей клиента, которые должны попасть в таблицу маршрутизации сервера для транзита в них трафика.

На этом «штатные» широкоиспользуемые возможности заканчиваются и начинается локальная кастомизация для каждого конкретного случая.

Дополнительные возможности OpenVPN

Рассмотрим дополнительные возможности OpenVPN, о которых может кто-то и слышал, но в реальности не видел или не использовал.

Безопасность сетей/Packet Filtering

Директивы блока (ACCEPT/DENY) задают действие по умолчанию для всех клиентов не указанных внутри блока.
Например файл для клиента user2

заблокирует трафик ко всем пользователям и сетям, но разрешит трафик в сторону клиента user1. Если у user1 не будет явным образом описано разрешение передачи трафика в сторону user2, то трафик будет ходить только в одну сторону user2->user1.

Или другой пример.
Отключить всё кроме доступа между пользователями и DNS сервером находящимся в локальной сети и тестовым контуром в сети 192.168.0.0/24

Механизм фильтрации активируется через конфигурационный файл, либо при подключении плагина «выставившего» флаг «OPENVPN_PLUGIN_ENABLE_PF».
Данную возможность мы обсудим позже.
Вторым режимом фильтрации трафика является встроенный в систему пакетный фильтр. Для его активации в конфиге не должно быть директивы «client-to-client». С точки зрения автоматизации включения/выключения необходимых правил при подключении/отключении клиентов удобнее всего использовать отдельные вставки в список правил, реализуемые либо через CHAINS в Iptables(Linux), либо в Anchors в PF(FreeBSD). Активация/деактивация правил обычно осуществляется через директивы client-connect/client-disconnect в конфигурационном файле сервера, вызывающие соответствующие скрипты при подключении/отключении пользователя.

Расширенная PAM аутентификация

Под расширенной PAM аутентификацией подразумевается изменение логики работы проверки логина и пароля пользователя. Достигается это либо установкой соответствующих плагинов для OpenVPN, обеспечивающих чтение и проверку данных во внешних источниках, либо подключением в систему библиотек позволяющих скриптовать любую логику. Одной из такой библиотек является pam_python, которая помогает скриптовать любую логику проверки логина/пароля через Python скрипты.
В случае её использования строка проверки пользователя меняется следующим образом.

Так как «под капотом» PAM находятся алгоритмы диалогов системы с пользователем или внешними библиотеками, то этими диалогами можно управлять. Например подключить OTP токены в систему. Библиотека LinOTP взята просто для примера, т.к. свою самописную библиотеку написанную во время тестирования я где-то потерял ¯\(ツ)
Также примеры легко гуглятся по слову «pam_python».
Основной проблемой при работе с внешними PAM модулями является невозможность получить сессионное окружение OpenVPN внутри вызываемого Python или любого другого скрипта, вызываемого через системный pam. Т.е. скрипт обеспечивает только те функции по проверке логина/пароля, которые на него возложены.

«Отложенная» аутентификация

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

Плагины OpenVPN

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

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

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

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

Как видно из дампа, появилась переменная pf_file. В данном файле должны находиться правила внутреннего пакетного фильтра для текущей обрабатываемой сессии.
Далее проверяется логин и пароль пользователя в функции OPENVPN_PLUGIN_AUTH_USER_PASS_VERIFY

Это единственное место где пароль в переменном окружении присутствует в открытом виде.
Результатом работы данной функции должны быть три варианта ответа.

Если сервер получает ответ OPENVPN_PLUGIN_FUNC_DEFERRED, то в работу вступает механизм «отложенной» аутентификации. Как мы видим, в переменном окружении появилась переменная «auth_control_file», содержимое данной переменной содержит имя файла, в котором будет ожидаться ответ от системы аутентификации. Ответом является помещённый в указанный файл символ 0(для разрешения доступа), 1(для запрета доступа). Параметр сервера «hand-window» определяет таймаут в секундах, в течении которого сервер будет ожидать ответ. Во время ожидания трафик от других клиентов не прерывается.

Так как мы работаем с парольной аутентификацией, то функции проверки сертификатов OPENVPN_PLUGIN_TLS_VERIFY не вызывается. Вместо этого сразу вызывается OPENVPN_PLUGIN_TLS_FINAL, подтверждающий установление сессии.

Далее срабатывает вызов OPENVPN_PLUGIN_IPCHANGE, вызываемый перед сменой ip адреса клиента.

Функция OPENVPN_PLUGIN_CLIENT_CONNECT_V2, вызывается при установке IP адреса внутренним DHCP сервером.

В переменном окружении появляются переменные содержащие параметры туннеля «ifconfig_pool_local_ip» и «ifconfig_pool_remote_ip».

Функция OPENVPN_PLUGIN_LEARN_ADDRESS вызывается при обучении OpenVPN сервером, связки IP адресов и маршрутов к ним. После выхода из этой функции активируется процедура применения настроек пакетного фильтра из файла. Переменное окружение OPENVPN_PLUGIN_LEARN_ADDRESS при этом соответствует фазе OPENVPN_PLUGIN_CLIENT_CONNECT_V2.

При отключении клиента вызывается функция OPENVPN_PLUGIN_CLIENT_DISCONNECT.

В переменном окружении добавляются длительность соединения и трафик пользователя.

Как вы успели заметить, в связи с обилием данных в разных вызовах, написание и отладка плагина на языке программирования C(C++) будет довольно трудоёмкой задачей.
Для расширения функционала было решено сделать «чудо» сначала для внутреннего проекта, а потом выложить его в свободный доступ 🙂
После долгого чтения исходных кодов OpenVPN и различных примеров узкоспециализированных плагинов, был написан проект, который в качестве языка программирования логики обработки сессии использует Python. Код представляет собой подключаемый к OpenVPN плагин на языке C, который все запросы поступающие в плагин, отправляет в Python модуль через c-api reference.

Python c-api reference работая с python файлами напрямую, некорректно работает с загрузкой python библиотек.

При инициализации плагина в OpenVPN, плагин возвращает масочный список всех функций, которые может обслужить. При наступлении очередной фазы подключения или внутреннего события, OpenVPN вызывает соответствующие функции из плагина. Плагин преобразует переменное окружение и параметры переданные функции в структуру, инициализирует python и передаёт структуру в соответствующую процедуру python модуля. Процедура возвращает плагину один из трёх ответов (0 — Success, 1 — Error, 2 — Deferred). Ответ транформируется и возвращается OpenVPN.

Обратите внимание, что все вызовы модуля являются «stateless», это означает, что процедуры не помнят и не знают, что происходило ранее в других вызовах. Ориентироваться можно только на переменное окружение передаваемое плагину из OpenVPN.

Внутри python модуля вы можете реализовать любую логику, подключая нужные библиотеки и ресурсы. Если вы не уверены в скорости выполнения проверок, то используйте «отложенные» подтверждения.

Используя группировку пользователей подключаемых к сервису, через pf_file можно довольно тонко настроить сетевое взаимодействие между пользователями и другими ресурсами. В свою очередь подключив плагин на мониторинг, всегда можно будет через management интерфейс OpenVPN управлять сессиями клиентов.

Во время тестирования проекта был разработан механизм генерации паролей, аналогичный jwt токенам, но имеющим меньший размер.

Суть проста. Токен содержит в себе идентификатор клиента и срок окончания доступа. Для подписи токена используется HMAC_SHA1 с закрытым ключом. После подписи токена, текстовое содержимое ксорится подписью и конвертится в base64. Таким образом получается «запечатывание» токена. «Запечатанный» токен используется в качестве пароля пользователя. При несанкционированном изменении блока с данными, поломается xor, если поломается xor, значит поломается проверка подписи. Без закрытого ключа подпись изменить не получится.

Если вы не хотите руками контролировать время действия пароля, то генерируете такой токен, и проверяете его на валидность внутри плагина, не вызывая внешние сервисы. Данная схема очень удобна для сессионной генерации паролей на определенное время. При этом вы можете во внешнюю систему управления передать содержимое токена и она сама настроится на отключение пользователя по окончании действия токена.

Надеюсь информация в данной статье была вам полезна.
Спасибо за потраченное на её прочтение время.
Если есть вопросы, попробую ответить на что смогу.

© Aborche 2019
Openvpn gui что это за программа. Смотреть фото Openvpn gui что это за программа. Смотреть картинку Openvpn gui что это за программа. Картинка про Openvpn gui что это за программа. Фото Openvpn gui что это за программа

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *