5 июня 2015 г.

Установка и настройка Softether VPN на Debian 9.4 /Centos 7.4

************
Updated 23.05.2016 - Обновлены ссылки на SE.
Updated 23.09.2016 - Обновлено оформление статьи
Updated 04.05.2018 - Обновлено: скрипты установки и перенос их на gist нумерация разделов, команды и прочие мелочи.
************
В данной статье я расскажу об установке мультипротокольного VPN-сервера SoftEther VPN на VPS с ОС Debian 9.4 и Centos 7.4, а также настройке Remote AccessVPN с маршрутизацией трафика через данный сервер (L-3, IP-Routing).


0. Зачем нужен свой VPN-сервер и почему SoftEther?


Причин достаточно чтобы развести целых холивар и пусть на этот вопрос каждый для себя ответит сам. Мне VPN-сервер нужен для банальных вещей:
  • доступа к заблокированным сайтам;
  • безопасного и надежного канала для ноутбука или смартфона в недоверенных сетях (открытый или публичный Wi-Fi).

Ранее я пользовался бесплатной версией OpenVPNas сервера. В целом все устраивало, но при разворачивании очередной VPS решил попробовать SoftEther. По прошествии пары месяцев могу сказать, что эта штука мне определенно нравится.
Подробно описывать продукт не вижу смысла, все можно посмотреть в документации или спецификации.
В данной статье будем рассматривать подключение удаленных клиентов Remote AccessVPN с маршрутизацией трафика через сервер (L-3, IP-Routing).


1. Подготовка сервера и дистрибутива, сборка и запуск VPN-сервера


Ниже приведены процедуры установки сервера для двух наиболее распространенных дистрибутивов: Debian и Centos, которые хоть и немного, но отличаются друг от друга.

1.1. Сборка и установка SoftEther на Debian


В ОС Debian (на 04.05.2018) используется библиотека OpenSSL версии 1.1.0f из которой удалена поддержка SSLv3, в связи с чем предварительно скомпилированные бинарные файлы с центра загрузки SoftEther не подойдут - их просто не получится скомпилировать на целевой системе.
Выход - полная копмлиляция VPN сервера вручную, что совсем не сложно.
Ниже приведен скрипт где приведена последовательность необходных для сборки и установки VPN сервера команд. Для скачивания исходного кода используется стабильный репозиторий SoftEther на GitHub. Все команды необходимо выполнять от пользователя root.

После выполения всех перечисленных команд на сервере будет установлен и запущен VPN сервер, дополнительно будет установлен сервис systemd, который будет автоматически запускать SoftEther при старте операционной системы.

1.2. Сборка и установка SoftEther на Centos


В ОС Centos (на 04.05.2018) используется библиотека OpenSSL версии 1.0.2k, которая пока еще поддерживает SSLv3, следовательно для установки достаточно использовать предварительно скомпилированные файлы VPN сервера с сайта загрузки. Ниже приведен скрипт где приведена последовательность необходных для сборки и установки VPN сервера команд. Для установки используется последний beta дистрибутив доступный на сайте SoftEther Ver 4.27, Build 9666, beta. Все команды необходимо выполнять от пользователя root.

После выполения всех перечисленных команд на сервере будет установлен и запущен VPN сервер, дополнительно будет установлен сервис systemd, который будет автоматически запускать SoftEther при старте операционной системы.

1.3. Проверка установки


После установки проверяем установку сервера, запуская внутреннюю проверку сервера:
/opt/vpnserver/vpncmd /TOOLS /CMD check
в результате мы должны получить все пройденные тесты:


2. Настройка VPN-сервера


Дальнейшую настройку VPN-сервера можно выполнить двумя способами:
  1. Путем настройки через CLI, с помощью vpncmd. Причем CLI можно запустит как на самом сервере так и на удаленном Windows или Linux компьютере.
  2. Путем настройки через GUI, с помощью SoftEther VPN Server Manager (под ОС Windows или Linux c Wine).
В данном разделе статьи я покажу простейшую настройку VPN-сервера через CLI с помощью vpncmd.

Теперь мы плавно подошли к самой ответственной части - настройке NAT. В SoftEther есть два способа натирования трафика: SecureNAT или Local Bridge. У каждого из них есть плюсы и минусы и каждый для себя решает сам что ему выбрать. Подробно про SecureNAT и Local Bridge можно почитать в документации.
Если кратко, то мои "дилетантские" рекомендации следующие.
SecureNAT стоит выбрать если:
  • ваш VPS использует виртуализацию OpenVZ (на большинстве VPS с OpenVZ не загружены модули ядря для TUN/TAP-интерфейсов и нет такой возможности);
  • нужно быстро и просто развернуть VPN не сильно заботясь о скорости VPN и нагрузке на ЦП.
