Авторизация

ЧТО ТАКОЕ VPN?

что такое VPN

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

С точки зрения архитектуры, понятия VPN сервер и VPN клиент используется большинством протоколов и технологий (PPTP, L2TP, SSTP, OpenVPN), однако, не всегда можно четко разделить роли клиента и сервера. Есть примеры архитектуры, где VPN соединение устанавливается между равноправными узлами, которые одновременно являются и сервером и клиентом. Примером такой архитектуры является WireGuard.

В общем случае, при установлении соединения на сервере и на клиентском оборудовании появляются новые виртуальные интерфейсы и им назначаются IP адреса.

Таким образом, обмен трафиком между клиентом и сервером происходит с использованием новых адресов VPN соединения. Появление нового сетевого соединения позволяет обеим сторонам применять к нему новые правила маршрутизации и межсетевого экранирования.

Вообще, именно наличие сетевых интерфейсов и IP адресов на них является значимым признаком VPN. Например, если вы подключаетесь к сайту в Интернет при помощи своего браузера и протокола https, то между клиентским браузером и сервером образуется шифрованное соединение, но для передачи этого трафика обе стороны - и компьютер клиента и сервер используют существующие IP адреса своих интерфейсов. Поэтому такое соедиение не является "соединением VPN", а является просто шифрованным соединением.

 

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

Начнем с некоторых общих фаз в использовании VPN соединений, а затем перейдем к особенностям протоколов. Мы не стремимся создать описание протоколов - их можно найти в Интернет, мы лишь остановимся на важном для вас и нас при использовании VPNKI.

 

Установление VPN соединения

При установлении VPN соединения сервер и клиент могут проверять подлинность друг друга, а могут обойтись и без этого. Эти начальные процедуры обычно называются "идентификацией" и "аутентификацией". В случае нашей системы мы не делаем разницы между этими понятиями, но в мире ИТ эти понятия отличаются (правда о грани между ними споры идут до сих пор). Для нашей цели будем считать, что "идентификация" это проверка типа устройства клиента (телефон, компьютер, планшет, браузер и т.д.), а аутентификация это проврка персоны, которая сейчас используется это устройство.

Обычно, конечно, проверка подлинности осуществляется на сервере и только после успеха такой проверки пользовательское соединение считается установленным, а виртуальные сетевые интерфейсы с обеих сторон созданными.

Проверка подлинности (аутентификация) может осуществляться как путем привычной проверки имени пользователя и пароля, так и проверкой сертификатов обеих сторон. Обеих сторон - это важное уточнение. То есть не только сервер может проверить логин/пароль или сертификат клиента, но и клиент может проверить подобные данные сервера, чтобы убедиться в том, что он подключается к правильному серверу, а не к его двойнику, созданному мошенником.

В различных VPN протоколах используются весьма разнообразные механизмы аутентификации среди которых: PAP, CHAP, MS-CHAPv1, MS-CHAPv2, EAP, EAP-TLS, PEAP, NTLMv2, EAP-MSCHAPv2 и другие.

В системе VPNKI мы используем протоколы CHAP и MS-CHAPv2 как наиболее распространенные.

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

Также, важным моментом является способность программного обеспечения клиента устанавливать VPN соединения при старте программы или компьютера/маршрутизатора. Для маршрутизаторов это особенно важно, так как обычно VPN соедиения на них должны быть "почти постоянными".

 

Шифрование данных внутри VPN соединения

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

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

  • шифрование MPPE для подлючения PPTP,
  • шифрование IPsec для подключения L2TP/IPsec,
  • шифрование AES для OpenVPN,
  • шифрование ChaCha20 для WireGuard
  • шифрование SSL для SSTP

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

Например, в VPNKI мы испольуем протоколы L2TP и IPsec. Использование двух протоколов позволяет сначала установить шифрованное соединение IPsec , а внутри него запустить новое виртуальное сетевое соединение при помощи протокола L2TP и с проверкой логина/пароля. Такой способ обезопасит от перехвата логин и пароль пользовательского подключения.

Похожим образом работает и SSTP - сначала устанавливается шифрованное соединение SSL/TLS, а внутри него осуществляется работа PPP

 

Компрессия данных внутри VPN соединения

Данные, передаваемые по VPN туннелю, могут подвергаться компрессии для более эффективного использования полосы пропускания. Для включения компрессии ее методы должны поддерживать обе стороны соединения – клиент и сервер. Методы компрессии согласуются при установлении соединения и остаются неизменными всю сессию.

Если методы компрессии не были успешно согласованы сторонами при установлении соединения, то соединение или не будет успешно установлено или будет установлено без использования компрессии. Это будет происходить в соответствии с параметрами, установленными в настройках VPN соединения сервера и клиента.

 

Автоматическая проверка работоспособности VPN соединения

Внутри некоторых VPN протоколов встроены механизмы проверки работоспособности VPN соединения. Так, например, протокол OpenVPN обладает встроенной возможностью проверки наличия VPN соединения, используя периодическую посылку пакетов icmp (командой ping)

 

Разрыв VPN соединения

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

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

 

Автоматическое установление разорванного VPN соединения

Для автоматического установления разорванного соединения часто используются внутренние механизмы контроля за состоянием соединения и его перезапуском. Так, например, протокол OpenVPN может перезапускать соединение при отсутствии ответов на отосланные пакеты icmp, не используя для этого какие-либо внешние средства.

 

Далее о протоколах:

PPTP

L2TP

IPsec

OpenVPN

SSTP

WireGuard

 

ДОПОЛНИТЕЛЬНО О НАШЕЙ СИСТЕМЕ

Кроме базового функционала по объединению VPN туннелей с различными протоколами, в системе VPNKI вы можете воспользоваться удаленным доступом к компьютеру или камере, используя:

ВАШИ ОТЗЫВЫ

Артур
Артур
Парни, отличный сервис! Нужно было быстро получить доступ к видеокамере на даче. Там стройка и все дела. Подключился к вам и настроил, но сразу не заработало. Сначала сложно было понять как работает все. Написал в форум и админ решил мою проблему за несколько минут! Теперь вижу процесс стройки на даче и статический IP адрес не нужен оказался. Спасибо за помощь! Буду осваивать вашу систему дальше. С уважением, Артур
Валерий
Валерий
Спасибо! Я использую Ваш сервис в проекте автономного автоматического мобильного поста контроля проезда лесовозного автотранспорта непосредственно в лесном массиве . "Егерь-1" В процессе отладки ПО действующего прототипа возникла прямая необходимость vpn соединения передача данных MySQL, создание серверной базы либо платного сервиса vpn в бюджете не рассматривался и Ваш сервис оказался единственной альтернативой, давшей возможность провести полевые испытания, то есть завершающий этап испытания прототипа позволяющий сформулировать тз как в железе так и в ПО включая интерфейс оператора. Огромное Вам человеческое СПАСИБО! Вряд ли меня можно назвать специалистом в области IT, по этому доступность и разъяснения на Вашем порталие оказали решающее значение в реализации VPN соединения , открыв возможность завершить испытния со знаком+.
Александр
Александр
Ура, Мужики-и! У меня всё получилось! Спасибо Вам за доброе дело и квалифицированную помощь! Удачи в будущих разработках! С меня реклама и благодарности... С Уважением! Александр.