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

featured-tunel

Где взять 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-архив со страницы загрузки. Рассмотрим его, как наиболее дружелюбный.

Главное окно SoftEther VPN Server Manager
Главное окно SoftEther VPN Server Manager

Для подключения в 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.

Включаем L2TP
Включаем L2TP

Вот теперь можно подключаться к 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 пробивает NAT с помощью техники NAT Traversal и третьего хоста 130.158.6.60
SoftEther пробивает NAT с помощью техники NAT Traversal и третьего хоста 130.158.6.60

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

VPN в пингах
VPN в пингах

Если ничего из этого не удалось, SoftEther VPN предлагает нам соединение через VPN Azure Cloud. Эту функцию надо включать в настройках сервера, по умолчанию она выключена. В этом случае обе стороны инициируют соединения с третьей стороной в виде облачного сервиса, хост выделяется при включении этой опции. В качестве клиента можно использовать как SoftEther VPN Client, так и Microsoft SSTP, имеющийся в современных версиях Windows. Следует понимать, что данные будут идти через неподконтрольный нам узел, то есть пресловутого дядю, однако, по заверениям разработчика, аутентификация осуществляется на стороне нашего VPN-сервера, следовательно, через облако данные идут зашифрованными. Подробнее можно ознакомиться на www.vpnazure.net.

Схема работы Azure VPN
Схема работы Azure VPN

Заключение

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

11 комментарий

  1. 19.07.2014 at 12:32

    У SoftEther есть ного ограничений, например, для OpenVPN’a нельзя выбрать Camellia-256 алгоритм, поддержку SHA-256 или SHA-512 вместо SHA-1, шифрование на основе эллептических кривых. Для IPSec нельзя использовать сертификаты, только кодовое слово.
    На мой взгляд, все же лучше самому настроить форвардинг у iptables/pf и сгенерировать сертификаты через собранный openvpn + openssl/polarssl, например, как в статье от Gagliardoni.

  2. 19.07.2014 at 15:38

    НА FreeBSD 9-10-11 x86 x64 работает криво
    установить не получается нужно допиливать установочный скрипт завершается с ошибкой…
    Не работает SECURE NAT завести так и не удалось может в следующем релизе исправят
    С Linux x86 x64 Centos and Ubuntu всё ок

  3. 19.07.2014 at 17:31

    Пацаны, скиньте ссылку на сравнение серверных решений под ВПН, кто знает. Было такое на хакере?
    Когда-то проскакивала ссылочка про бесплатный сервер Амазона, но это для поиграться и потестировать. Также жду ваши собственные отзывы, кто чем пользуется.

    DPI пришло почти в каждый дом, поэтому пора ставить такую штуку, даже тем, кто не параноик. И маскировка под https здесь более чем уместна.

  4. 21.07.2014 at 06:30

    Дык я не понял! Если я дома ставлю VPN сервер и соединяюсь с ним например по телефону то между ними связь защищенная а вот между моим сервером и моим повайдером уже нет?

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

    • 21.07.2014 at 12:33

      Туннель необходим для передачи по скомпрометированным каналам связи.
      Если у вас есть возможность проложить свой канал, с охраной и собаками по длине канала, то туннель можно не делать. 🙂

  5. 23.07.2014 at 00:41

    В универе нашли и задержали меня правоохранители по подозрению во взломе сайта
    совета федерации и краже личных данных членов совета федерации. Давай
    наезжать что я хакер экстремист, сказали что отслеживают мой трафик уже
    месяцы и регулярно происходит посещение экстремистских сайтов и форумов.
    У меня же на компе просто был сервер тор запущен. Закончилось изъятием
    жёсткого и обещанием вернуть если выяснится что я не причастен к
    преступлениям, а т.к. у меня стоял линукс , то сообщили что местные
    спецы проверить не смогли, отправили в москву и ждать назад в ближайшие
    месяцы его не стоит. Заявили что тор расценивается как программа
    способствующая несанкционированному доступу в интернет, и если всё
    благополучно закончится, то придут и проследят за удалением тора и
    составят акт об уничтожении вредоностного програмного обеспечения))).

    Но суть не в этом. Теперь у меня встал вопрос о том как защитить свой
    трафик от посторонней слежки, чтобы ко мне больше никто с историей
    посещённых сайтов не приходил. Насколько я понимаю нужно подключаться
    через анонимный vpn сервер, как человек не богатый готов потратить на это 1500-2000р в год, но я не знаю
    какой vpn сервис по настоящему анонимен. Или может кто подскажет как
    самому создать такой сервер. Я в компах , особенно в сетевых
    технологиях, нуб.

  6. 23.07.2014 at 21:33

    Прога пропиеритарная,так что есть вероятность наличия бэкдоров!

  7. 27.12.2014 at 14:51

  8. SoftEther

    20.09.2015 at 14:10

    Как подключится с win7 по встроенному vpn? через клиент манагер как то не то

Оставить мнение

Check Also

Безопасность превыше всего. 9 простых трюков, которые сделают жизнь линуксоида секьюрнее

Жизнь обычных людей складывается из мелочей. Жизнь линуксоида складывается из множества ма…