Local Bridge стоит выбрать если:
  • ваш VPS использует виртуализацию KVM, Xen, VmWare, Hyper-V и т.п. (здесь вы получаете полную виртуализацию сервера и сами контролируете виртульную, можете подгрузить все что угодно, включая TUN/TAP);
  • нужна максимальная скорость от VPN-сервера;
  • вы не боитесь покопаться руками в конфигах.
Ниже показаны оба варианта.

2.1. Настройка SecureNAT


SecureNAT не требует дополнительной настройки самого VPS сервера, достаточно прост в настройке и управлении. SecureNAT выполняет функции виртуального NAT-сервера и виртуального DCHP-сервера.


SecureNAT работает на уровне пользователя (userspace). В данном режиме все сетевые операции виртуализируются, на сервере не появляется дополнительный сетевой TAP интерфейс. Но повторюсь, что такая простота и удобство для пользователя и администратора с одной стороны компенсируются повышенной нагрузкой на ЦП с другой стороны.


Настройка довольно простая:

В целом все, SecureNAT настроен. Можно настраивать клиента и подключаться.

2.2. Настройка Local Bridge


В случае использования моста с виртуальным интерфейсом (Local Bridge) VPN-сервер не выполняет функции DCHP- и NAT-серверов. В данном случае натирование пакетов будет обеспечивать сама операционная система, а обрабатывать DHCP-запросы будет отдельный DHCP-сервер.


Создаем мост (виртуальный TAP-интерфейс).

Проверим статус в системе
ip addr
Интерфейс создался, но пока он не имеет своего адреса ip. Адрес будем конфигурировать позже. Теперь нужно установить DHCP-сервер. Я выбрал маленький и быстрый dnsmasq:
apt-get install dnsmasq
Добавляем следующие строки в конец файла с конфигурацией /etc/dnsmasq.conf:
interface=tap_vpn
dhcp-range=tap_vpn,192.168.234.10,192.168.234.100,2h
dhcp-option=tap_vpn,option:router,192.168.234.1
dhcp-option=tap_vpn,option:dns-server,1.1.1.1,208.67.220.220
Перезапустим DHCP-сервер командой:
systemctl restart dnsmasq
DHCP-сервер настроен и готов раздавать адреса новым клиентам.

Теперь вернемся к настройке ip-адреса интерфейса tap_vpn. Особенность данного интерфейса в том, что он удаляется из системы при останове сервиса SoftEther и, соответственно, появляется при её запуске. Для решения данной задачи я изменил файл сервиса systemd, чтобы после каждого запуска сервиса автоматически присваивался ip-адрес сетевому интерфейсу tap_vpn.

Открываем файл /etc/systemd/system/softether-vpnserver.service в редакторе и добавлям следущие строки в раздел [Service] после команды ExecStart:
ExecStartPost=/bin/sleep 3s
ExecStartPost=/sbin/ip address add 192.168.234.1/24 dev tap_vpn
таким образом, чтобы готовая конфигурация выглядела как ниже:

Данные команды будут выполнены последовательно после запуска SoftEther. Первая команда - пауза в три секунды, чтобы сервер успел подняться и добавить интерфейс, вторая - присваивание интерфейсу tap_vpn адреса 192.168.234.1 с маской 255.255.255.0
Сохраняем файл, обновляем файл сервиса и перезапускаем SoftEther:
systemctl daemon-reload
systemctl restart softether-vpnserver.service
Проверяем интерфейс еще раз
ip addr
и видим, что сетевому интефейсу успешно присвоился ip-адрес.

Теперь остались последние шаги, а именно: найстройка firewall и включение режима перенаправления трафика в системе.
Для влючения перенаправления трафика в системе необходимо в файле /etc/sysctl.conf разкомментировать строку:
net.ipv4.ip_forward=1
сохранить изменения и обновить параметры командой:
sysctl --system
Настройка firewall в Debian и Centos отличаются друг от друга.
Для настройки firewall в Debian добавляем следующее правило в IPTABLES:
iptables -t nat -A POSTROUTING -s 192.168.234.0/24 -j SNAT --to-source <IP адрес eth0>
где:
- 192.168.234.0/24 - VPN сеть,
- <IP адрес eth0> - ip-адрес сетевого интерфейса сервера, через который он соединен с Интернет, например 123.34.12.11.
И для сохранения правил iptables после перезагрузки устанавливаем дополнительный пакет:
apt-get install iptables-persistent

