Пользователь
46,8
рейтинг
12 января 2014 в 21:31

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

Как скоро я смогу вас заинтересовать, если скажу, что в этой статье речь пойдет о 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 с автоматической приоритезацией


По заявлению автора, SoftEther работает быстрее эталонных реализаций.


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

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

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

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

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

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

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

Настройка SecureNAT
image

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

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

VPNGate

Проект VPNGate был создан для обхода блокировок со стороны администратора, провайдера или правительства. Вы можете запустить у себя SoftEther-сервер, поставить галочку «использовать vpngate», и пользователи, которым нужен бесплатный VPN, смогут найти ваш сервер в каталоге VPNGate и подключиться к нему, причем они не смогут получить доступ к диапазону приватных адресов вроде 192.168.0.0/16, а только до интернета. Также, SoftEther пишет логи пользователей, которые используют ваш сервер через VPNGate.

Заключение

Вот, наверное, и все. Буду с нетерпением ждать апреля, который, надеюсь, привнесет поддержку, как минимум, Radius и сертификатов.
На сайте хоть и мало документации по тонкой настройке SoftEther, но очень понятно, подробно и интересно расписано про сети и VPN в общем. Если у вас хорошо с английским и вы хотите узнать побольше про VPN, не поленитесь, почитайте документацию на сайте проекта. Ну, или хотя бы на картинки посмотрите.

SoftEther VPN
Репозиторий на github
@ValdikSS
карма
631,0
рейтинг 46,8
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Администрирование

