Сайт о телевидении

Сайт о телевидении

» » SoftEther VPN — продвинутый мультипротокольный VPN-сервер и клиент

SoftEther VPN — продвинутый мультипротокольный VPN-сервер и клиент

Существует два способа объединить сети при помощи SoftEther VPN.
1) Соединение мостом, при этом сети объединяются в один сегмент Ethernet. Этот вариант неудобен, т.к. если в обеих сетях есть сервисы, требующие работы в единственном экземпляре, то это приведет к конфликтам (например, DHCP). Кроме того, если узлов в сети много, то произойдет увеличение широковещательного трафика.
2) Второй способ основывается на первом. Но здесь создается виртуальный коммутатор третьего уровня OSI, который управляет трафиком между сетями. Также создается дополнительный виртуальный хаб (концентратор), к которому подключается удаленная сеть. Из минусов: не поддерживаются протоколы динамической маршрутизации, не поддерживается протокол IGMP, на узлах с общими ресурсами необходимо прописывать статические маршруты.

В данной статье рассматривается второй способ.

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

Имеем две сети, с центральными узлами в виде маршрутизатора с DHCP сервером и WAN. На ПК в одной сети необходимо установить SoftEther VPN Server, а в другой сети SoftEther VPN Bridge.

Установка VPN сервера на Windows

Установка SoftEther VPN Server достаточно проста. Проиллюстрирую ее картинками с небольшими комментариями. Скачиваем дистрибутив SoftEther VPN Server c официального сайта и запускаем.
Выбираем вариант установки - VPN Server и жмем «Далее».

Затем принимаем условия соглашения и выбираем стандартную установку.

После запуска VPN сервера появится окно администрирования, нажимаем кнопку «Connect». Задаем пароль администратора сервера.

Указываем тип сервера - Site-to-Site VPN Server. (Center)