Для настройки firewall в Centos ....
 
Все, можно подключаться.

3. Настройка VPN-сервера с помощью SoftEther VPN Server Manager

Теперь перейдем к более наглядному и простому способу настройки VPN-сервера SoftEther с помощью GUI под Windows SoftEther VPN Server Manager. При подключении к серверу нужно будет указать пароль администратора VPN-сервера, который мы установили ранее при первом входе в vpncmd.
При первом подключении через Server Manager появится мастер быстрой настройки. Можно воспользоваться им, но это не наш метод :) поэтому перейдем к ручным настройкам.


Удалим стандартный хаб DEFAULT и создадим собственный хаб VPN нажав Create a Virtual Hub. После создания выберем данных хаб и перейдем в управление группами Manage Groups и создадим группу Users. Если пользователей немного, то можно обойтись и без группы, но в дальнейшем с ней проще проводить масштабирование пользователей и настройку политик.


Затем перейдем в управление пользователями Manage Users и создадим пользователя. Тип аутентификации выбираем Password Authentication и вводим пароль пользователя.


Следующий шаг - отключение логгирования переданных пакетов. Кнопка Log Save Settings в выбранном хабе. Убираем галку с Save Packet Log.


Затем открываем настройки IPsec. Нажимаем кнопку IPsec / L2TP Setting. Галочкой включаем поддержку L2TP over IPsec, выбираем наш хаб и вводим PSK ключ, который необходимо указать в настройках сетевого интерфейса VPN-подключения клиента.


Нажав кнопку OpenVPN / MS-SSTP Setting включим поддержку OpenVPN и отключим поддержку SSTP. При необходимости SSTP можно оставить, но для него нужно будет дополнительно генерировать сертификат сервера. Лично я SSTP не использую и отключаю его.


Нажав кнопку Encryption and Network настраиваем шифрование, выбрав стойкие алгоритмы шифрования и хеширования AES256-SHA. Отключаем отправку syslog сообщений и отключаем проверку соединения Keep Alive (опять же по желанию).


3.1. Настройка SecureNAT

Особенности работы SecureNAT были описаны выше.
Выбрав наш хаб и нажав кнопку Virtual NAT and Virtual DHCP Function (SecureNAT) попадем в раздел настройки SecureNAT. Нажатием Enable SecureNAT включаем SecureNAT.


Затем переходим к настройке SecureNAT нажав SecureNAT Configuration. При необходимости редактируем диапазон адресного пространства DHCP-сервера, время аренды, адрес и маску шлюза, DNS-серверы и т.д.


3.2. Настройка Local Bridge

Особенности работы с мостом из виртуального интерфейса (Local Bridge) описаны выше.
Нажав кнопку Local Bridge Setting перейдем в меню настройки данного виртуального интерфейса. Выбираем хаб VPN, затем тип создаваемого моста Bridge with New Tap Device, вводим имя создаваемого интерфейса и жмем Create Local Bridge. К вводимому имени vpn SoftEther добавит приставку "tap_".


Дальнейшая настройка заключается в установке DHCP-сервера, включении NAT и т.д. Все это уже описано в разделе 2.2., все описанное там следует выполнить и здесь начиная с установки DHCP-сервера.

4. Тестирование производительности SecureNAT и Local Bridge

Настало время тестировать работу SoftEther. VPS сервер, на котором я проводил настройку расположен во Франкфурте.
Первый тест: Включен SecureNAT. Тест скорости до провайдера из Амстердама.


Второй тест: Включен Local Bridge. Тест скорости до того же провайдера из Амстердама.


Третий тест: Включен Local Bridge. Тест скорости до Москвы, провайдер Ростелеком.


Разница в скорости и выводы очевидны.

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

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

Источники:

1) https://www.softether.org/4-docs

Ключевые слова:
настройка vpn, настройка впн, vpn linux, настройка впн сервера, softether,  настройка softether, установка softether, softether как подключить, softether vpn linux.

 