Комментарии (43)

  • +6
    Звучит и выглядит прям как чудо, обязательно опробую
  • +4
    Я когда на прошлой неделе увидел релиз сам не поверил, я всем советую кто связан с сетями хотя бы потестировать продукт.
  • +4
    Рвёт шаблоны.
  • –4
    Смотрится симпотишно в виндовой реализации. Свежо чтоль. Посмотрим каков он в деле.
  • +3
    Кто уже успел познакомиться? Под linux работает в виде демона нормально или требует GUI для управления?
    • +4
      У меня получилось запустить сервер (сервер всегда демоном запускается) и включить OpenVPN-режим через CUI, но подключиться из-под OpenVPN-клиента не получилось (да я особо и не пытался, честно сказать). Когда запускал сервер под Windows, с легкостью удалось соединиться через L2TP/IPSec с Android.
  • +1
    Интересно. GUI Панель управления внешняя? В смысле можно ей указать, что сервер живёт на 10.0.0.1:12345?
    • +3
      Да, как и CUI.
      • +1
        Спасибо большое. Попробую посмотреть на досуге)
  • +1
    Спасибо за статью, на работе пригодится.
  • +1
    И правда, похоже на чудо… попробуем.
  • +1
    Единственное, что не давало начать им пользоваться — внутренний параноик, все-таки некий закрытый коммерческий код.
    В качестве теста поднимал. Работает «из коробки», правда по умолчанию включены логи.
    • 0
      Тоже заинтересовала безопасность сего продукта. Но исходники открыты… думаю можно и проинспектировать.
      • 0
        Открыли только на днях.
  • 0
    А есть ли возможность привязки к AD и если нет, то планируется ли она в будущем?
    • +1
      К большому сожалению, сейчас еще пока остаются некоторые проблемы с копирайтом, поэтому в SoftEther до апреля 2014, вероятно, нельзя будет увидеть некоторые важные функции: аутентификация Radius / Active Directory, аутентификация по RSA-ключам, защита от DoS, Source IP ACL, Syslog transfer и Deep-inspect packet logging.
  • +2
    >>может «навредить имиджу других VPN-продуктов» и запретило распространять программу
    отличный и действенный метод борьбы с конкурентами. При этом за пределами России. Тогда тойота вредит имиджу других автовазов, но почему-то японцы не торопятся запретить распространять тойоту.
  • 0
    Что-то не завелось. Сервер вроде как живой, админ-тул к нему коннектится и все там вроде настраивает. Но ни ойфон ни винда не коннектятся. Ойфон говорит, что «server unreachable», винда говорит что на этапе переговоров произошла ошибка…
    • 0
      DHCP-сервер настраивали? Свой или SecureNAT?
      • 0
        Нет, не свой — при начальной настройке в SecureNAT
        • 0
          А протокол какой используете? L2TP/IPSec?
          • 0
            угу
    • 0
      Тоже самое. В логах хаба есть строка, говорящая о причине отключения, т.к. клиент НЕ SoftEther. Пробую самим клиентом SoftEther сейчас, подключается, выдает IP.

      Однако, отключается спустя 2-5 секунд. В логах уже нет записей о причине дисконнекта (
    • 0
      Попробуйте удалить все хабы и настроить с нуля один хаб, а так же SecureNAT для него, затем перезапустите vpnserver.
      У меня только после этого айфон подключился по L2TP.
      • 0
        не пошло…
      • 0
        А проблема была в том, что из-под не-рута не биндятся старшие порты — 443 и 992. Я думал, что это не помешает подключиться на остальные два порта, но почему-то вот не получилось
  • +6
    Пока это черная лошадка, в свете паранойи и 6 коммитов на github. Будем смотреть код, анализировать. А вдруг это опять происки шпионов =)
  • 0
    Хорошая статья, столько как по вашему мнению расшифровывается CUI? Поправьте на CLI.
    • +3
      Console User Interface. CLI это другое, это Command-line interface. CUI интерактивный, CLI — нет.
      • 0
        А разве ответ на действия в CLI не является интерактивностью?

        Например — консольная версия интерфйеса недавно описанного здесь рутера zyxel — это CLI.

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

        Вроде так.
        • +2
          Имеется в виду, что CLI — это именно командный интерфейс, команда (или конвейер) — ответ. А CUI — интерфейс юзера как GUI но в консоле, как например ncurses, TURBO PASCAL / TURBO C.
          • 0
            Тогда консольные настройки тех же рутеров правильнее будет называть не CLI, а CUI.

            Спасибо, монстрик, теперь термины понятны! :)
  • +2
    Установка SoftEther VPN в Ubuntu. Будет возможность — договорюсь с авторами, и сделаю daily ppa — нужно всего лишь добавить инструкции для сборки в репозиторий.
    • 0
      Сделал, спасибо за это Диме Орлову: SoftEther VPN daily build ppa.
      sudo apt-add-repository ppa:paskal-07/softethervpn && sudo apt-get update && sudo apt-get upgrade && sudo apt-get install softethervpn
      • 0
        Спасибо. А есть мануал по настройке сервера через консоль? А то на сайте только с GUI и то с Windows
        • 0
          Мануала нет. Вся имеющаяся информация на английском есть в документации, и единственный вариант, если там чего-то нет — разобраться самому и написать об этом, или попросить это сделать разработчиков (у которых, судя по всему, сейчас много других дел кроме доработки документации).
          Пользуясь случаем, исправление (в предыдущем моём комментарии неверное имя пакета):
          sudo apt-add-repository ppa:paskal-07/softethervpn && sudo apt-get update && sudo apt-get upgrade && sudo apt-get install softether-vpnserver
  • 0
    Скажите, можно ли в нем настроить ACL для пользователя так, к примеру, чтобы ограничить его в доступе к определенным хостам в виртуальной сети? Скажем, запретить все хосты и разрешить только один?
    • 0
      Да, вполне.
      • 0
        Спасибо!
  • +2
    Здравствуйте. В программном обеспечении существует такое понятие как продукт. Не часто сталкиваешься с ПО, вышедшем в Японии. То, что я увидел в SoftEther VPN — это какой-то суррогат, особенности:
    1. Вроде бы поддержка более 4х туннелей одновременно должна как-то предполагать, что продукт будет поддерживать возможность организации сети из коробки. Только не тут. Встроенный SecureNAT (странное название) — это всего лишь кривой программный тормозной NAT и такой же недоделанный DHCP сервер. Для клиентов PPTP, L2TP от MS SeсureNAT не назначает вам адрес автоматически. Серверу не удается вписать в конфиг клиента и даже шлюз по умолчанию. Хотя для клиентов openVPN при верном конфиге процедура проходит успешно.
    2. Вы не сможете сделать так, чтобы сервер пушил статические адреса вашим клиентам. Представляете, тут этого нет! Если вам нужна статика, вам придется руками каждому клиенту вписать это в настройке адаптера. Наверное, те, кто имеет дело с Микротиками, где все это работает из коробки, дружно начали улыбаться.
    3. Качество работы разных туннелей может отличаться на порядок. Это касается скорости работы при включенном SecureNAT на разных туннелях и клиентах. Количество зафейленных подключений намного выше, чем в комбинации с тем же микротиком. То есть поддержки разной клиентуры (MS PPTP, L2TP: Linux PPTP, L2TP) по сути нет, а основная картинка софта — тупой развод. Потеряете свое время и получите кардинально разный результат.
    4. Позиционирование использования этого недософта в связке с отдельно запущенными DHCP серверами, DNS и пр — я тогда не понимаю его смысла, я бы настроил Линукс сервер и развернул бы там те туннели в виде серверов, что мне нужны.
    5. Форум и программисты из страны восходящего солнца просто кишат советами — допилите сами, мы же выложили в openSource.
    6. SecureNAT с локальным бриджем работает криво на разных клиентах. На лицо баги в том, какие именно настройки сервер прописывает клиенту при подключении. Поэтому проблем с доступностью, пингами и прочими будет навалом и будет зависеть от клиента. ICMP может не вернуться, а ресурс в сети то быть доступным, то нет.
    7. Здесь же конечно можно написать — настрой на сервере NAT сам, пропиши маршруты. Без проблем, только при условии, что и остальное будет сделано также. Этой софтине не может быть места на сервере при таком положении дел. Такое чувство, что она была сделана под задачу — наплодить кучу vpn серверов, которые выводят трафик где-то там. И наверняка, где-то там его еще и слушают.
    Какой смысл было писать о таком ПО тут на Хабре? Мы тут собрались развиваться или терять свое время? Вам я точно не посоветую терять свое время, разбираясь в этом. Конечно их программа-клиент решает ряд проблем. Но попробуйте заставить своих клиентов-людей ставить внешний клиент VPN.
    • –1
      Ну вот как бы да. Использовать SoftEther для предоставления коммерческих услуг VPN точно не получится.
  • –1
    В итоге сделали все на микротик. Дешево, работает отлично. 1.5 дня потратили на эту штуковину и 0.5 дня на микротик.
  • +1
    «Чудо» было бы ещё более чудесным, если бы клиент понимал не только собственный сервер.
    Потому как подружить клиент SoftEther с установленным и стабильно работающим сервером OpenVPN мне так и не удалось, несмотря на самые разные настройки.
    Суппорт в виде форума молчит. В сети манов на этот счёт нет никаких.
    Переезжать с проверенного временем решение на нечто новое после такого желания не возникает.

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