6.1 Знакомство с VPN

Virtual Private Network или VPN – это дословно виртуальная частная сеть. Скорее всего, ты часто слышал слово VPN, когда хотели подменить страну в браузере телефона или компьютера. Запустил VPN, выбрал страну и готово.

Знакомство с VPN

Хотя VPN к странам, собственно говоря, никакого отношения не имеет. Дело обстоит немного по-другому.

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

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

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

Ситуация 2: началась пандемия и ты решил работать из дома. Ты забрал рабочий компьютер домой, но вот незадача, доступа к офисным серверам дома нет. Вроде бы логично, ведь они остались на офисе в другом конце города. С другой стороны, возникает вопрос: когда ты перенес компьютер в первом случае, то доступ к офисным компьютерам у тебя сохранился. Когда ты перенес компьютер во втором случае, то доступа нет. Что поменялось?

В первом случае все компьютеры в твоем офисе (даже расположенные на разных этажах) находились в одной локальной сети. А во втором случае – нет. Твой компьютер дома не подключен к офисной локальной сети. Соответственно, у тебя нет доступа к внутренним ресурсам офисной сети.

В качестве устранения этой проблемы было предложено решение – виртуальная локальная сеть (VPN). У тебя в офисе на каждом этаже стояло по роутеру, которые пересылали между собой данные и обеспечивали работу локальной сети.

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

VPN-сервер настраивает системный администратор в офисе, а VPN-клиент сейчас есть в каждом компьютере и/или телефоне.

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

Если ты теперь запустишь у себя браузер, то все данные от твоего браузера пойдут в твой локальный виртуальный роутер (VPN-клиент), из него в виртуальный роутер компании (VPN-сервер), а затем уже дальше в мир через интернет-шлюз офиса твоей компании.

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

6.2 Типы VPN

Сети VPN делятся по их целевым функциям. Можно выделить много разных, но вот список типовых вариантов VPN-решений:

Intranet VPN

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

Remote-access VPN

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

Extranet VPN

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

Internet VPN

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

L2TP был широко распространен в середине 2000-х годов в домовых сетях: в те времена внутрисетевой трафик не оплачивался, а внешний стоил дорого. Это давало возможность контролировать расходы: когда VPN-соединение выключено, пользователь ничего не платит.

В настоящее время проводной интернет дешевый или безлимитный, а на стороне пользователя зачастую есть маршрутизатор, на котором включать-выключать интернет не так удобно, как на компьютере. Поэтому L2TP-доступ отходит в прошлое.

Client/server VPN

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

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

6.3 OpenVPN

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

OpenVPN — это бесплатная программа, которая реализует технологию виртуальной частной сети (VPN). Она поддерживает два популярных режима работы: клиент-сервер и точка-точка, когда нужно объединить две большие сети.

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

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

Также может использоваться пакетная аутентификация HMAC для обеспечения большей безопасности и аппаратное ускорение для улучшения производительности шифрования. Эта библиотека использует OpenSSL, а точнее, протоколы SSLv3/TLSv1.2.

Есть реализации этой программы под все популярные операционные системы: 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 уровнями, если это необходимо.

С учетом того, что мы хорошо разобрали модель OSI, вы должны понимать, о чем тут говорится.

Именно поэтому протокол UDP по своей концепции наиболее близок к OpenVPN, так как он, как и протоколы канального и физического уровней, не обеспечивает надежности соединения, передавая эту инициативу более высоким уровням. Если же настроить туннель на работу по ТСР, сервер в типичном случае будет получать ТСР-сегменты OpenVPN, которые содержат другие ТСР-сегменты от клиента.

Также, что не маловажно, OpenVPN может работать через большую часть прокси-серверов, включая HTTP, SOCKS, через NAT и сетевые фильтры. Сервер может быть настроен на назначение сетевых настроек клиенту. Например, IP-адрес, настройки маршрутизации и параметры соединения.