48 комментариев:

  1. НИЗКИЙ ПОКЛОН!
    Спасибо тебе мужик, огромное спасибо!!!!!! Я столько мануалов перепробовал, и с хабры и блог линкольна(который у тебя в источниках).
    И наконец твое подробное руководство сработало! Добра тебе! Очень помог!!!!!

    ОтветитьУдалить
  2. Добавлю: Настраивал SecureNAT, использовал эту версию http://www.softether-download.com/files/softether/v4.17-9566-beta-2015.07.16-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.17-9566-beta-2015.07.16-linux-x64-64bit.tar.gz На момент публикации комментария версия считается устаревшей, но и меня так устраивает:)
    Чтобы окончательно подсоединится, нужно скачать http://www.softether-download.com/en.aspx?product=softether (softether vpn client)
    Затем устанавливаете программу. Откроется окошко, в нем будет Add VPN Connection и VPN Gate Public relay Servers. Нажимаете на Add vpn Connection, пишете ip вашего сервера в Hostname, имя пользователя и пароль. Соединяетесь:)

    ОтветитьУдалить
    Ответы
    1. Здесь уже каждый выбирает то что хочет :)
      На момент написания статьи мне нужен был работающий VPN "из коробки" для Windows, Linux i Android. Для этого и было выбрано сочетание протоколов L2TP и OpenVPN.
      Если использовать родной клиент SE, то он может гораздо больше чем нативные клиенты и даже быстрее с использованием своего протокола SSL-VPN.

      Удалить
  3. Статья классная, содержательная) но я так и не понял, как настроить серверную частьна винде через gui, что бы пользователи юзали каждый свой инет а не инет с сервера. Как разрешить интернет через vpn только для пользователей смартфонов?

    ОтветитьУдалить
    Ответы
    1. >"как настроить серверную частьна винде через gui, что бы пользователи юзали каждый свой инет а не инет с сервера"
      Если я правильно понял, то речь идет о настройке SE через GUI, да так, чтобы пользователи были соединены между собой в одну VPN, но в интернет каждый выходил через собственный канал? В таком случае это решается отключением gateway в хабе SE. Дефолтные маршруты на клиенте в этом случае меняться не будут.

      >"Как разрешить интернет через vpn только для пользователей смартфонов?"
      Здесь как раз ситуация наоборот? Если так, то проще всего сделать отдельный хаб и группу для таких пользователей. В этом хабе уже нужен gateway, он будет на клиенте маршрутом по умолчанию.

      Удалить
    2. Прошу помощи, уже пару месяцев курю гугл и насилую softether. Помогите настроить сеть, нкжен и инет и vpn. Настройки gateway в хабе не нашел. Где его вырубить в gui что бы юзер ходил в инет через свой канал и сеть vpn работала?

      Удалить
    3. >Где его вырубить в gui что бы юзер ходил в инет через свой канал и сеть vpn работала?
      В VPN Server Manager (GUI) => заходите в созданный HUB (будем считать, что пользователи у Вас созданы) => далее "Virtual NAT and Virtual DHCP Server (SecureNAT)" => Если SecureNAT выключен, то включаете, если включен то переходите в настройки "SecureNAT Configuration":
      1) Virtual Host's Network Interface Settings - Виртуальный адрес VPN-сервера, оставляете по-умолчанию;
      2) Virtual NAT Settings - Настройка, которая как раз и позволяет пропускать через себя трафик. В Вашем случае отключить;
      3) Virtual DHCP Server Settings - Виртуальный DHCP-сервер. Для удобства рекомендую оставить включенным, иначе на клеинтах должны быть вручную прописаны ip-адресы;
      4) Options Applied to Clients - убрать все значения. Gateway и DNS в Вашем случае не нужен, предполагается что клиент использует свои DNS и выцходит в интернет напрямую.
      Скрин настроек в Вашем случае http://i.imgur.com/Q3rnFVD.png

      >Помогите настроить сеть, нкжен и инет и vpn...
      Непонятно, что именно нужно сделать. Если ответ выше Вам не подходит, то напишите дополнительно.

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

      Удалить
  4. Здравствуйте, Максим. Хочу сказать Вам огромное спасибо за инструкцию по установке Softether VPN!

    1. Я выполнил из этой статьи пункты "2. Подготовка ...", "3. Настройка ..." и "3.2. ... Local Bridge" сервер и клиент были в одной локальной сети, и все получилось. Но мне от Softether VPN нужно получить доступ с сервера по SSH к клиенту, который находится за NAT.
    2. Когда я подключил сервер как выделенный (на другой провайдер с "белым" статическим IP, без NAT), а клиента оставил подключенным через роутер к другому провайдеру и попытался установить VPN соединение - связь обрывается сразу после назначения VPN клиенту IPv4-адреса DHCP-сервером (dnsmasq).
    Очень прошу Вас, помогите разобраться в чем причина.

    Лог сервера:
    2016-07-06 11:08:01.798 [HUB "VPN"] Session "SID-LOCALBRIDGE-1": The DHCP server of host "00-AC-71-32-B4-95" (10.15.0.1) on this session allocated, for host "SID-CLIENT1-2" on another session "00-AC-6C-65-14-64", the new IP address 10.15.0.5.
    2016-07-06 11:08:41.430 [HUB "VPN"] Session "SID-CLIENT1-2": The session has been terminated. The statistical information is as follows: Total outgoing data size: 4135 bytes, Total incoming data size: 2479 bytes.
    2016-07-06 11:08:41.450 Connection "CID-1" terminated by the cause "The VPN session has been deleted. It is possible that either the administrator disconnected the session or the connection from the client to the VPN Server has been disconnected." (code 11).
    2016-07-06 11:08:41.450 Connection "CID-1" has been terminated.
    2016-07-06 11:08:41.450 The connection with the client (IP address 4*.*.*.*4, Port number 1305) has been disconnected.

    ОтветитьУдалить
    Ответы
    1. Добрый день, Вячеслав.
      Извиняюсь, что не ответил вам сразу. К сожалению мало информации для определения проблемы. Если вопрос еще актуален, то напишите мне, пожалуйста, на почту. Попробуем разобраться вместе.

      Удалить
  5. Подскажите, пожалуйста, как подрубить телефон на android 6.0 к своему серверу?
    local bridge

    ОтветитьУдалить
    Ответы
    1. Добрый день. Для Android есть два рабочих варианта: 1)L2TP, 2)OpenVPN. У меня самого Nexus 5 и я использую протокол OpenVPN вместе с OpenVPN Connect https://play.google.com/store/apps/details?id=net.openvpn.openvpn&hl=ru

      Настройка обоих вариантов на стороне сервера описана в статье. В настройке на телефоне тоже ничего сложного нет. Если нужно настроить OpenVPN Connect, то с помощью GUI администратора вы сможете выгрузить OpenVPN конфиг с сервера и импортировать его в телефон. К сожалению, SoftEther не поддерживает авторизацию OpenVPN по сертификатам, поэтому лучше создать отдельного пользователя под телефон с длинным паролем символов на 15-20.

      Если нужно настроить L2TP, то в телефоне есть нативный клиент: Настройки - Далее - VPN - Добавить - Тип-L2TP/PSK, вводите адрес сервера и пароль. Сохраняете и подключаетесь при необходимости. Для L2TP можно настроить еще авторизацию по сертификатам, что даже немного удобнее.

      Какой способ выбрать - решать Вам. Я, например, на всех устройствах(Windows, Linux, Android) использую OpenVPN, поэтому L2TP вообще отключил на сервере.

      Удалить
    2. весьма благодарен Вам за развернутый ответ!

      Удалить
  6. Максим, добрый день!

    Подскажите, пожалуйста, как правильно настроить маршрутизацию на сервере с SE VPN, чтобы с самого сервера получить доступ к локальным ресурсам клиентов?

    Сейчас конфигурация такая:
    Сервер с одним сетевым интерфейсом, IP 192.168.1.2 (сам сервер находится за NAT, который предоставляет железка D-link, она же является DHCP сервером для лок. сети)

    На сервере установлен и настроен Softether VPN, включен режим Virtual NAT и Virtual DHCP Server; Virtual DHCP выдаёт vpn клиентам адреса из сети 192.168.30.0/24 (в общем, тут всё по умолчанию оставил)

    Клиенты находятся в сети 192.168.0.0/24
    На клиенте при подключении к vpn-серверу добавляется маршрут на сеть 192.168.1.0: "route add 192.168.1.0 mask 255.255.255.0 192.168.30.1"

    Таким образом, я с клиента получаю доступ к локальным ресурсам сервера. Но мне надо, чтобы и с сервера был доступ на клиентские машины, в частности, чтобы работала печать на локальные принтеры. И что-то не разобрался, как настроить SE для этого. Поможете?

    ОтветитьУдалить
    Ответы
    1. Забыл добавить, для подключения к серверу использую нативный windows-клиент по протоколу L2TP IPsec.

      Удалить
    2. Добрый день.
      Давайте разбираться, но сходу задам вопрос, потому что не понимаю вместе
      этого "Virtual DHCP выдаёт vpn клиентам адреса из сети 192.168.30.0/24"
      и этого "Клиенты находятся в сети 192.168.0.0/24".
      Либо вы ошиблись в написании адресации, либо что-то не так.

      Если я правильно понял, то схема сети примерно такая:

      (Internet) <==> (Router/NAT/DHCP 192.168.1.1/24)
      <==> (VPNServer 192.168.1.2/24)
      VPN клиенты подключаются из внешней сети(т.е. с интренет), VPN сеть имеет адресацию 192.168.30.0/24.
      Нужно с сервера получить доступ до клиентских ресурсов.
      Все верно?

      Удалить
    3. Этот комментарий был удален автором.

      Удалить
    4. В общем, удалил SE VPN, установил заново и настроил мост между виртуальным и физическим сетевыми интерфейсами, а Virtual NAT и Virtual DHCP настраивать не стал. В принципе, сейчас всё работает почти так, как надо (до этого пробовал настраивать мост между сетевыми, но почему-то не получилось).

      Единственное, что не совсем так работает, как хотелось бы - это разрешение netbios имён. С клиента я могу достучаться до сервера по его netbios имени хоста, а вот с сервера до клиента - только по IP.

      Удалить
    5. Да, вы правы. В вашем случае с помощью Virtual NAT/DHCP не обойтись: нужна привзяка к реальным или виртуальным интерфейсам (как в OpenVPN например).

      Удалить
  7. 192.168.0.0/24 - это сеть, в которой находятся удалённые клиенты. После установки VPN-подключения клиент так же получает ip из vpn-сети (192.168.30.0/24).

    В свойствах vpn-соединения на клиенте флаг "Использовать основной шлюз в удалённой сети" снят, т.е. на остальные внешние ресурсы клиенты ходят через свой основной роутер.

    ОтветитьУдалить
  8. Такой вопрос.
    Использую Debian; настраиваю SoftEther VPN в качестве бриджа для использования с IPSec. Виртуальный интерфейс создается, но ему не присваивается адрес при старте системы. Но, если руками запускаю /etc/init.d/vpnserver, то адрес присваивается. Уже все волосы себе повырывал, но так и не могу понять что к чему.
    Не сталкивались с таким ?

    ОтветитьУдалить
  9. А как настроить впн сервер так, что бы с клиентской машины подключаться исключительно по 443 порту, не палясь перед deep packet inspection ?

    ОтветитьУдалить
    Ответы
    1. Для OpenVPN: В SoftEther Server Manager в окне OpenVPN/MS-SSTP для OpenVPN поставьте номер порта 443.
      Для SoftEther SSL-VPN: В SoftEther Server Manager слева в "Management of Listeners" добавьте/активируйте порт 443. Этого достаточно.
      Может от DPI (анализа содержимого) это и спасет, но тот факт, что у вас идет VPN-туннель по 443 порту не скроется.

      Удалить
  10. Вопрос: и нафиг нужен этот SoftEther, если до сих пор (!) нет GUI-клиента дла Linux?

    ОтветитьУдалить
    Ответы
    1. Я считаю, что наличие GUI-клиента и тем более под Linux это не показатель "полезности" данного VPN-решения. Кроме Linux, клиентами могут быть Android, Windows, iOS в которых есть свои стандартные L2TP-клиенты.
      Плюс ко всему, именно для Linux GUI-клиент не особо нужен. Есть прекрасный плагин для Network Manager (http://packages.ubuntu.com/search?keywords=network-manager-openvpn), с помощью которого легко сможете не только подключить/отключить, но и настроить VPN.

      Удалить
  11. Подскажите, пожалуйста, что можно сделать, месяц уже бьемся.
    Есть локальная сеть в домене.192.16.30.0/24. Установили EtherVPN на отдельную машину, адрес допустим 192.168.30.210. ( устанавливали раза три , скрупулезно, по инструкции ). Внешние клиенты соединяются и получают адреса из этой же подсети( 30.150,30.151 и т.д ) с помощью SecureNAT. А вот доступа и пинга к остальным машинам в этой подсети нет. Пингуется только 192.168.30.210, куда копать?

    ОтветитьУдалить
  12. Господа, подскажите - не могу понять.
    Топология сети: внешний роутер с белым IP, пробросил порты 1194,5555,1173, 1174 на всякий случай, в локалке к серверу подключаюсь локальная сеть 192.168.1.0\24, маску выдает адрес в сети 192.168.100.0\24. А вот когда пытаюсь с Пк постучаться по белому ип, через инет, то почти все ок, а потом Could not establish IPsec tunnel.VPN connection: failed to connect: 'Message recipient disconnected from message bus without replying' В чем проблема, что-то я уже не пойму...
    И еще такое замечание preshared-key сам поменялся после ребута на дефолтный, с чем такое поведение связано - пока непонятно...

    ОтветитьУдалить
    Ответы
    1. Для l2tp VPN пробросьте UDP:500, UDP:1701, UDP:4500

      Удалить
    2. Спасибо - попробую на днях, вероятно да - не те порты пробросил.

      Удалить
  13. Анонимный15 июня 2017 г., 8:19

    Мегареспект автору!!! +100500 в карму!
    Реально единственная полная работающая инструкция.
    Сервер по ней настроил моментально, неплохо бы еще по клиенту под *nix добавить мануал, там пришлось шишки набивать самому.

    ОтветитьУдалить
  14. Вроде все сделал по статье, но мне кажется, что dnsmasq не раздает адреса, потому что в логах вижу:
    2017-08-16 21:22:16.811 Connection "CID-2": Successfully authenticated as user "barmaley".
    2017-08-16 21:22:16.811 Connection "CID-2": The new session "SID-BARMALEY-[L2TP]-2" has been created. (IP address: x.x.x.x, Port number: 1701, Physical underlying protocol: "Legacy VPN - L2TP")
    2017-08-16 21:22:16.811 Session "SID-BARMALEY-[L2TP]-2": The parameter has been set. Max number of TCP connections: 1, Use of encryption: Yes, Use of compression: No, Use of Half duplex communication: No, Timeout: 20 seconds.
    2017-08-16 21:22:16.811 Session "SID-BARMALEY-[L2TP]-2": VPN Client details: (Client product name: "L2TP VPN Client", Client version: 422, Client build number: 9634, Server product name: "SoftEther VPN Server (64 bit) (Open Source)", Server version: 422, Server build number: 9634, Client OS name: "L2TP VPN Client", Client OS version: "-", Client product ID: "-", Client host name: "ineko", Client IP address: "x.x.x.x", Client port number: 1701, Server host name: "x.x.x.x", Server IP address: "x.x.x.x", Server port number: 1701, Proxy host name: "", Proxy IP address: "0.0.0.0", Proxy port number: 0, Virtual Hub name: "Cetus", Client unique ID: "802C37E253CE65C8D1DAD180D39EE196")
    2017-08-16 21:22:34.339 Session "SID-BARMALEY-[L2TP]-2": The session has been terminated. The statistical information is as follows: Total outgoing data size: 0 bytes, Total incoming data size: 1304 bytes.

    sudo systemctl status dnsmasq выдает:
    Aug 16 21:16:06 horologium dnsmasq[1602]: read /etc/hosts - 8 addresses
    Aug 16 21:16:07 horologium dnsmasq[1602]: reading /etc/resolv.conf
    Aug 16 21:16:07 horologium dnsmasq[1602]: using nameserver 8.8.4.4#53
    Aug 16 21:16:07 horologium dnsmasq[1602]: using nameserver 8.8.8.8#53
    Aug 16 21:16:07 horologium dnsmasq[1602]: ignoring nameserver 127.0.0.1 - local interface
    Aug 16 21:16:07 horologium systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.
    Aug 16 21:22:17 horologium dnsmasq-dhcp[1602]: DHCP packet received on tap_soft which has no address
    Aug 16 21:22:18 horologium dnsmasq-dhcp[1602]: DHCP packet received on tap_soft which has no address
    Aug 16 21:22:20 horologium dnsmasq-dhcp[1602]: DHCP packet received on tap_soft which has no address
    Aug 16 21:22:21 horologium dnsmasq-dhcp[1602]: DHCP packet received on tap_soft which has no address

    Если перезапустить dnsmasq руками - sudo systemctl restart dnsmasq, то:
    Aug 16 21:27:01 horologium dnsmasq-dhcp[1992]: DHCP, IP range 192.168.7.10 -- 192.168.7.200, lease time 12h
    Aug 16 21:27:01 horologium dnsmasq[1992]: reading /etc/resolv.conf
    Aug 16 21:27:01 horologium dnsmasq[1992]: using nameserver 8.8.4.4#53
    Aug 16 21:27:01 horologium dnsmasq[1992]: using nameserver 8.8.8.8#53
    Aug 16 21:27:01 horologium dnsmasq[1992]: read /etc/hosts - 8 addresses
    Aug 16 21:27:02 horologium dnsmasq[1992]: reading /etc/resolv.conf
    Aug 16 21:27:02 horologium dnsmasq[1992]: using nameserver 8.8.4.4#53
    Aug 16 21:27:02 horologium dnsmasq[1992]: using nameserver 8.8.8.8#53
    Aug 16 21:27:02 horologium dnsmasq[1992]: ignoring nameserver 127.0.0.1 - local interface
    Aug 16 21:27:02 horologium systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.

    ОтветитьУдалить
    Ответы
    1. Добрый день.
      Довольно тяжело сказать точно в чем Ваша проблема, но мне в глаза бросилась вот эта строка из лога: "DHCP packet received on tap_soft which has no address". У Вас на tap-интерфейсе адрес настрен?

      Удалить
  15. Добрый день! А можете подсказать как можно заставить softether выбирать случайный из нескольких доступных tap-интерфейсов при подключении?

    ОтветитьУдалить
    Ответы
    1. Добрый день.
      К сожалению, нет. Даже не сталкивался с таким.
      Вы можете подсказать, какую именно проблему Вы хотите решить несколькими tap-интерфейсами?

      Удалить
  16. я хочу динамический NAT. Т.к. белые адреса у меня не идут по порядку(и при этом на разных физических интерфейсах), сделать -j SNAT --to-source 1.2.3.4-1.2.3.8 не выходит, маскарад на интерфейс тоже. Поэтому я решил для каждого внешнего адреса поднять tap. Теперь не знаю как их балансировать =)

    ОтветитьУдалить
  17. Похоже так как я хочу нельзя сделать, но зато можно несколько хабов и каждому по tap-интерфейсу. Теперь думаю как сделать чтобы при подключении случаянный хаб выбирался

    ОтветитьУдалить
  18. Добрый день. Такая проблема, все настоил, все работает ip присваевается localbridge. Но нет интернета, как я понимаю с физического интерфейса сервера не идет интернет на tap, в iptables где адрес eth0 у меня адрес сервера белый, так как по ifconfig для eth0 он его и показывает, может там какой другой адрес надо писать, подскажите пожалуйста?

    ОтветитьУдалить
  19. И еще вопрос, я хочу подключаться по технологии VPN over UDP, не как не могу понять по какому порту это просиходит, пока включил все udp, но понимаю что не безопасно

    ОтветитьУдалить
  20. Также иногда нужен vpn over dns, но порт занят dns сервером для tap, можно ли его на другой порт как нибудь кинуть

    ОтветитьУдалить
  21. Проблему с интернетом решил перезагрузкой сервера. Оказалось vpn не стартует автоматом. а на эти команды выдает что нет файлов в этой директории mkdir /var/lock/subsys
    update-rc.d vpnserver defaults как настроить ?

    ОтветитьУдалить
  22. Через localbridge скорость больше 2х мегабит не поднимается, хотя на сервере 100, и без vpn на клиенте 15

    ОтветитьУдалить
  23. Спасибо Вам огромное! Очень крутая статья!!!

    ОтветитьУдалить
  24. Очень полезная статья, спасибо автору. Го у меня статус бриджа оффлайн, интерфейса нет. Куда копать подскажите.

    VPN Server>bridgelist
    BridgeList command - Get List of Local Bridge Connection
    Number|Virtual Hub Name|Network Adapter or Tap Device Name|Status
    ------+----------------+----------------------------------+-------
    1 |genn_vpn |genn |Offline
    The command completed successfully.

    VPN Server>

    ОтветитьУдалить
  25. А если у меня softether и dnsmasq - это контейнеры docker, то net.ipv4.ip_forward=1 я включаю в хосте, или в контейнерах?

    ОтветитьУдалить
  26. Анонимный5 июня 2018 г., 21:00

    Отличная статья, настроил быстро с первого раза, есть только вопрос по шифрованию можно ли выбрать что-то лучше из списка AES256-SHA и будет ли толк вообще?

    ОтветитьУдалить
  27. добрый день. спасибо за статью, доходчиво и понятно. сделал все тексту, поднял сервер на debian, в качестве клиента использую openvpn на win10, на сервере для этого делал:
    ServerCertRegenerate [CN]
    ServerCertGet ~/cert.cer
    SstpEnable yes
    OpenVpnEnable yes /PORTS:1194
    OpenVpnMakeConfig ~/openvpn_config.zip
    на выходе получил два конфига, для tun и tap, первый цепляется без проблем, а вот второй постоянно переподключается Inactivity timeout (--ping-restart), restarting
    может подскажите что поправить. буду благодарен

    ОтветитьУдалить
  28. добрый день! после выполнения команд:
    # Компилирование исполняемых файлов
    cd SoftEtherVPN_Stable
    ./configure
    make
    выдает ошибку:
    Nothing to be done for ‘default’ уже очень долго пытаюсь найти ответ, никак не могу сообразить, буду рад помощи.

    ОтветитьУдалить