Авторизация

ЧТО ТАКОЕ VPN И ЗАЧЕМ ЭТО НУЖНО ДЛЯ УДАЛЕННОГО ДОСТУПА

Что такое VPN и зачем это нужно для удаленного доступа

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

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

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

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

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

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

Именно способность VPN протоколов использовать новые IP адреса для своих соединений стала востребована в Интернет для организации доступа в обход ограничений.

Кроме того, технология VPN стала использоваться в сети Интернет и для подмены IP адреса с целью скрыть свое местоположение.

Основные аспекты VPN подключений и особенности VPN протоколов

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

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

 

Важное при установлении VPN соединения

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

Для нашей цели будем считать, что "идентификация" это проверка типа устройства клиента. Например - телефон, компьютер, планшет, версия браузера и т.д. А аутентификация это проверка персоны, которая сейчас использует это устройство.

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

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

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

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

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

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

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

 

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

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

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

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

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

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

Похожим образом работает и SSTP. Сначала устанавливается шифрованное соединение SSL/TLS, а внутри него осуществляется работа протокола PPP (PPP, a не PPTP).

 

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

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

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

 

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

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

 

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

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

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

 

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

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

 

Далее подробнее о VPN протоколах:

PPTP

L2TP

IPsec

OpenVPN

SSTP

WireGuard

 

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

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

 

 

ВАШИ ОТЗЫВЫ О СИСТЕМЕ УДАЛЕННОГО ДОСТУПА И VPN ТУННЕЛЕЙ

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