Меню Рубрики

Установка softether vpn client на ubuntu

Установка SoftEther на Ubuntu или Debian

Чуть более подробно про возможности сервера:

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

Есть возможность настроить работу в local bridge и SecureNAT

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

Помните, что нельзя включить сразу local bridge и SecureNAT — получите 100% загрузку процессора на VDS

Установка (картинки кликабельные):

Идём на офсайт и выбираем необходимую версию

Читаете многабукаф и соглашаетесь с правилами использования: 1 — 1 — 1

Потом переносите накомпиленное в каталог /usr/local/

Вставляете содержимое в /etc/init.d/vpnserver

Проверяете работу сервера

Должны получить 4 раза “Pass”.

Добавляете пароль администратора на сервер

Скачиваем клиент для настройки сервера:

Устанавливаем, вводим адрес сервера и логин администратора



Выбираем 1й пункт и вводим

Для настройки Secure NAT заходим в Manage Virtual Hub

Проверяем на сервере, создался ли интерфейс

Добавляем в файл /etc/dnsmasq.conf

Изменяем стартовый скрипт /etc/init.d/vpnserver

Добавляем в /etc/sysctl.d/ipv4_forwarding.conf

Добавляем правило фаервола

Где [YOUR VPS IP ADDRESS] — адрес вашего VDS

источник

How to Set up SoftEther VPN Client on Linux

In this tutorial we will show you how to set up SoftEther VPN Client on Linux but first let’s see what are our requirements and recommendations.

Requirements

In order to set up the SoftEther you will need:

  1. A CactusVPN account. If you don’t have one you can try our services for free.
  2. Your VPN username, password and VPN server address. You can find them in your account on our website, by going to Settings.

Recommendations

  • This tutorial requires advanced Linux knowledge. There is a potential risk to break your Internet connection if you don’t follow all steps exactly. You can always set up VPN on Linux using other VPN protocols that are easier to set up.
  • Connect to SoftEther VPN protocol on Linux only if you have experience with the configuration of Linux applications and are familiar with reading / modifying IP routing tables.

If you still want to set up SoftEther VPN on Linux, go step-by-step through following instructions:

Part I. Install SoftEther VPN client

We’ll show you how to install the SoftEther VPN client on Linux. You can do this in two ways: from package manager on Ubuntu or other Debian Derivates [x86_64 or AMD 64 machines] and from source on Linux distributives. Choose the way you want to use from the menu below and follow its steps.