Затем идет настройка функции dynamic DNS, жмем Exit. Позже её можно отключить, изменив в файле конфигурации строку на: “declare DDnsClient { bool Disabled true “ .

Далее необходимо указать физическую сетевую карту для соединения виртуального хаба с локальной сетью. Соединение осуществляется на канальном уровне OSI, поэтому виртуальный хаб не получает никакого IP адреса в сети. Однако некоторые роутеры могут заметить в локальной сети появление IP адреса подсети 172.31.0.0/16. Этот адрес используется для отслеживания соответствия ARP записей IP адресам или чего-то подобного.

Далее предлагается настроить доступ по L2TP и включить Azure VPN. Пропустим эти шаги, т.к. в этой схеме они не участвуют. Azure VPN можно отключить, если у вас белый IP. Если адрес серый, то не отключайте и используйте доменный адрес Azure VPN вместо IP.

Настройка VPN сервера

По окончании первичной настройки попадаем в окно администрирования сервера. Первым делом, удалим ненужные порты (все, кроме 5555 - он используется для подключения к панели администрирования). Задаем какой-нибудь нестандартный TCP порт для прослушивания, например, 7710. Если у Вас нет белого IP адреса, то для использования Azure VPN необходимо слушать 443 порт.
Теперь необходимо создать второй виртуальный хаб, к которому будет подключаться удаленная сеть. Чтобы создать второй хаб, кликаем кнопку «Create a Virtual Hub». Назовем его, например, по номеру удаленной сети - 12. В этом виртуальном хабе создавать Local Bridge ненужно.

Далее, выбираем 12 хаб и нажимаем «Mange Virtual Hub», затем «Manage Users» создаем пользователя для удаленной сети. Назовем его «Network 12», вместо пароля будем использовать самоподписанный сертификат с тайным ключом.

Кликаем «Create Certificate» и заполняем строчку “Common name”.

Выбираем формат сертификата - X509 (сертификат отдельно, тайный ключ отдельно).

Сохраненный сертификат и тайный ключ необходимо будет загрузить в клиент SoftEther VPN Bridge.
Далее необходимо открыть порт в роутере - тот самый, который слушает сервер, и настроить трансляцию порта на ПК с сервером. Подробнее о том, как открывать порты, можно прочитать в этой статье. .
Например, в pfSense правило для открытия порта выглядит примерно так. pfSense - при создании правила для NAT, автоматически создает правило и для Firewall. Другие роутеры могут этого не делать, поэтому надо создавать оба правила ручками.

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

Если на компьютерах включен брандмауэр, то там тоже необходимо разрешить прохождение трафика для нужной сети.
Далее необходимо создать виртуальный роутер. Кликаем кнопку «Layer 3 Switch Settings», создаем новый виртуальный роутер и кликаем кнопку «Edit». Затем, необходимо создать виртуальные интерфейсы для каждого хаба. Для хаба с именем 10 создаем интерфейс с адресом 192.168.10.100, для хаба с именем 12 - 192.168.12.100. Адреса можно придумать свои, главное, чтобы они не были заняты и принадлежали каждый к своей подсети. Разработчики уверяют, что маршруты добавлять необязательно, но лучше на всякий случай добавить. Для запуска роутера нажимаем кнопку «Start».

Настройка VPN клиента

Запускаем установку SoftEther VPN Server, при этом выбираем вариант установки SoftEther VPN Bridge. Жмем все время «Далее», затем задаем пароль администратора.

На этом шаге указываем сетевую карту для создания моста с локальной сетью.

После этого попадаем в панель управления SoftEther VPN Bridge. Как видим, многие функции в этом режиме отключены.

Далее необходимо создать каскадное подключение к серверу SoftEther VPN. Нажимаем «Mange Virtual Hub» затем «Mange Cascade Connection» и заполняем данные для подключения.
Settings name - имя подключения.
Host Name - белый IP адрес или доменное имя DDNS роутера сети, где установлен сервер. Если у вас нет белого IP адреса, то используем службу Azure VPN и пишем доменное имя, полученное в этой службе (vpn123456789.vpnazure.net). Думаю, понятно, что без белого IP адреса открывать порты на роутере ненужно.
Port Number - порт, который слушает сервер.
Virtual Hub Name - имя виртуального хаба на сервере.
User Authentication Settings - настройки аутентификации пользователя. Поскольку мы решили использовать вместо пароля самоподписанный сертификат, то выбираем строчку «Client Certificate Authentication». Пишем имя пользователя (в примере это - Network 12). Кликаем «Specify Client Certificate», загружаем сертификат и тайный ключ шифрования.

Теперь необходимо настроить параметры соединения - кликаем “Advanced Settings”. Здесь необходимо задать количество TCP соединений, для широкополосного соединения рекомендуется 8.

Настройка маршрутизации

Настройка заключается в прописывании статических маршрутов в роутерах обеих подсетей.
На роутере 192.168.10.1 (см. схему) прописываем маршрут до сети 192.168.12.0. Выглядеть он будет так: 192.168.12.0 маска 255.255.255.0 шлюз 192.168.10.100.
На роутере 192.168.12.1 прописываем маршрут до сети 192.168.10.0: 192.168.10.0 маска 255.255.255.0 шлюз 192.168.12.100.
Для надежности перезагружаем оба ПК и роутера.

Доступ к общим папкам через SoftEther VPN

После произведенных выше настроек все компьютеры в сети должны нормально «пинговать» друг друга (если не запрещено брандмауэром). Однако, получить доступ к общим папкам Windows невозможно. Эта проблема решается прописыванием статических маршрутов непосредственно на компьютерах с общими ресурсами. Запускаем командную строку Windows от имени администратора и пишем команду:
для компьютеров, находящихся в сети 192.168.10.0:
route -p add 192.168.12.0 mask 255.255.255.0 192.168.10.100
для компьютеров, находящихся в сети 192.168.12.0:
route -p add 192.168.10.0 mask 255.255.255.0 192.168.12.100
На этом настройка завершена. Для анализа маршрута трафика советую пользоваться командной строкой Windows, командой pathping .

Вопросы задаем в комментариях.

Те, кто готов пожертвовать насущной свободой ради малой толики временной безопасности, не достойны ни свободы, ни безопасности.

Бенджамин Франклин , официальное письмо от Ассамблеи Пенсильвании губернатору Томасу Уортону, 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 остаются различными.

Применение L3 Switch для объединения нескольких вирутальных хабов в одну сеть. Картинка с сайта SoftEther.

Server Manager - утилита для управления сервером при помощи графического интерфейса. При помощи Server Manager можно (и нужно) управлять Server удаленно.

CLA/CLI - утилита для управления сервером через командную строку. Управлять можно как локальным сервером, так и удаленным.

Установка Ubuntu/Windows

В качестве примера установки SoftEther VPN под Unix, рассмотрим процедуру на примере популярного дистрибутива Ubuntu.

Поскольку дистрибутив для Linux поставляется в виде исходного кода, то его придется скомпилировать. Для этого сперва необходимо установить необходимые библиотеки для компиляции:

apt install build-essential

Затем скачиваем последнюю версию исходных кодов с сайта SoftEther VPN. Скачать исходные коды можно, в том числе, и при помощи утилиты wget . Распаковываем архив и запускаем компиляцию простым вызовом скрипта install.sh . Компиляция должна пройти без ошибок.

Для запуска сервера в фоновом режиме используемы команду:

./vpnserver start

В случае необходимости управлять сервером можно из того же каталога, простым вызовом утилиты командной строки:

Если ваш сервер излишне нагружен другими сетевыми продуктами, то можно поменять порты в файле vpn_server.config до запуска сервера.

Убедиться, что сервер работает, можно через команду top или аналогичную.

Если требуется сконфигурировать запуск SE VPN в автоматическом режиме, например, при запуске компьютера, то можно воспользоваться инструкцией по установке SE VPN в качестве демона операционной системы под Ubuntu. Если же вы используете не Ubuntu, то на официальном сайте присутствует альтернативная инструкция . При работе под Linux следует учитывать, что на некоторых операционных системах присутствует ограничение: если запуск происходит не с правами root, то порты ниже 1024 будут недоступны. В некоторых случаях, например, при использовании OpenVPN ограничение может оказаться существенным.

Установка под Windows ничем особым от обычной установки приложения не отличается. Скачивается инсталляционный пакет, запускается, наслаждаемся результатом. Все просто.

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

Подключение к серверу SE VPN при помощи графического менеджера

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

Установка нового пароля для сервера

Создание нового пользователя в SE VPN

В качестве небольшого бонуса: SE VPN позволяет допустить до управления сервером не только одного единственного администратора, но еще и некоторое количество вспомогательных лиц. К каждому Virtual Hub можно подключить отдельных администраторов, которые будут ограничены в настройках только выбранным Hub-ом. Что очень полезно при создании и обслуживании крупных сетей на основе SE VPN.

Особенности

Но у SoftEther VPN, при всей его красоте, есть и особенности, которые нужно понимать, иначе могут возникнуть серьезные проблемы при конфигурировании. Первое, что я хочу отметить, проистекает как раз из того, что SE VPN работает в User Space. Для среды Windows замечание не важно, а вот для Unix/Linux/MacOS работа ПО в пользовательском пространстве накладывает определенное ограничение. Как бы вы не старались, но из тоннеля вы не сможете достучаться до Host-машины. Нет, тоннель, и все с ним связанное, будет работать. Но вот зайти через тоннель на компьютер с VPN-сервером у вас не выйдет. Поделать тут ничего нельзя, такое поведение By Design. Разработчики рекомендуют в таком случае устанавливать второй физический адаптер на Host и организовывать тоннель на него, а уже затем, средствами внутренней маршрутизации переправлять трафик куда следует.

Предупреждение о неразборчивом режиме

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

Настройка неразборчивого режима в Virtual Box

Замечание про неразборчивый режим справедливо и для сред виртуализации. Чтобы 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 сервера SoftEther VPN на Windows. SoftEther VPN позволяет объединить в сеть различные устройства, так как поддерживает практически все популярные протоколы сетей.

Настройка SoftEther VPN топология клиент-сервер.

VPN сервер здесь будет центральным узлом, к которому будут подключаться клиенты для получения доступа во внутреннюю сеть. Скачиваем последнюю RTM версию и запускаем установку. Выбираем строчку SoftEther VPN Server и жмем далее.


Тут ставим галочку Remote Access VPN Server.

Затем вводим имя виртуального хаба.

Далее идет настройка функции динамического DNS, ее можно отключить позже.

Затем, если необходимо, то настраиваем подключение по L2TP, указываем общий ключ IPsec.

Далее идет настройка Azure VPN - это бесплатный облачный сервис, который позволяет устанавливать VPN соединение с сервером при отсутствии внешнего ip адреса и открытых портов. Для соединения через него, необходимо указывать доменный идентификатор Azure VPN и 443 порт.

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

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







Для того что бы настроить учетные записи нажимаем Manage Virtual Hub, затем Manage Users, создаем нового пользователя. Вводим имя, а также задаем тип аутентификации. Поддерживаются следующие виды аутентификации: анонимный, пароль, индивидуальный сертификат, подписанный сертификат, аутентификация через сервер RADIUS и контроллер домена Windows NT. Для примера, создадим пользователя Test с парольной защитой.



Настройка VPN клиентов.

На клиентском компьютере настроим подключение по протоколу L2TP/IPsec с общим ключом.

По умолчанию клиентам присваиваются IP адреса того же диапазона DHCP сервера, к которому подключен VPN сервер.

Нельзя не отметить, что у SoftEther VPN имеется собственный VPN клиент, который по заявлению разработчика работает быстрее и шифрует трафик с помощью SSL. Таким образом, его трудно отличить от HTTPS, следовательно, VPN будет работать даже в сетях где другие протоколы заблокированы.
Установка и настройка собственного клиента довольно проста. После стандартной инсталляции клиента нажимаем пункт Add VPN Connection и соглашаемся создать виртуальный сетевой адаптер.




Далее пишем имя адаптера.




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



Если вдруг, при подключении VPN соединения локальная сеть становится неопознанной, то необходимо нажать Advanced Settings (см. картинку выше) и поставить галочку No Adjustments of Route Table. Также можно изменить приоритеты сетевых подключений, подробнее в статье .




На этом всё, спасибо за внимание.

Как скоро я смогу вас заинтересовать, если скажу, что в этой статье речь пойдет о VPN-сервере, который может поднимать L2TP/IPsec, OpenVPN, MS-SSTP, L2TPv3, EtherIP-серверы, а также имеет свой собственный протокол «SSL-VPN», который неотличим от обычного HTTPS-трафика (чего не скажешь про OpenVPN handshake, например), может работать не только через TCP/UDP, но и через ICMP (подобно pingtunnel, hanstunnel) и DNS (подобно iodine), работает быстрее (по заверению разработчиков) текущих имплементаций, строит L2 и L3 туннели, имеет встроенный DHCP-сервер, поддерживает как kernel-mode, так и user-mode NAT, IPv6, шейпинг, QoS, кластеризацию, load balancing и fault tolerance, может быть запущен под Windows, Linux, Mac OS, FreeBSD и Solaris и является Open-Source проектом под GPLv2?

То-то и оно. Такое пропустить нельзя.

Uh-oh, что же это за штука?
Скорее всего, вы раньше не слышали об этом проекте. Дело в том, что Daiyu Nobori (登 大遊) начал его разрабатывать, как только пошел в Тсукубский университет, и PPTP не заработал из сети кампуса. В 2003, когда ему было 18 лет, он выпустил первую версию SoftEther, и на него наехало правительство Японии, которое считало, что этот проект можно расценивать чуть ли ни как вредоносное ПО, т.к. оно позволяет обходить файрволлы (OpenVPN в то время еще только появлялся), а также может «навредить имиджу других VPN-продуктов» и запретило распространять программу. Он попытался объясниться, но т.к. из-за этого его могли, возможно, отчислить из университета, сильно он не настаивал и убрал программу из свободного доступа. Проходит некоторое время, и Mitsubishi Materials Corporation предлагает купить у него SoftEther 1.0 и подписать контракт на 10 лет (апрель 2004-апрель 2014), который дает корпорации право на продажу SoftEther и запрещает Daiyu Nobori продавать программу и/или основанные на ней, но в марте 2013 он начинает распространять SoftEther бесплатно, и вот только совсем недавно (4 января 2014) ее удалось открыть под GPLv2. К большому сожалению, сейчас еще пока остаются некоторые проблемы с копирайтом, поэтому в SoftEther до апреля 2014, вероятно, нельзя будет увидеть некоторые важные функции: аутентификация Radius / Active Directory, аутентификация по RSA-ключам, защита от DoS, Source IP ACL, Syslog transfer и Deep-inspect packet logging.
Описание
Чуть более подробно про возможности сервера:
  • Множество виртуальных хабов. Т.е. не каждый экземпляр сервера обслуживает только своих клиентов, а все в пределе одного сервера.
  • Remote-Access (клиент-к-LAN) и Site-to-Site (объединение двух и более LAN в одну) туннелей.
  • Поддержка L2TP/IPsec, OpenVPN, MS-SSTP, L2TPv3, EtherIP и своего протокола
  • VPN через ICMP и через DNS (только через свой протокол)
  • Dynamic DNS и NAT Traversal через бесплатный релей (да-да, можно поднять VPN сервер с серым IP! )
  • Логгирование
  • Встроенный firewall
  • Поддержка IPv6 в L3-режиме (ну и в L2, конечно, тоже)
  • Шейпинг трафика по группам пользователей либо по конкретным пользователям
  • SecureNAT (user-space NAT и DHCP-сервер). Удобно на не-серверных Windows
  • Поддержка VLAN
  • Поддержка QoS с автоматической приоритезацией

ПО состоит из сервера, бридж-сервера, клиента, GUI (только Windows) и CUI утилит администрирования. Клиент нужен для подключения одного компьютера к LAN (Remote Access VPN), а бридж-сервер для соединения двух или более сетей (Site-to-Site VPN). К сожалению, CUI пока не очень хорошо задокументирован и запустить сервер только из CUI мне не удалось, пришлось воспользоваться Windows-версией сервера и GUI-утилитой. Нужно заметить, что GUI-утилита умеет работать не только с локальным сервером, т.е. можно запустить сам сервер на Linux, а администрировать его через GUI-утилиту под Windows. В GUI есть только основные настройки, для изменения продвинутых настроек придется лезть в конфиг или использовать CUI.

Вот вам несколько скриншотов GUI, чтобы было представление, что умеет сервер и как все легко настраивается.

Окно управления сервером

Окно управления хабом

Редактирование пользователя

ACL c возможностью симулировать packet loss и jitter

Security Policy для пользователя

Настройка SecureNAT

Настройка L2TP/IPSec

Настройка OpenVPN и SSTP

Защита данных сегодня волнует все больше людей. Тенденции не только не радуют, они просто ужасают - следить за нами начинают даже телевизоры. Самый верный способ - всегда предполагать, что нас кто-то слушает, и превентивно обороняться. Можно поднимать SSH-туннели и SOCKS’ифицировать через них нужный трафик, можно везде, где получится, использовать HTTPS, устанавливая для этого плагины. Однако наиболее подходящей для этого технологией был, есть и еще долгое время будет VPN.

Где взять VPN, чтобы безопасно подключаться с различных устройств «на ходу» и в публичных местах? Простой и быстрый способ - воспользоваться одним из многочисленных сервисов. Но с точки зрения безопасности этот метод вызывает вопросы. Добровольно пускать свой трафик через «дядю», да еще и приплачивать за это не слишком секурно. Да и с анонимностью не так все хорошо, крупный сервис сдаст тебя с потрохами по первому запросу, достаточно вспомнить историю HideMyAss и LulzSec. Мелкие мутные конторы невозбранно могут снифать тебя сами. Проверить внутреннюю кухню VPN-сервиса невозможно, и полагаться на заверения, что никаких логов не ведется, наивно.

Что остается бедному параноику? Поднимать VPN-сервер самостоятельно, благо не так уж и много для этого нужно. Наиболее подходящей реализацией для собственного сервера до недавнего времени был OpenVPN. Ощутимым его минусом является довольно сложная настройка и недружелюбность к обычному пользователю. Установить и настроить его самому под силу лишь искушенному в сетевых делах человеку. Наличие в Сети большого количества step-by-step мануалов не сильно помогает ситуации. Кроме того, OpenVPN требует наличия на сервере доступа к TUN/TAP-устройствам, поэтому для него подходят не все VDS/VPS-хостинги. Однако с недавнего времени под лицензией GPLv2 открылся мощный мультипротокольный VPN-сервер - SoftEther VPN. На первый, да и на второй взгляд этот сервер поражает возможностями.

Он имеет собственный протокол SSL-VPN, который неотличим от обычного HTTPS-трафика (трафик OpenVPN все же возможно выделить при помощи DPI). Заявлена поддержка L2TP/IPsec, MS-SSTP, OpenVPN, L2TPv3 и EtherIP, причем для L2TP указана строгая совместимость со встроенными клиентами в iOS и Android. Сам сервер имеет версии под Windows, Linux, OS X, FreeBSD и Solaris и, как утверждается на сайте, является оптимальной альтернативой OpenVPN, причем работает быстрее его.

Полный список всех вкусностей можно найти на официальном сайте . Отмечу лишь основные фишки. VPN-сервер может целиком управляться через весьма продуманный графический интерфейс, причем делать это можно удаленно. Да-да, теперь возможно распихать серверную часть по вдскам на линуксе и удаленно рулить ими из няшной GUI-версии для Windows. SoftEther VPN имеет встроенный NAT и DHCP-сервер, то есть под Linux и FreeBSD больше не нужно возиться с настройками iptables и natd. На мой взгляд, еще никогда создание собственной VPN-сети не было таким легкореализуемым. Собственный протокол SSL-VPN может работать через TCP, причем поддерживаются множественные TCP-сессии, UDP и даже ICMP.

Пробуем

Рассмотрим эту прелесть с практической точки зрения. Для установки нам понадобится дедик или VDS/VPS, SoftEther VPN не требует для работы TUN/TAP-устройств, поэтому подойдут даже хилые варианты с любым типом виртуализации. Установка серверной части довольна проста. На странице www.softether-download.com выбираем дистрибутив SoftEther VPN Server под нужную операционную систему и архитектуру (в *nix архитектуру ОС можно узнать по команде uname -m). Для примера рассмотрим Linux, как самый частый вариант на VDS. Скачиваем дистрибутив на сервер любым доступным способом, после чего распаковываем и устанавливаем:

Tar xzvf softether-vpnserver-v4.05-9416.tar.gz && cd vpnserver && make

Нас попросят подтвердить, что мы прочли License Agreement и с ним согласны. После чего наш SoftEther VPN Server будет установлен в этом каталоге и готов к запуску. В документации опционально советуют переместить его в /usr/local/vpnserver , однако никакой разницы нет, запускать его можно хоть из /var/tmp . Чуешь, куда клоню? 🙂 Запускаем

./vpnserver start

Все, наш собственный VPN-сервер готов и по умолчанию ожидает нашего подключения на портах 443, 992, 1194 и 5555. Управлять сервером можно через его конфигурационный файл или, что намного удобнее, с помощью утилит управления. Подключиться к нему для управления можно с помощью консольной утилиты vpncmd, находящейся в этом же каталоге, либо с помощью GUI для Windows, называющегося SoftEther VPN Server Manager for Windows. Он входит в состав SoftEther VPN Server для Windows, но можно установить его отдельно путем выбора нужных галочек в инсталляторе или же скачать отдельный ZIP-архив со страницы загрузки. Рассмотрим его, как наиболее дружелюбный.


Для подключения в Server Manager указываем хост и порт (любой из слушаемых) нашего сервера. При первом подключении нас попросят установить администраторский пароль. Задаем свой пароль и приступаем к настройке. Имеет смысл отредактировать список портов, дабы явно не палить присутствие VPN на сервере. Я оставляю только 443, а ты выбери себе по вкусу. SoftEther VPN поддерживает так называемые виртуальные хабы (Virtual Hubs), по сути отдельные виртуальные VPN-серверы, каждый со своими администраторами, VPN-пользователями, настройками и ACL-политиками. Создаем такой хаб, если его не было по умолчанию, и переходим в его настройки, где нам нужно создать пользователя в Manage Users . SoftEther VPN поддерживает различные методы аутентификации, включая авторизацию по сертификату, RADIUS и NT Domain. Нам для начала достаточно обычной Password Authentication, поэтому просто задаем логин и пароль пользователя. Также можно заглянуть в Security Policy , где можно ограничить юзеру ширину канала и запретить прочие радости.


Для того чтобы у подключившихся к VPN пользователей был доступ в интернет, задействуем NAT. Все настройки находятся по соответствующей кнопке в контексте хаба, нам достаточно просто включить NAT, оставив все остальное по дефолту. На этом этапе уже можно подключаться к серверу с помощью клиента SoftEther VPN, который работает по собственному протоколу SSL-VPN, настройка тривиальна и затруднений не вызовет. Для подключения по L2TP и L2TP/IPsec нужно задействовать их на сервере, соответствующие опции находятся в IPsec / L2TP Settings . Аналогично включается и поддержка OpenVPN-клиентов, причем в этом случае SoftEther даже предложит сгенерировать конфигурационный файл.ovpn для OpenVPN.


Вот теперь можно подключаться к VPN как с настольных операционных систем, так и с мобильных девайсов, инструкции по настройке подключения можно найти в сети, они ничем не отличаются от обычных. На сайте www.softether.org тоже доступны мануалы с иллюстрациями. Самое время ощущать себя гордым владельцем VPN-сервера или даже, купив с десяток серверов в разных странах, открывать собственный VPN-сервис:).

