администрирование,

VPN - коротко о главном

Apr 30, 2019 · 3 мин. на прочтение
VPN - коротко о главном
Поделиться

Сразу поясню, что я не разбираюсь в сетях, протоколах и в том, как всё это устроено и работает. Другими словами, я не “сетевик”. Но есть пограничные области, где системный администратор очень близко подходит и соприкасается с сетевыми технологиями. И вот тут-то нам и нужно понимать хотя бы базовые принципы работы. В статье приведены материалы, собранные по разным сайтам в Internet. Не претендую ни на какую полноту или достоверность.

В статье использованы материалы свободной энциклопедии Wikipedia.

Как сообщает Wikipedia, технология VPN была разработана для того, чтобы позволить удалённым офисам получить доступ к корпоративным ресурсам1. Для обеспечения безопасности используется один из туннельных протоколов, использующих шифрование (an encrypted layered tunneling protocol). А также аутентификация пользователей с использованием пароля и/или сертификата.

Туннельный протокол или протокол туннелирования - это коммуникационный протокол, который позволяет передавать данные из одной сети в другую.

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

Суть туннелирования состоит в том, чтобы «упаковать» передаваемую порцию данных, вместе со служебными полями, в новый «конверт» для обеспечения конфиденциальности и целостности всей передаваемой порции, включая служебные поля. Этот процесс называется инкапсуляцией (encapsulation).

Инкапсуляция - это включение сообщений вышестоящего уровня в сообщения нижестоящего уровня. Так, например, WEB-страница инкапсулируется в HTTP, тот в свою очередь в TCP, затем в IP и так далее.

На скриншоте проиллюстрирован процесс инкапсуляции на примере отправки сообщения UDP.

vpn-short-description/vpn-short-description_1.png

Чтобы лучше понять иллюстрацию, вспоминаем модель OSI, которая показана на скриншоте.

vpn-short-description/vpn-short-description_2.png

Используя Microsoft Message Analyzer или Wireshark можно более наглядно посмотреть, как устроена инкапсуляция

vpn-short-description/vpn-short-description_3.png

На всякий случай, если кто-то забыл формат заголовка IPv4, то можете его увидеть на скриншоте ниже.

vpn-short-description/vpn-short-description_4.png

Собственно, комбинация туннелирования + шифрования и позволяет реализовать виртуальные частные сети (VPN)3.

Вот наиболее популярные протоколы туннелирования.

  • GRE (Protocol 47): Generic Routing Encapsulation
  • OpenVPN (UDP port 1194): Openvpn
  • SSTP (TCP port 443): Secure Socket Tunneling Protocol
  • IPSec (Protocol 50 and 51): Internet Protocol Security
  • L2TP (Protocol 115): Layer 2 Tunneling Protocol

Каждый из них обладает своими особенностями, достоинствами и недостатками. Об этом позже.

Давайте взглянем какие из этих протоколов поддерживает Windows 10 и iOS. Создавая и настраивая VPN соединение в Windows мы можем выбрать между PPTP, L2TP, SSTP и IKEv2 протоколами. Apple некоторое время назад отказались от поддержки PPTP и сейчас в iOS поддерживается IKEv2, L2TP и IPsec.

vpn-short-description/vpn-short-description_5.png vpn-short-description/vpn-short-description_6.png

В Windows Server, запустив оснастку Routing and Remote Access, в свойствах элемента Ports мы можем увидеть, какие протоколы задействованы на нашем VPN-сервере в данный момент.

vpn-short-description/vpn-short-description_7.png

Теперь попробуем определиться, какой из этих протоколов выбрать. Как я уже говорил каждый из них имеет свои особенности. В интернете можно найти много статей на эту тему, не буду их повторять. Приведу лишь небольшую табличку, в качестве памятки. Из неё видно, что наиболее универсальным является протокол IKEv2. Он быстрый, защищенный, поддерживается Windows и iOS. Но не поддерживается производителям Android и Linux.

vpn-short-description/vpn-short-description_8.png

Обратите внимание на протокол OpenVPN. Он не присутствует нативно в Windows и iOS, но для этих ОС существует клиент, который позволяет настраивать и устанавливать VPN соединение с использованием данного протокола.

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

Подпишитесь на новости
Чтобы не пропустить новые статьи. Я никогда не рассылаю спам!