This step is not mandatory, though it is recommended.

  • Add the CactusVPN repository to your package manager source list: sudo echo «deb [trusted=yes] https://repository.cactusvpn.com/softether/ amd64/» > /etc/apt/sources.list.d/cactusvpn.list
  • Update the package manager cache: sudo apt update

    Important! You may get the following error:

    “E: The method driver /usr/lib/apt/methods/https could not be found.
    N: Is the package apt-transport-https installed?
    E: Failed to fetch https://repository.cactusvpn.com/softether/amd64/InRelease
    E: Some index files failed to download. They have been ignored, or old ones used instead.”

    If you get this error, you need to install apt-transport-https on your device:

    sudo apt install -y apt-transport-https

    and run the first command again.

    If you do not see any errors just ignore this step.

  • Install the SoftEther VPN manager: sudo apt install -y softethervpn-stable
  • apt update && apt -y full-upgrade

    This step is not mandatory, though it is recommended.

  • Download the latest version of SoftEther VPN client (at the time of writing this tutorial it was v4.27-9668-beta.) available here: wget http://www.softether-download.com/files/softether/v4.27-9668-beta-2018.05.29- tree/Linux/SoftEther_VPN_Client/64bit_-_Intel_x64_or_AMD64/softether-vpnclient-v4.27-9668- beta-2018.05.29-linux-x64-64bit.tar.gz
  • Decompress SofEther VPN client: tar xzfv softether-vpnclient-v4.27-9668-beta-2018.05.29-linux-x64-64bit.tar.gz
  • Make sure your system have all the needed tools for SoftEther compilation.On Debian / Ubuntu:

    apt -y install build-essential

    yum groupinstall «Development Tools»

  • Change the directory to the vpnclient folder: cd vpnclient
  • Compile SoftEther into an executable file: make
  • SoftEther will ask you to read and agree its License Agreement. Select 1 to read the agreement, again to confirm you have read it and finally to agree to the License Agreement.SoftEther is now compiled and it’s an executable file (vpnclient and vpncmd). If the process fails, check if you have all of the requirement packages installed.
  • Now we can move the vpnclient directory somewhere else. We moved it to “/usr/”: cd .. && mv vpnclient /usr/ && cd /usr/vpnclient/
  • Part II. Configure SoftEther VPN client

    If you see this message: “The SoftEther VPN Client service has been started.” then the SoftEther VPN client has successfully started.

  • Check the SoftEther VPN client: vpncmd
  • Select “3” to enter “Use of VPN Tools (certificate creation and Network Traffic Speed Test Tool)”.
  • Test the SoftEther VPN Client installation: Check

    If all the checks are passed, you can go to the next step.

    Important! Do not go to the next step until you do not correct all the errors.

  • Press “Ctrl” + “C” or “Ctrl” + “D” to exit.
  • Set up SoftEther VPN client. Start configuration with: vpncmd
  • Select “2. Management of VPN Client”.
  • Do not enter any addresses at “Hostname of IP Address of Destination” and press “Enter” to connect to the localhost.
  • Create a virtual interface to connect to the VPN server. In the SoftEther VPN configuration type: NicCreate vpn_se
  • Create an account that will use this interface for the VPN connection. Run this command in the terminal: AccountCreate cactusvpn
  • Set up VPN account with your details.”Destination Virtual Hub Name”: cactusvpn

    Читайте также:  Установка дефлектора капота сандеро

    “Destination VPN server Host Name and Port Number”: :

    You can find all the available servers and ports in your account on our website, by going to Settings.

    You can find your username in your account on our website, by going to Settings. Make sure you use your VPN username and NOT the website account one (What is the difference?).

    “Used Virtual Network Adapter Name”: vpn_se

    If you get the “The command completed successfully.” message, it means that the account creation was successfully finished.


    Set up a password: AccountPassword cactusvpn

    and enter your VPN password for “Password” and “Confirm input”.

    You can find your password in your account on our website, by going to your service details. Make sure you use your VPN password and NOT the website account one (What is the difference?).

  • At “Specify standard or radius:” type radius
  • Connect to the SoftEther VPN client using the created account: AccountConnect cactusvpn
  • Test the connection to the VPN server: AccountList

    If you see “Connected” you can go to the next step.

  • Press “Ctrl” + “C” or “Ctrl” + “D” to exit the SoftEther VPN Client manager.
  • Part III. IP and routing table

    If you get “1” you can skip this step and go to the “Obtain an IP address from the VPN server” step.

    If you have “0”, please enable IP forward:

    echo 1 > /proc/sys/net/ipv4/ip_forward

    You can also make it permanent by editing the “/etc/sysctl.conf” file:

    echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf && sysctl -p

    If you get “net.ipv4.ip_forward = 1” the IP forward was successfully enabled.
    Obtain an IP address from the VPN server: sudo ifconfig

    and you’ll see the virtual network “vpn_vpn_se” created with SoftEther VPN client tool.

    To get an IP address from the VPN server:

    After a few moments you should get an IP address from the 10.6.0.0/24 network.


    Edit the routing table: sudo netstat -rn

    to see the current routing table. Yours should be similar to this:


    Add a route to the VPN server’s IP address via your old default route. In my specific case: sudo ip route add 93.115.92.240/32 via 192.168.0.1

    The 93.115.92.240 is the IP address of the VPN server. The 192.168.0.1 is my previous gateway.
    Delete the old default route: sudo ip route del default via 192.168.0.1

    After these updates, the routing table should look like this:

  • Ping any IP address to check your network connection: ping 8.8.8.8 -c4
  • Check your public IP address from the command line: wget -qO- http://ipecho.net/plain ; echo

    If you see the VPN server’s IP, everything was set up correctly and your Linux is connected to the VPN via SoftEther VPN client.

    If the ping to the “8.8.8.8” is OK but you can not retrieve anything else by public hostname, add Google DNS (or any Public DNS server) to your “/etc/resolv.conf” file:

    sudo echo nameserver 8.8.8.8 >> /etc/resolv.conf

    Part IV. Disconnect from VPN

    To turn the VPN connection OFF you need to close SoftEther VPN Client manager and edit the routing table to get the access to the Internet via your router’s gateway.

    1. To disconnect from VPN simply turn OFF the SoftEther VPN Client manager: sudo /usr/vpnclient/vpnclient stop
    2. Edit the routing table by deleting the route from your gateway to the VPN server (in our specific case 93.115.92.240/32): sudo ip route del 93.115.92.240/32
    3. Add a default route via your local gateway (192.168.0.1 for the IPs we used in this example): sudo ip route add default via 192.168.0.1

    источник

    Настройка VPN-сервера SoftEtherVPN под Linux


    Как уже писалось на хабре, буквально в начале января сего года под лицензию GPL2 перешел очень интересный и, в своем роде, уникальный проект — SoftEther VPN. Написали его студенты японского University of Tsukuba. Данный продукт позиционирует себя как VPN-сервер с поддержкой огромного количества туннельных протоколов: L2TP, L2TP/IPsec, L2TPv3/IPsec, MS-SSTP, EtherIP/IPsec, OpenVPN, SSL-VPN (собственной разработки), L2VPN, а также такие хитрые штуки как туннелирование через ICMP и DNS. Поддерживает туннелирование как на третьем, так и на втором уровне, умеет VLAN и IPv6. Работает практически на всех известных платформах (даже ARM и MIPS) и к тому же не требует рутовых прав. С полной спецификацией можно ознакомиться вот тут. Если честно, когда я увидел список возможностей этой проги — я просто не поверил своим глазам и подумал: «Если ЭТО работает, то я ДОЛЖЕН это потестить!»
    Эта статья будет описывать процесс установки и настройки SoftEther VPN Server под Линукс. В следующей статье постараюсь нарисовать красивые сравнительные графики производительности.
    Данная софтина обладает на редкость приятным интерфейсом под Винду, однако под Линуксом вся настройка осуществляется через CLI. Мануал безусловно хорош, но мне например показался чересчур подробным, и к тому же с перекосом в сторону графического интерфейса и излишне красочных японских картинок. Поэтому решил выложить основные команды CLI для тех, кому лень лопатить много английских букв.

    Для начала — установим это чудо. У меня под рукой был VPS с 64-битным Дебиан 7 на борту, поэтому выбор был очевиден. Сразу предупреждаю: устанавливать нужно только с GitHub’a (на текущий момент версия релиза 4.04 build 9412)! На оффициальном сайте можно скачать исходники под разные платформы, однако засада в том, что makefile’ы там сгенерированы каким-то садистки-западлистским способом, и на выходе вы получаете всего два файла — сам бинарник сервера и его CLI-шка. Никакого копирования в /usr/bin/ и прочих цивилизованных вещей там не прописано. В отличие от этого, makefile на Гитхабе ведет себя гораздо более дружелюбно (хотя инит-скрипт все равно не делает, зараза).

    Читайте также:  Установка двух блоков питания atx

    Прежде чем поставить прогу, рекомендую сходить сюда и узнать, что ей нужно для установки. Мне, например, понадобилось поставить ряд библиотек (потом их можно снести):

    # apt-get install libreadline-dev libssl-dev libncurses5-dev zlib1g-dev

    # git clone github.com/SoftEtherVPN/SoftEtherVPN.git
    # cd SoftEtherVPN\
    # ./configure
    # make
    # checkinstall

    — Installation completed successfully.

    Execute ‘vpnserver start’ to run the SoftEther VPN Server background service.
    Execute ‘vpnbridge start’ to run the SoftEther VPN Bridge background service.
    Execute ‘vpnclient start’ to run the SoftEther VPN Client background service.
    Execute ‘vpncmd’ to run SoftEther VPN Command-Line Utility to configure VPN Server, VPN Bridge or VPN Client.
    ———————————————————————

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

    Итак, VPN-сервер установлен и его можно запустить:

    # vpnserver start
    SoftEther VPN Server Service Started.

    Приступаем к конфигурированию. Вообще, мануал предлагает нам два способа это сделать: через его собственную командную строку vpncmd или через конфигурационный файл vpn_server.config, причем огромное предпочтение отдается первому способу. Операции с конфигурационным файлом производитель считает рискованным занятием и всячески пытается нас от этого отговорить. Дело в том, что сервер непрерывно читает этот файл и любые изменения в нем мгновенно отражаются на работе сервера. Единственный случай, когда настройка из конфиг-файла оправдана — это когда VPN-сервер выключен. Не знаю, зачем так сделано, но автору, в любом случае, виднее. Да и вообще, у проги хорошая CLI, после работы с которой о существовании конфиг-файла просто забываешь за ненадобностью.

    Кстати, сразу после установки обратил внимание, что прога зачем-то стукнулась по адресу 130.158.6.77:80. Оказалось в этом нет ничего подозрительного, просто таким образом сервер посылает keepalive-пакеты на свой сайт (keepalive.softether.org:80), чтобы не рвались по таймауту разные PPP-сессии. Сразу после установки я эту функцию отключил командой KeepDisable.

    Итак, сразу после запуска VPN-сервер уже работает и принимает подключения на порты TCP 443 (SSL VPN), 992, 1194 (OpenVPN) и 5555 (номера портов можно поменять командами ListenerCreate и ListenerDelete), однако чтобы начать использовать его необходимо сделать ряд простых настроек. Заходим в CLI командой vpncmd:

    # vpncmd
    vpncmd command — SoftEther VPN Command Line Management Utility
    SoftEther VPN Command Line Management Utility (vpncmd command)
    Version 4.04 Build 9412 (English)
    Compiled 2014/01/15 17:22:14 by yagi at pc25
    Copyright (c) SoftEther VPN Project. All Rights Reserved.

    By using vpncmd program, the following can be achieved.

    1. Management of VPN Server or VPN Bridge
    2. Management of VPN Client
    3. Use of VPN Tools (certificate creation and Network Traffic Speed Test Tool)

    Выбор 1 перенесет нас в режим редактирования сервера, выбор 2 — в режим редактирования свойств клиента, а выбор 3 — режим тестирования и создания сертификатов сервера. Выбираем 1, сервер предложит ввести айпи адрес сервера, к которому мы хотим подключиться (Hostname of IP Address of Destination:), просто нажимаем Enter, т.к. собираемся редактировать локальный сервер. В третий и последний раз прога спросит нас имя виртуального хаба (Specify Virtual Hub Name:), с которым мы будем работать. Мы пока что не собираемся работать с виртуальными хабами, поэтому снова нажимаем Enter и попадаем в командную строку самого сервера.

    Необходимо пояснить, что такое виртуальные хабы в терминологии разработчика. Виртуальный хаб — это некая довольно самостоятельная инстанция VPN-сервера, обладающая собственным набором настроек виртуальных интерфейсов, политик безопасности и протоколов VPN. Всего можно создать до 4096 виртуальных хабов, при этом они никак не будут пересекаться друг с другом ни на 2-ом, ни на 3-ем уровне — то есть будут полностью изолированы друг от друга. Каждый виртуальный хаб работает со своим набором пользователей и ничего не знает про пользователей другого виртуального хаба, хоть они и находятся на одном физическом сервере. С другой стороны, если мы захотим, мы можем настроить их взаимодействие друг с другом, в терминологии автора это называется Virtual bridge/router. Таким образом, виртуальный хаб — это и есть то, с чем мы будем работать после указания определенных глобальных настроек сервера.

    После входа в vpncmd перед нами возникнет приглашение:

    Connection has been established with VPN Server «localhost» (port 443).

    You have administrator privileges for the entire VPN Server.

    VPN Server>hubcreate vpn
    HubCreate command — Create New Virtual Hub
    Please enter the password. To cancel press the Ctrl+D key.

    Можно задать админский пароль для нового хаба, тогда можно будет делегировать администрирование этого хаба другому человеку. А можно для простоты нажать Enter и не делать этого (для этого в дальнейшем есть команда SetHubPassword). После создания хаба мы должны перейти в режим администрирования этого хаба командой Hub vpn. Посмотреть статус хаба можно командой StatusGet. Не буду приводить здесь вывод этой команды, т.к. он длинный и довольно понятный. Хаб можно выключить командой Offline и вернуть обратно командой Online.

    Мне понравилась команда SetEnumDeny. Дело в том, что когда в VPN-клиенте вводишь адрес VPN-сервера, он сразу же сдает тебе имена всех виртуальных хабов, зарегенных на сервере, как на картинке. Эта команда запрещает выводить имя данного хаба в списке. Типа небольшой, но бонус к безопасности.

    Читайте также:  Установка птф без подключения

    Ладно, займемся более интересными вещами. Создаем пользователя командой UserCreate и задаем ему пароль при помощи UserPasswordSet. Команды очень простые, достаточно минимального знания английского, чтобы понять диалоговые сообщения сервера. На данном этапе для простоты не будем возиться с сертификатами, а доверимся самоподписанному сертификату сервера, который он сгенерил на этапе установки.

    Вот в принципе и все, минимальная установка завершена и мы можем прицепиться к нашему серверу, указав его IP-адрес и любой из портов списка ListenerList. Автор рекомендует порт 5555, поскольку данный порт не требует рутовых прав в системе. Окно VPN клиента я уже приводил выше, там все интуитивно понятно и очень красиво. Аутентификация проходит и устанавливается VPN-туннель. Однако, в таком виде пользы от туннеля мало, т.к. он позволяет обращаться только к самому серверу и больше никуда.

    Допустим, наша задача более широка, и мы хотим использовать VPN-сервер для доступа в корпоративную сеть. Для этого нам понадобиться настроить NAT. Делается это довольно просто командой SecureNATEnable. Автоматом вместе с NAT включается и DHCP.

    Вообще, SecureNAT — это довольно интересная технология от авторов SoftEtherVPN. Как мы знаем, трансляция сетевых адресов в *NIX-системах осуществляется в ядре, соответственно для настройки NAT нужно иметь права суперпользователя. Создатели SoftEtherVPN решили, что это слишком излишне и написали свой собственный кастомный стек TCP/IP для того, чтобы фильтрация и натирование осуществлялось в userspace. Прикольная задумка, не знаю стоило ли оно того, но работает — это факт!
    Сменить адрес интерфейса SecureNAT’a можно командой SecureNatHostSet (по умолчанию 192.168.30.1/24), а диапазон выдаваемых адресов и другие опции DHCP (например, основной шлюз и DNS-сервера) — командой DhcpSet. Не правда ли, дружелюбная CLI? Например если ввести «secure?» и нажать Enter, то выведется список возможных автодополнений:

    VPN Server/vpn>secure?
    «secure»: The command-name is ambiguous.
    The specified command name matches the following multiple commands.
    SecureNatDisable — Disable the Virtual NAT and DHCP Server Function (SecureNat Function)
    SecureNatEnable — Enable the Virtual NAT and DHCP Server Function (SecureNat Function)
    SecureNatHostGet — Get Network Interface Setting of Virtual Host of SecureNAT Function
    SecureNatHostSet — Change Network Interface Setting of Virtual Host of SecureNAT Function
    SecureNatStatusGet — Get the Operating Status of the Virtual NAT and DHCP Server Function (SecureNat Function)
    Please re-specify the command name more strictly.

    По умолчанию никакая фильтрация пакетов не применяется, т.е. впн-клиенты могут неограниченно ходить в корпоративную подсеть и пользоваться корпоративным Интернетом, если таковой имеется. При желании можно добавить правила файрволла командой AccessAdd. В качестве критериев файрволла можно указать имя пользователя, MAC и IP адреса источника и назначения, порты, протоколы и флаги TCP. И самое главное, что это работает, я проверял! Учтите еще, что правила фильтрации разных виртуальных хабов никак не влияют друг на друга, что позволяет гибко управлять доступом к корпоративной среде.

    В качестве приятного бонуса доступен Dynamic DNS от softether.net. Свой VPN-сервер можно зарегить в DDNS командой DynamicDnsSetHostname, после чего нужно ввести желаемое имя домена 3-го уровня. Получится что-то вроде myvpn.softether.net. Согласитесь, мелочь, а приятно и притом совершенно бесплатно!

    Поговорим о протоколах VPN. Я протестил L2TP/IPsec и OpenVPN. Настройка двух, казалось бы, таких разных протоколов оказалась довольно простой. OpenVPN включен изначально на порту 1194 UDP, но чтобы оно заработало нужно в режиме глобального сервера (команда Hub без параметров) ввести IPsecEnable, после чего ответить на ряд вопросов на предмет того, хотим ли мы включить голый L2TP, шифрованный L2TP/IPsec, а также L2TPv3/IPsec. Самые главные вопросы — это Pre-shared key (PSK) для IPsec и Default Hub. С PSK все понятно, это ключ, который необходимо ввести на клиентском устройстве, а вот про Default Hub расскажу поподробнее.

    Дело в том, что тот же OpenVPN работает не через IPsec, но наследует политику учетных записей из IPsec. Поэтому при попытке коннекта по протоколу OpenVPN будет запрошено имя пользователя и пароль. Имя пользователя обязательно нужно вводить в формате «пользователь@хаб», но если мы указываем, какой хаб использовать по умолчанию, то «@хаб» можно опустить.

    Сгенерировать конфиг-файл для OpenVPN можно командой OpenVpnMakeConfig, после чего указать местоположение, куда сохранить сгенереный файл. Этот файл можно тут же скормить OpenVPN клиенту и коннект пойдет. Файл предоставляется сразу в двух вариантах — Layer2VPN и Layer3VPN, то бишь VPN-сервер как свич, и VPN-сервер как роутер. И то, и другое прекрасно работает. Удобно!

    Настройка L2TP/IPsec оказалась вообще тривиальной: на сервере после команды IPsecEnable ничего менять уже не надо, а в настройках например виндового встроенного VPN-клиента нужно указать протокол «L2TP IPsec VPN», в дополнительных параметрах указать предварительный ключ (PSK), который мы уже устанавливали, ну и, само собой, ввести учетные данные в формате, о котором я упоминал выше.
    Аналогичным образом все настраивается на Андроиде. Было проверено на 4.2.1, все работает с использованием только стандартных инструментов.

    Вывод: SoftEtherVPN — очень мощное и, самое главное, удобное средство построения VPN-туннелей. Конечно, я протестировал далеко не все возможности, но в большинстве случаев хватает и тех, что я написал. В ближайшем будущем постараюсь выложить сравнительные тесты производительности, а также тесты таких смешных штук как VPN over ICMP и DNS. С протоколами SSL VPN и MS SSTP пока связываться не хочу, т.к. неохота возиться с сертификатами, к тому же надо еще посмотреть на такие фичи проги, как Load Balancing aka кластеризация, отказоустойчивость, авторизация из RADIUS и AD и Layer2 VPN, включая VLAN-транкинг!

    Так что, мне кажется, софтина стоит, как минимум, того, чтобы приглядеться к ней повнимательнее. Производитель позиционирует свой продукт, как во всем превосходящий OpenVPN, даже обещает throughput под гигабит. В общем, надо тестить! На данном этапе мне эта штукенция очень даже нравится.

    источник

  • Добавить комментарий

    Adblock
    detector