Нетрадиционный VPN

Иногда бывает, что прямое соединение между клиентом и VPN-сервером затруднено или невозможно по каким-то причинам (локальная сеть, выход из которой строго файрволится на граничном роутере, или же сервер не имеет внешнего IP и находится за NAT или имеет динамический адрес). Распространенный случай - мы установили дома VPN-сервер и хотим попадать домой по защищенному каналу, но вот беда, домашний провайдер не выдает нам валидного айпишника. Да мало ли по каким причинам может не быть прямой видимости до сервера. И тут SoftEther VPN есть что показать нам. Собственный протокол SSL-VPN обладает рядом интересных техник для преодоления сетевых барьеров. Причем они не потребуют от нас никаких усилий, все работает буквально на автомате. Помимо обычной поддержки SOCKS/proxy, которой уже не удивить после OpenVPN, SoftEther VPN умеет:

  • DDNS сервис;
  • NAT Traversal;
  • VPN over ICMP;
  • VPN over DNS;
  • VPN Azure Cloud.

Если сервер не имеет постоянного айпи или мы просто хотим удобства, SoftEther VPN любезно предоставит нам домен третьего уровня в домене *.softether.net . Не нужно даже регистрироваться, все, что требуется, - это выбрать себе поддомен по вкусу, а работать и обновляться он будет самостоятельно. Функции пробива NAT, ICMP- и DNS-туннелирования пока плохо документированы и никак не настраиваются. Поэтому, чтобы убедиться в их работе, может понадобиться Wireshark. Однако и по дефолту все работает более чем прекрасно. Техника обхода NAT Traversal успешно пробила мой файрвол на роутере, на котором я для теста правилом заблокировал исходящие пакеты к VPN-серверу, и не менее успешно сумела соединиться с VPN-сервером, который был размещен за Full-Cone NAT. Проблема соединения с домашним сервером для меня решена навсегда:). Стоит учитывать, что для NAT Traversal требуется третий хост, который пока что предоставляет SoftEther VPN.

Влиять на то, какая техника будет использована, в текущей версии нельзя. SoftEther VPN Client пробует их поочередно, если прямое соединение «в лоб» не удалось. Пробуются соединения на 137-й и 53-й порт сервера, задействуется NAT Traversal, посылаются ICMP-пакеты. Для VPN over ICMP используются ICMP ECHO, или, проще говоря, обычный пинг.

Заключение

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