Те, кто готов пожертвовать насущной свободой ради малой толики временной безопасности, не достойны ни свободы, ни безопасности.
Бенджамин Франклин, официальное письмо от Ассамблеи Пенсильвании губернатору Томасу Уортону, 11 ноября 1755.
Люди, сведущие в компьютерных сетях, могут смело пропустить следующие несколько абзацев. В них я очень кратно объясню всем остальным, что же такое Virtual Private Network (VPN) и для чего применяется сия технология.
Виртуальная частная сеть (Virtual Private Network) — специальная технология, позволяющая создавать защищенный канал, обыкновенно называемый тоннель, между частными, чаще всего локальными, сетями или компьютерами. Тоннель создается, как правило, через публичные открытые сети, например, через сеть Интернет. Таким образом, появляется возможность соединить две или больше отдельных и изолированных сетей в одну сеть, где компьютеры могут свободно обмениваться информацией, как будто бы они находятся в одной единой сети. Либо, как вариант, отдельный компьютер, например, ноутбук постоянно путешествующего с товаром коммивояжёра, т.е. Road Warrior, может входить в сеть своего работодателя из любой точки планеты используя обычные Wi-Fi подключения.
Помимо создания тоннеля, что и так не мало важно, средства VPN обеспечивают безопасность передаваемых данных. Данные не только надежно шифруются, но и, в большинстве случаев, производится валидация источника данных. Если VPN канал настроен правильно, то можно не беспокоиться того, что данные, передаваемые по тоннелю, будут скомпрометированы. Даже если их кто-то каким-то образом сможет перехватить, то расшифровать их, с использованием актуального научно-технического оборудования, будет весьма проблематично, да и подменить пакеты другими у злоумышленника не выйдет. Кстати, параноики могут «заворачивать» несколько тоннелей, один в другой, обеспечивая передаваемым данным еще большую безопасность.
VPN-технологии весьма активно используются в корпоративном секторе. Так удаленные офисы подключаются к головному по общедоступным каналам, сотрудники, работающие дома, получают доступ к ресурсам корпоративной сети используя простое подключение к интернет. И всё, благодаря VPN, надежно защищено. В последнее время наблюдается тренд, связанный с использованием технологий VPN для защиты конфиденциальности пользователя в глобальной сети. И не зря. Интернет появился на планете не так уж и давно, еще живы люди, стоявшие у его истоков. Но технологии развиваются настолько быстро, то всего за несколько десятков лет интернет распространился по всему земному шару, проник в самые удаленные и отдаленные уголки планеты.
Высокая степень проникновения средства коммуникации и практически полное отсутствие его регулирования со стороны государств привело к тому, что вседозволенностью глобальной сети начали пользоваться злоумышленники и прочие революционеры. Под их удар попадают не только обычные граждане, но и сами государства. Группа заговорщиков может спокойной координировать свои действия по свержению государственной власти через интернет, вовлекая в свою деятельность все больше и больше других людей. Прямая угроза государствам и государственности. Поэтому, повинуясь древнейшему инстинкту самосохранения, государства постепенно начинают закручивать гайки и устраивать тотальный контроль за тем, чем обмениваются не только террористы, но и обычные, вполне законопослушные граждане, в сети интернет. Достаточно вспомнить «Великий Китайский Файрвол» или же «Закон Яровой». И очевидно, что далеко не все граждане согласны поступиться своей частной жизнью и конфиденциальностью своих данных. Поэтому граждане и стараются использовать различного рода анонимизаторы, средства шифрования и, в том числе, VPN-тоннели.
Еще одно небольшое замечание. VPN-технологию не стоит не путать с технологией VLAN. Если VPN позволяет безопасно соединять сети, с использованием шифрования и обеспечении целостности доставки данных, Virtual Local Area Network (VLAN) позволяет объединить компьютеры в одной или нескольких сетях в одну, хоть и виртуальную, но локальную сеть. Так может достигаться изоляция компьютеров и других устройств в одной физической локальной сети и наоборот, устройства из нескольких физических локальных сетей можно объединить в одну сеть. Тем не менее, обе технологии можно комбинировать для достижения оптимального результата по разграничению и объединению.
Сделано в…
SoftEthe VPN или просто SE VPN был создан в Японии студентом-японцем в качестве доказательства возможности использования столь сложной технологии как VPN не на уровне ядра, а на пользовательском. А дальше, постепенное и последовательное развитие под крылом университета Цукубы и коммерческих компаний. В результате на выходе получился очень интересный продукт, доступный для широких масс и предлагающий впечатляющие возможности по построению частных виртуальных сетей. Более того, под эгидой университета и с поддержкой компании Microsoft, а также многих тысяч добровольцев, люди, находящиеся в странах с цензурой интернет, получают возможность нормального доступа в глобальную сеть. А услуга им предоставляется на бесплатной основе даже невзирая на налоговый риск.
Какие преимущества предоставляет SE VPN перед другими VPN
Удивительно. Обычно сайты и форумы пестрят вопросами и статьями касающимся создания VPN посредством L2TP/IPsec или OpenVPN. С PPTP или с SSTP вопросов обычно не возникает. Первый мало кто использует в силу обнаруженных уязвимостей, а второй работает только в среде Windows, а там к таким работам подпускаются только квалифицированные специалисты. А вот про SoftEther VPN упоминаний очень мало. И на мой взгляд незаслуженно мало, ведь штука до зарезу интересная.
Начнем с того, что SoftEther VPN — продукт с открытым исходным кодом. Это значит, что вы можете изучить его на предмет уязвимостей или авторских закладок. Ознакомиться с актуальным исходным кодом, а равно и поучаствовать в его развитии, можно, например, в глобальном репозитории GitHub. Исходный код опубликован под лицензией GPLv2, что означает, что продукт, равно как и исходный код, можно использовать для любых целей. Что, в своею очередь, означает возможность его бесплатного использования, в том числе и для коммерческих целей. Только в этом случае, стоит не забывать, что использование чего-то бесплатно в организации, означает, что за это бесплатно организация заплатит в виде налогов. Но не суть.
SE VPN существует, наверное, для всех актуальных платформ. Установить сервер или клиент можно под Windows, Unix/Linux, MacOS. Под Unix системы, правда, придется компилировать исполняемый код, но процедура до крайности проста. А подключаться помимо вышеперечисленных систем можно и с мобильных устройств. Для большинства систем серверная часть может запускаться без прав администратора, а клиентская может быть запущена как обычное приложение. Вам не нужно быть администратором, чтобы использовать SE VPN. И это на самом деле здорово. Вы можете запустить сервер или клиент на своем рабочем компьютере в офисе, и пользоваться всеми благами, предлагаемыми подключением по VPN-соединению. Возможность запуска без привилегий администратора подобного ПО — жуткая головная боль для сетевых администраторов, поскольку любой сотрудник в состоянии проделать в корпоративной системе обороны огроменную дыру. Но ведь сотрудников нужно отбирать при приеме на работу, не так ли?
SoftEther VPN работает в пользовательском пространстве (User Space), что особенно важно для Unix/Linux систем, где стабильность всей системы зависит от качества модулей, работающих в системе. В случае с SE VPN такой проблемы не возникает. Если все же с кодом произойдут неполадки, то операционная система остановит процесс или перезапустит его заново. При этом стабильность всей системы не пострадает.
SE VPN поддерживает создание тоннелей не только через свой собственный, фирменный протокол, но и позволяет создавать тоннели на основе L2TP/IPsec, OpenVPN и MS-SSTP. И все это в рамках одного единственного севера! Если у вас разношерстная структура в плане зоопарка клиентов VPN, то их всех можно агрегировать в рамках одного VPN-сервера. Какая получается экономия оборудования!
SoftEther VPN проходит через многочисленные файрволы и жесткие NAT. Причем это касается не только клиентской части, т.е. в отношении подключения к VPN-серверу из-за FireWall и NAT, но и для установки сервера. Для удачного прохождения через многочисленные преграды используется несколько технологий. Во-первых, применяется техника NAT Traversal Hole Punching. Она срабатывает почти везде и с ее помощью работают VoIP и Skype. Во-вторых, трафик, передаваемый посредством тоннеля, да и сам тоннель, прикидывается обычным пользовательским трафиком. Для создания тоннелей могут использоваться обыкновенные порты, на подобие 443 (применяется, например, для защищенной работы с почтой от Google или для Facebook). В-третьих, для прокладывания тоннеля могут использоваться не только TCP-пакеты, но и UDP. В-четвертых, если и это не помогает проникнуть через брендмауер, то могут применяться совсем уж изощренные техники с использованием ICMP-запросов или даже имитация DNS-запросов. А если и этого недостаточно, в ход идет тяжелая артиллерия. Если ни один из вариантов по проникновению сквозь сетевые препоны не срабатывает, то в дело включается VPN-сервер релей на основе облака Microsoft Azure. Способность пробиваться через сетевые экраны у SoftEther VPN реализована почище, чем у Skype. И не стоит беспокоиться об отсутствии белого статического адреса. В системе присутствует встроенный, тоже бесплатный, сервис по предоставлению доменного имени по аналогии с сервисом Dynamic DNS. И даже тут японцы пошли своим, особенным путем. В SE VPN реализовано раздельное именование вашего VPN-севера для IPv4 и IPv6, плюс привязка уникальности имени к сертификату. Никто ваше имя, даже после перерыва в использовании, не займет.
Установка и настройка SE VPN осуществляется в несколько кликов, что под Windows, что под Unix. Саму настройку можно осуществлять как через графический интерфейс пользователя, позволяющий настраивать, в том числе удаленные серверы, так и через командную строку. Кстати, интерфейс командной строки очень напоминает терминальный режим настройки у оборудования ZyXel Keenetic. Но основной упор, все же, делается именно на графический интерфейс. Новые тоннели создаются всего за несколько кликов мышкой. А управление сложными структурами, с десятками туннелей и сотнями пользователей, без наглядного их представления на экране, будет не таким простым делом. А если учесть, что SE VPN можно объединять в кластеры, то проблема с управлением встает в полный рост. И без внятного графического менеджера управляться с подобной структурой сможет только истинный самурай, познавший вкус молодого цветка лотоса.
С другой стороны, за простотой графического интерфейса кроется не только возможность по созданию нового тоннеля в два клика, но и возможность настроить соединения вплоть до последней функции. Просто спрятаны настройки в более глубоких меню, куда залезать рекомендуется только тогда, когда действительно знаешь, что делаешь и зачем. А для обычных пользователей разработчики SE VPN реализовали помимо универсального комбайна, включающего полноценный набор всех функций, еще и два усеченных набора: SE VPN Bridge и SE VPN Client. Первый предназначен для легкого подключения сетей к SE VPN тоннелям, а второй для подключения отдельных машин, например, одного ноутбука к тоннелям SE VPN. Набор функций в этих пакетах ограничен только тем, что действительно нужно для того или иного варианта подключения.
Что еще? Разработчики SE VPN заявляют, что их протокол, применяемый в качестве основного в SoftEther VPN, показывает куда более высокую производительность, чем конкурирующие протоколы. Особенно в гигабитных сетях. У них там, в Японии, в последнее время корпоративный сектор постепенно переходит как раз на гигабитные внешние каналы (от одного гигабита и выше). Проверить сие утверждение не могу, но на практике, применение SE VPN на моих каналах в виде 20 и 30 оптических мегабит показала вполне сносную скорость, низкую задержку и очень низкую нагрузку на серверное оборудование. При этом фирменный протокол обеспечивает, на выбор, сразу несколько вариантов алгоритмов для шифрования передаваемых данных: RC4 (128 bits), AES128 (128 bits), AES256 (256 bits), DES (56 bits), Triple-DES (168 bits). Алгоритмы шифрования отсортированы по увеличению криптостойкости. И у пользователя присутствует выбор, между чрезмерно сильным шифрованием и нагрузкой на клиента и сервер, либо чем-то попроще, если по тоннелю гоняются некритичные данные, но и требования к оборудованию будут куда ниже.
Если всего приведенного выше мало, то отмечу, что при помощи SoftEther VPN можно организовывать как L2, так и L3 тоннели. Если кто забыл про уровни, то рекомендую обратиться к описанию сетевой модели OSI. Но на всякий случай напомню, что на L2 мы объединяем тоннелем сети на уровне Ethernet-пакетов, т.е. с точки зрения всего подключенного оборудования сети становятся едиными. Таким образом можно прокидывать DHCP раздачу адресов или же RA для IPv6. А на уровне L3 мы объединяем сети на уровне IP адресации и занимаемся маршрутизацией пакетов между сетями (например, между 192.168.1.0/25 и 192.168.2.0/25). Но ничего не помешает копать в настройках дальше, например, применить виртуальный-NAT на тоннель или что-то еще из той же оперы.
Как по мне, так приведенного выше вполне достаточно, чтобы начать с остервенением ознакамливаться с обширной документацией по SoftEther VPN. Ведь штука очень мощная, да еще и бесплатная.
Структура SE VPN
Чтобы начать понимать, как работает SoftEther VPN, необходимо разобраться в его структуре, его ключевых компонентах. Конечно, пополнить свои знания можно и простым чтением документации, но, надеюсь, что информация ниже сэкономит вам немного времени. Итак…
Server — наиболее полный комплект, включает Bridge и Client.
Client — усеченный набор функций, позволяющий использовать SE VPN только для подключения к Server. В Client создается Virtual Network Adapter, который позволяет подключаться к Virtual Hub. Из-за скромного набора функций — самая простая настройка. Идеально подходит для использования на единичных рабочих местах, для подключения ваших Road Warriors. Несмотря на ограниченность возможностей Client может быть подключен к локальному сетевому адаптеру (физическому) в режиме сетевого моста. Таким образом, клиент сможет подключить свою сеть к VPN-тоннелю. Но использовать эту функцию стоит с осторожностью, т.к. в некоторых случаях на клиенте может пропасть доступ в сеть.
Bridge — усеченный набор функций, позволяющий подключать локальную сеть к VPN-тоннелю. ПО Bridge используется, в том числе и для каскадного подключения к Virtual Hub на Server. В Bridge есть только один Virtual Hub с именем Brdige и он может устанавливать или принимать соединения с/от Server, Client или Local Bridge.
Local Bridge — объект в SE VPN позволяющий объединять виртуальный и физический сетевые адаптеры в рамках одного компьютера. Для соединения используется Layer 2 OSI-модели.
Cascade connection (каскадное подключение) — возможность объединения нескольких изолированных сетей через Virtual Hub на Layer 2 модели OSI. Грубо говоря, при помощи Cascade connection мы подключаем один компьютер с SE VPN к другому.
Virtual Hub — компонент сервера ответственный за передачу и обработку пакетов на Layer 2 модели OSI.
Virtual Layer 3 Switch — компонент сервера, ответственный за выполнение функций маршрутизации IP-пакетов (Layer 3 модели OSI) между Virtual Hub на Server. Другими словами, при помощи Virtual Layer 3 Switch мы соединяем на уровне маршрутизации несколько Virtual Hub (Layer 2) в одну маршрутизируемую сеть, но при этом сами сети, как и их Virtual Hubs остаются различными.
Server Manager — утилита для управления сервером при помощи графического интерфейса. При помощи Server Manager можно (и нужно) управлять Server удаленно.
CLA/CLI — утилита для управления сервером через командную строку. Управлять можно как локальным сервером, так и удаленным.
Установка Ubuntu/Windows
В качестве примера установки SoftEther VPN под Unix, рассмотрим процедуру на примере популярного дистрибутива Ubuntu.
Поскольку дистрибутив для Linux поставляется в виде исходного кода, то его придется скомпилировать. Для этого сперва необходимо установить необходимые библиотеки для компиляции:
Затем скачиваем последнюю версию исходных кодов с сайта SoftEther VPN. Скачать исходные коды можно, в том числе, и при помощи утилиты wget. Распаковываем архив и запускаем компиляцию простым вызовом скрипта install.sh. Компиляция должна пройти без ошибок.
Для запуска сервера в фоновом режиме используемы команду:
В случае необходимости управлять сервером можно из того же каталога, простым вызовом утилиты командной строки:
Если ваш сервер излишне нагружен другими сетевыми продуктами, то можно поменять порты в файле vpn_server.config до запуска сервера.
Если требуется сконфигурировать запуск SE VPN в автоматическом режиме, например, при запуске компьютера, то можно воспользоваться инструкцией по установке SE VPN в качестве демона операционной системы под Ubuntu. Если же вы используете не Ubuntu, то на официальном сайте присутствует альтернативная инструкция. При работе под Linux следует учитывать, что на некоторых операционных системах присутствует ограничение: если запуск происходит не с правами root, то порты ниже 1024 будут недоступны. В некоторых случаях, например, при использовании OpenVPN ограничение может оказаться существенным.
Установка под Windows ничем особым от обычной установки приложения не отличается. Скачивается инсталляционный пакет, запускается, наслаждаемся результатом. Все просто.
Однако, после простой установки, потребуется настройка сервера. Выполнять ее проще через графический интерфейс. Быстрее, да и понятнее.
Запускаем утилиту для графического управления и подключаемся к серверной части. Если подключение производится впервые, то пароль можно не указывать. Его система попросит установить на следующем шаге.
Ну а далее все до призрачности банально. Создаем Virtual Hub, заводим пользователя, создаем Local Bridge и можно работать.
В качестве небольшого бонуса: SE VPN позволяет допустить до управления сервером не только одного единственного администратора, но еще и некоторое количество вспомогательных лиц. К каждому Virtual Hub можно подключить отдельных администраторов, которые будут ограничены в настройках только выбранным Hub-ом. Что очень полезно при создании и обслуживании крупных сетей на основе SE VPN.
Особенности
Но у SoftEther VPN, при всей его красоте, есть и особенности, которые нужно понимать, иначе могут возникнуть серьезные проблемы при конфигурировании. Первое, что я хочу отметить, проистекает как раз из того, что SE VPN работает в User Space. Для среды Windows замечание не важно, а вот для Unix/Linux/MacOS работа ПО в пользовательском пространстве накладывает определенное ограничение. Как бы вы не старались, но из тоннеля вы не сможете достучаться до Host-машины. Нет, тоннель, и все с ним связанное, будет работать. Но вот зайти через тоннель на компьютер с VPN-сервером у вас не выйдет. Поделать тут ничего нельзя, такое поведение By Design. Разработчики рекомендуют в таком случае устанавливать второй физический адаптер на Host и организовывать тоннель на него, а уже затем, средствами внутренней маршрутизации переправлять трафик куда следует.
Еще одно ограничение заключается в необходимости использования т.н. неразборчивого режима для сетевого адаптера. В этом режиме сетевой адаптер, вернее его программное обеспечение, не будет отбрасывать сетевые пакеты, которые не предназначены непосредственно этому компьютеру, а будут передавать их для дальнейшей обработки. В общем случае, использование неразборчивого режима не представляет ни проблемы, ни угрозы. В «свичуемой» сети, а таких нынче большинство, чужие пакеты и не получаешь. Однако, в тех случаях, когда от сетевого адаптера требуется наивысшая производительность, то неразборчивый режим не применяется. Но в таком случае и на самом компьютере «крутится» только единственное приложение, например, высоконагруженный сервер приложений или же сервер базы данных.
Замечание про неразборчивый режим справедливо и для сред виртуализации. Чтобы SE VPN заработал, следует включить неразборчивый режим в настройках виртуальной машины или ее виртуальной сетевой карты. К примеру, в последних версиях VirtualBox неразборчивый режим включается в настройках сети. В старых версиях, сия процедура выполняется через командную строку.
При настройке SE VPN, очень часто выполняешь проверку работоспособности тоннеля просто запуская команду ping с адресом машины по ту сторону туннеля. Но тут есть особенность. Если на той стороне машина с Windows, то при создании тоннеля L3, с использованием разных сетей, просто так проверить ее на доступность не выйдет. Дело в том, что Windows, по умолчанию, при помощи встроенного Firewall запрещает прием и отправку ICMP-пакетов из сетей, отличных от той, в которой работает сама машина. Поэтому придется шаманить с сетевым экраном или с политиками безопасности.
Ну и основное, с чем приходится сталкиваться — при подключении с мобильного устройства нужно помнить, что в этом случае доступны подключения либо по IPsec, либо по OpenVPN. В настоящий момент нет реализации SoftEther VPN для запуска под Android или iOS, по крайней мере, официальных версий.
При установке SE VPN на операционную систему Windows, в системе устанавливаются виртуальные сетевые адаптеры, при помощи которых SE VPN взаимодействует с внешним миром. При помощи стандартных средств Windows можно управлять этими адаптерами, например, убирать или добавлять нужные протоколы, изменять их настройки. Важно не переборщить иначе могут возникнуть необъяснимые проблемы при работе SE VPN.
VPN-Gate
Особо я хочу остановиться на услуге и технологии VPN-Gate. VPN-Gate аффилированный продукт с SoftEther VPN. Он работает полностью на технологиях SE и является составной частью проекта. Но это де факто, де-юре они никак не связаны за исключением того, что проект VPN-Gate существует под крылышком все того же университета Цукубы, что в Японии. VPN-Gate объединяет добровольцев со всего света предоставляющих подключения посредством SE VPN для всех страдальцев из стран с чрезмерно контролируемым трафиком VPN. Если вы не можете попасть на какой-то из сайтов, он просто-напросто заблокирован в вашей стране, то воспользовавшись VPN-Gate можно добраться до его содержимого.
Скорости, предоставляемые добровольцами, конечно не ахти, но лучше уж такой доступ, чем никакого. А все те, кому нужен скоростной доступ через VPN, могут вполне прикупить себе платный сервис VPN в интересующей их юрисдикции, благо такими предложениями пестрят все закоулочки сети. Чтобы присоединиться к «бесплатному облаку VPN», как его называют на сайте, вам достаточно только установить на своем компьютере SoftEther VPN и включить всего одну галочку. И ваш сервер встанет в один ряд с другими смельчаками, раздающими выход в сеть со своих серверов. Ведь по законам многих стран, если через такого доброго «самаритянина» будет совершено киберпреступление, то он вполне может пойти как соучастник. С другой стороны, я с трудом представляю, как какой-нибудь бородатый ИГИЛовец пользуется бесплатным VPN-облаком со своего айфончика где-то посреди сирийской пустыни и совершает ужасное преступление.
Тем не менее, проект VPN-Gate берет на себя вполне конкретную роль по защите частной жизни граждан. И все, кто не равнодушен к закручиванию гаек в отношении сети Интернет, может присоединиться к списку добровольцев. На момент написания статьи, февраль 2017, почти 9 тысяч добровольцев на безвозмездной основе предлагают свои услуги по незарегулированному доступу в сеть через VPN-облако. За время существования проекта через «облако» пользователи смогли прокачать более 67 тысяч Тб данных за 3 миллиарда соединений, а в списке отметившихся стран присутствует 232 страны из 252.
Присутствие в вершине списка Китая, вполне обосновано. Партийное руководство оберегает граждан от тлетворного воздействия YouTube, Facebook и Google. А вот первое место у Южной Кореи я объяснить не могу. Да и США в первой тройке. Видимо правление Обамы и бесчинства АНБ навело шороха в сети. Россия в списке расположилась на законном 12 месте, Украина на 21, обгоняя Германию на очко, а Казахстан на 34.
Подключиться к VPN-облаку VPN-Gate можно как через сам продукт SoftEther VPN, а можно воспользоваться услугами OpenVPN, либо применить стандартные протоколы L2TP/IPsec, MS-SSTP. К слову сказать, пользователи Android или iPhone/iPad могут пользоваться штатными средствами, встроенными в операционные системы, либо применить специализированное ПО, облегчающее процесс подключения к точкам раздачи в VPN-Gate, например, такое.
Полезные ссылки:
Сайт SoftEther VPN
Документация, примеры использования SoftEther VPN
Как подключить мобильный к SoftEther VPN
Форум для поддержки пользователей SoftEther VPN
Репозиторий GitHub с SoftEther VPN.
Инструкция по установке SE VPN в качестве демона под Ubuntu 16.04
Инструкция по установке SE VPN в автозапуск на Linux
Сайт VPN-Gate
Сборник инструкций как подключиться к VPN-Gate
VPN Gate – средство для Android для подключения к VPN-Gate (не проверено)
Плаг-ин для SE VPN для облегчения выбора сервера для подключения через VPN-Gate (не проверено)