Softether vpn server настройка centos

Обновлено: 05.07.2024

В этой статье я рассмотрю на практике полный алгоритм настройки VPN сервера на примере CentOS 7.6. Мы одновременно включим и L2TP и PPTP сервер.

Для работы VPN в Linux необходимо настроить 3 слоя: IPsec, L2TP и PPP. Причем, PPP будет общий для L2TP и PPTP серверов. Настройка L2TP сложнее, чем PPTP. В ней:

  1. IPsec обеспечивает конфиденциальность сетевого соединения и авторизации клиента (системы)
  2. С L2TP туннель настроен так, что VPN трафик прозрачно проходит через IPsec
  3. PPP (протокол точка-точка) контролирует авторизацию пользователей

Настройка VPN PPTP

Перед началом установки непосредственно сервера я рекомендую обновить пакеты и установить Midnight Commander (mc) и VestaCP для удобства. Вместе с VestaCP поставится большая часть пакетов, поэтому часть команд ниже будут излишними, не пугайтесь. В mc удобнее редактировать конфиг файлы.

yum install -y epel-release yum install -y mc yum install -y net-tools

Далее необходимо отключить Selinux.
Система принудительного контроля Selinux отключается правкой конфигурационного файла /etc/sysconfig/selinux.

или заменяем значение командой sed:

sed -i 's/\(^SELINUX=\).*/\SELINUX=disabled/' /etc/sysconfig/selinux sed -i 's/\(^SELINUX=\).*/\SELINUX=disabled/' /etc/selinux/config

После перезагрузки проверьте статус SELinux командой « sestatus », Вы должны увидеть следующий вывод:

Переходим к установке PPTP VPN сервера и добавлении его в автозагрузку:

yum install -y ppp pptp pptpd pptp-setup chkconfig pptpd on

Файл /etc/pptpd.conf

cp /etc/pptpd.conf /etc/pptpd.conf.bak

cat >/etc/pptpd.conf<<EOF
option /etc/ppp/options.pptpd
logwtmp
localip 172.16.0.1
remoteip 172.16.0.10-254
EOF

Если на вашей машине несколько внешних IP адресов, то вы можете указать конкретный IP, по которому будет доступно подключение к VPN серверу. В конце файла добавьте:

ms-dns 8.8.8.8 ms-dns 8.8.4.4

Также добавляем метод mschap2: require-mschap-v2

cp /etc/ppp/options.pptpd /etc/ppp/options.pptpd.bak

cat >/etc/ppp/options.pptpd<<EOF
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
ms-dns 8.8.8.8
ms-dns 8.8.4.4
EOF

cp /etc/ppp/chap-secrets /etc/ppp/chap-secrets.bak

Устанавливаем права на файл паролей, чтобы только root его мог читать:

chmod 600 /etc/ppp/chap-secrets

cp /etc/sysctl.conf /etc/sysctl.conf.bak

cat >/etc/sysctl.conf<<EOF
net.core.wmem_max = 12582912
net.core.rmem_max = 12582912
net.ipv4.tcp_rmem = 10240 87380 12582912
net.ipv4.tcp_wmem = 10240 87380 12582912
net.core.wmem_max = 12582912
net.core.rmem_max = 12582912
net.ipv4.tcp_rmem = 10240 87380 12582912
net.ipv4.tcp_wmem = 10240 87380 12582912
net.core.wmem_max = 12582912
net.core.rmem_max = 12582912
net.ipv4.tcp_rmem = 10240 87380 12582912
net.ipv4.tcp_wmem = 10240 87380 12582912
net.ipv4.ip_forward = 1
EOF

На этом установка и настройка VPN PPTP сервера закончена.

Удаляем firewalld (если не удален или не отключен):

systemctl stop firewalld systemctl disable firewalld

и вместо него ставим IPTABLES:

yum install iptables-services iptables

Включим автозапуск iptables:

systemctl enable iptables chmod +x /etc/rc.d/rc.local

Cохраняем и перезапускаем всё: файерволл и сервер PPTP VPN.

service iptables save service iptables restart systemctl start pptpd

Обратите внимание, если при редактировании конфигурационного файла iptables не сохраняются настройки, а после перезагрузки файл принимает своё первоначальное значение, то для того, чтобы после редактирования файла изменения вступили в силу, необходимо перед редактированием отключить файервол iptables:

systemctl stop iptables

Затем отредактировать файл /etc/sysconfig/iptables, сохранить изменения

service iptables save

И, наконец, запустить сервиc

systemctl start iptables

iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE iptables -I INPUT -s 172.16.0.0/24 -i ppp0 -j ACCEPT iptables --append FORWARD --in-interface eth0 -j ACCEPT

Если вы решили не отключать firewalld и не использовать iptables, то вам потребуются следующие команды для настройки файрвола:

firewall-cmd --permanent --add-service=pptpd firewall-cmd --permanent --add-port=1723/tcp firewall-cmd --permanent --add-port=22/tcp firewall-cmd --permanent --add-service=ipsec firewall-cmd --permanent --add-service=l2tpd firewall-cmd --permanent --add-port=1701/udp firewall-cmd --permanent --add-port=4500/udp firewall-cmd --permanent --add-masquerade firewall-cmd --reload

ps ax | grep pptpd

Проверяем, слушается ли наш порт:

netstat -an | grep -i listen

Дополнительная команда для проверки статуса pptpd:

systemctl status pptpd

Настройка L2TP VPN

Второй уровень, протокол туннелирования второго уровня (L2TP), настраивается намного проще, чем IPsec, поэтому начнем с него. L2TP абсолютно небезопасен и не должен быть доступен вне соединения IPsec. При использовании iptables, примените следующие правила, чтобы заблокировать все соединения L2TP вне ipsec:

iptables -t filter -A INPUT -p udp -m policy --dir in --pol ipsec -m udp --dport l2tp -j ACCEPT iptables -t filter -A INPUT -p udp -m udp --dport l2tp -j REJECT --reject-with icmp-port-unreachable iptables -t filter -A OUTPUT -p udp -m policy --dir out --pol ipsec -m udp --sport l2tp -j ACCEPT iptables -t filter -A OUTPUT -p udp -m udp --sport l2tp -j REJECT --reject-with icmp-port-unreachable

yum install -y xl2tpd libreswan lsof

Бэкапим дефолтный конфиг:

cp /etc/xl2tpd/xl2tpd.conf /etc/xl2tpd/xl2tpd.conf.orig

Правим /etc/xl2tpd/xl2tpd.conf, указывая свои IP. В отличие от других серверов L2TP, xl2tpd может поддерживать пул IP-адресов без серверов DHCP или RADIUS.

В секцию [global] добавим (это обязательно для CentOS 6, не в 7.6 мне не потребовалось):

[global] ipsec saref = yes force userspace = yes [lns default] ip range = 172.21.118.2-172.21.118.254 local ip = 172.21.118.1 require authentication = yes name = LinuxVPN pppoptfile = /etc/ppp/options.xl2tpd

Для использования сервера RADIUS или DHCP, оставьте отключенными опции ip range и local ip . Если соединение нестабильно, попробуйте добавить length bit = yes в раздел lns default . Чтобы не использовать PPP аутентификацию, замените require authentication = yes на refuse authentication = yes .

Создаем новый файл options.xl2tpd опций с таким содержимым:

ipcp-accept-local ipcp-accept-remote ms-dns 8.8.8.8 ms-dns 8.8.4.4 auth idle 1800 mtu 1410 mru 1410 nodefaultroute debug proxyarp connect-delay 5000 name xl2tpd refuse-pap refuse-chap refuse-mschap require-mschap-v2 persist logfile /var/log/xl2tpd.log

Настройка IPsec

Есть несколько вариантов и пакетов для настройки IPsec: ipsec-tools, LibreSwan (OpenSwan) и strongSwan. ipsec-tools (racoon) наименее функционален, но для тех, кто пришёл из *BSD, он может быть более близок. Однако, в отличие от *BSD, Linux не использует отдельный интерфейс для IPsec. strongSwan – это ответвление от FreeS/WAN. LibreSwan – ответвление от Openswan (который сам является ответвлением от FreeS/WAN) с сохранением его оригинальных разработчиков. Мы будем использовать именно LibreSwan, который мы уже ранее установили. Обход NAT установлен по умолчанию в файле конфигурации LibreSwan, таким образом никаких особых этапов настройки не требуется.

Желательно иметь каждую настройку VPN в своём собственном файле, что может быть сделано раскомментированием последней строки в /etc/ipsec.conf:

Основные конфигурационные файлы для LibreSwan это:

  • /etc/ipsec.conf – определяет параметры IPSEC-соединений и параметры подключений в целом;
  • /etc/ipsec.secrets – ключи и пароли для шифрования

Файл /etc/ipsec.conf разбит на разделы:

  • config setup – глобальные параметры и опции
  • conn %default – параметры ipsec-соединений по-умолчанию. Если в отдельных параметрах соединений не указан параметр, то используются параметры отсюда.

Например: conn SomeTunnel – раздел с параметрами соединения SomeTunnel

Файл /etc/ipsec.secrets содержит неограниченное количество типов ключей (паролей).

Основные параметры команды ipsec, которая управляет подключениями LibreSwan :

  • start|restart|stop;
  • ipsec status|statusall — для просмотра состояния IPSEC-соединений;
  • up|down|route|unroute — для управления IPSEC-соединений.

Логи хранятся в /var/log/auth.log и /var/log/daemon.log.

Создаем файл настроек с таким содержимым:

conn L2TP-PSK-NAT rightsubnet=0.0.0.0/0 dpddelay=10 dpdtimeout=20 dpdaction=clear forceencaps=yes also=L2TP-PSK-noNAT conn L2TP-PSK-noNAT authby=secret pfs=no auto=add keyingtries=3 rekey=no ikelifetime=8h keylife=1h type=transport left=1.1.1.1 leftprotoport=17/1701 right=%any rightprotoport=17/%any

Ну и так как мы задали тип авторизации с помощью PSK , то давайте запишем секретное слово в файл ipsec . secrets .

Ключ может быть задан строкой в кавычках или шестнадцатеричным числом. В следующем примере PUT_VPN_SERVER_IP должен быть заменён на IP-адрес сервера. Можно использовать доменное имя, но оно не рекомендовано разработчиками LibreSwan. Опция %any позволяет любым клиентам использовать этот PSK. Также можно IP не указывать как в нашей конфигурации выше.

SoftEther VPN появился в далеком 2003 году в университете японского города Цукуба. Проект был разработан одним из студентов университета Daiyu Nobori, после того как в сети университетского кампуса перестал работать PPTP, хотя по другим данным, это был его дипломный проект.

Время шло, проект развивался, и был выкуплен японской корпорацией Mitsubishi, которая подписала десятилетний контракт на выпуск и распространение программы. Однажды SoftEther запретили, правительство Японии посчитало его вредоносной программой.

По окончанию действия контракта с Mitsubishi, в январе 2014 года SoftEther начинает распространяться под свободной GPLv2 лицензией, что делает его доступным для всех желающих.

SoftEther пробивается через файрволы и NAT механизмы применяя технологии TCP NAT traversal и TCP hole punching, при этом не забывая маскировать трафик. Данные могут передаваться не только с помощью TCP/UDP протоколов, а также с помощью имитации ICMP (пинг) и DNS запросов.

SoftEther не требователен к типам виртуализации, в отличии от OpenVPN, которому для работы требуется наличие TUN/TAP устройств в ядре. Поэтому SoftEther работает на любых VPS/VDS и это еще один плюс в копилку.

Клиентское и серверное ПО существует практически для всех распространенных операционных систем. Процесс компиляции исходного кода при установке в UNIX-системах минимизирован настолько, что с ним легко справится любой пользователь.

ПО SoftEther состоит из нескольких компонентов:

  • Server - самый полный набор, включает в себя Server, Bridge и VPN Server Manager (в версии для Windows).
  • Bridge - позволяет подключать локальные сети к VPN-тоннелям.
  • VPN Server Manager - утилита с графическим интерфейсом в системе Windows. Используется для администрирования локальных и удаленных VPN-серверов. Является самым удобным средством администрирования и управления. Устанавливается отдельно.
  • vpncmd - утилита администрирования командной строки, как в терминалах UNIX-систем, так и в командной строке Windows. В UNIX-системах ставится вместе с сервером. В Windows идет в комплекте с VPN Server Manager.
  • Client - клиент для подключения к сети VPN.

Установка SoftEther VPN Server

Установим утилиты для компилирования.

Переходим в каталог /usr/local.

Переходим на сайт SoftEther, выбираем нужное и копируем полученную ссылку.

softether vpn server linux

Скачиваем исходники SoftEther.

Распаковываем скачанный архив.

Переходим в каталог vpnserver.

Компилируем и устанавливаем.

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

Находясь внутри каталога vpnserver зададим права доступа для файлов.

Проведем проверку системы на совместимость с SoftEther. Чтобы провести проверку нужно попасть в консоль управления vpncmd.

" All checks passed " означает что тесты пройдены и Softether может работать в системе. Для выхода из консоли используют команды: exit, quit или сочетание клавиш Ctrl+C.

Настройка SoftEther в консоли управления

SoftEther установлен и может работать в системе. Теперь нужно провести начальную настройку, а чтобы провести настройку нужно запустить SoftEther.

Выполняем команду ./vpnserver start находясь внутри каталога /usr/local/vpnserver.

Vpncmd позволяет администрировать не только локальные, но и удаленные сервера. В нашем случае нужно настроить локальный сервер, поэтому в строке Hostname of IP Address of Destination вводим localhost и нажимаем Enter.

По умолчанию соединение устанавливается на 443 порту. Если вдруг 443 порт занят другой программой, такое бывает если SoftEther установлен не на чистую систему, то войти в консоль не получится.

В таком случае к значению localhost через двоеточие добавляют нужный порт. Кроме 443-го порта SoftEther слушает еще три: 992, 1194 и 5555. Можно указать любой из них.

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

Управление сервером осуществляется посредством определенных команд (205 штук). Список команд можно просмотреть через --help.

Установка пароля администратора

Первым делом установим пароль администратора (ServerPasswordSet).

Создание виртуального хаба

Виртуальный хаб представляет собой подобие сервера со своими настройками, протоколами VPN, своими пользователями и администраторами, а также со своими настройками безопасности. На одном сервере может быть создано до 4096 виртуальных хабов. Хабы не контактируют друг с другом, за исключением случаев когда их специально объединяют в мосты.

По умолчанию на сервере уже есть дефолтный хаб (DEFAULT), удалим его (HubDelete) и создадим свой. Во время выполнения будет запрошено имя хаба для удаления.

Создадим новый виртуальный хаб (HubCreate). Зададим имя нового хаба и пароль.

Список доступных хабов можно просмотреть командой HubList. Команда показывает не только хабы, но и их статистику.

Настроим созданный хаб (Hub). Через пробел указываем имя хаба для настройки.

Консоль управления хабом.

Создадим пользователя (UserCreate). Группу, полное имя и описание заполняем по желанию (можно пропустить нажав Enter).

Зададим пароль пользователя (UserPasswordSet).

Создание локального моста

Поскольку Local Bridge работает совместно с TAP устройством, то данный шаг могут пропустить те пользователи, чьи VPS/VDS не поддерживают драйвера TUN/TAP. Такие пользователи в дальнейшем будут использовать режим SecureNAT.

Использование SecureNAT рассмотрим немного позже, а пока создадим Local Bridge, те кто пропускает переходят сразу к автозапуску.

Для создания Local Bridge используется команда BridgeCreate, синтаксис выглядит следующим образом.

Список и статус мостов можно просмотреть командой Bridgelist. Если в статусе висит значение Operating, это значит что все в порядке и мост готов к работе.

После того как Local Bridge создан, в системе должен появиться интерфейс tap_vpn.

Как можно видеть tap интерфейс пока еще не имеет IPv4 адреса, это нормально, адрес зададим позже.

Если CentOS ругается на отсутствие ifconfig, то нужно поставить. В Debian/Ubuntu пакет присутствует по умолчанию.

Автозапуск VPN Server

Запускать сервер вручную неудобно. Напишем скрипт для автозапуска сервера.

Создаем скрипт (vpnserver) в каталоге /etc/init.d.

Скрипт автозапуска для CentOS

Содержимое скрипта для CentOS.

Права доступа на файл скрипта.

Добавим скрипт в автозапуск.

Запустим vpnserver с помощью systemctl.

Проверим как работает.

Скрипт автозапуска для Ubuntu/Debian

Содержимое скрипта для Ubuntu/Debian.

Права доступа на файл скрипта.

Добавим скрипт в автозапуск.

Запустим vpnserver с помощью systemctl.

Проверим как работает.

Теперь vpnserver будет стартовать самостоятельно после включения или перезагрузки системы и управляться стандартными systemctl-командами.

Сетевые режимы SoftEther VPN Server

У SoftEther есть два механизма передачи трафика: SecureNAT и Local Bridge.

SecureNAT

SecureNAT - собственная технология SoftEther, создающая закрытую сеть и состоящая из двух частей: виртуального NAT и виртуального DHCP-сервера.

securenat softether vpn server linux

SecureNAT не требователен к типу виртуализации VPS/VDS серверов, так как работает без TUN/TAP. Для SecureNAT не нужна настройка iptables или другого фаервола, кроме открытия порта на котором будут приниматься соединения от клиентов.

Маршрутизация трафика осуществляется не затрагивая ядра системы. Все процессы полностью виртуализированы. Отсюда возникают минусы режима, повышенная нагрузка на процессор и потеря в скорости, если сравнивать с Local Bridge.

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

Активация режима SecureNAT

Чтобы включить режим SecureNAT перейдем в консоль управления хабом и выполним команду SecureNatEnable.

Узнать текущий статус можно командой SecureNatStatusGet.

Команда показывает количество сессий, подключенных клиентов и текущий статус SecureNAT. Значения "Yes" говорят что режим SecureNAT сейчас активен.

Как я уже писал выше, SecureNAT не требует настройки фаервола для маршрутизации трафика. Достаточно просто открыть порт, на котором vpnserver будет принимать входящие соединения от клиентов.

Добавим правило iptables открывающее 443 порт (или любой другой).

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

Обзор сетевых настроек SecureNAT

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

Текущие сетевые настройки можно узнать командой SecureNatHostGet.

По умолчанию SecureNAT использует подсеть 192.168.30.0/24.

Данная подсеть не относится только к SecureNAT, она также используется и в режиме Local Bridge. Это собственная подсеть виртуального хаба. Так что если возникнет необходимость в изменении подсети для моста, то это делается здесь.

Адрес подсети можно изменить командой SecureNatHostSet.

Теперь мы используем подсеть 192.168.100.0/24.

Клиент подключающийся к хабу получает ip-адрес из диапазона его подсети. Раздачей адресов управляет виртуальный DHCP-сервер. Просмотреть текущие настройки DHCP можно командой DhcpGet.

Изменим текущие настройки под новую 192.168.100.0/24 подсеть (DhcpSet).

Я задал диапазон выдаваемых адресов с 192.168.100.10 по 192.168.100.100, маску подсети, шлюз и DNS-сервера. Lease Limit (срок аренды) оставил по умолчанию.

Новые настройки DHCP теперь выглядят так.

Если сейчас подключиться к VPN, открыть командную строку Windows и выполнить команду ipconfig, то можно увидеть следующую картину.


Компьютер теперь имеет адрес 192.168.100.10, шлюзом выступает 192.168.100.1, сеть называется "myvpn". Как и было задано при настройке.

DHCP-сервер можно отключить, команда DhcpDisable.

Если забыть включить DHCP, то адреса клиентам выдаваться не будут, но клиент все равно будет подключен к серверу. При этом трафик будет идти с вашего основного адреса. Невнимательный пользователь будет уверен что скрывает свой IP, но на самом деле это не так. По умолчанию DHCP включен всегда и лучше его не трогать.

Отключение SecureNAT

Для выключения SecureNAT команда SecureNatDisable.

Local Bridge

Local Bridge полностью отличается от SecureNAT. Этому режиму требуется поддержка TUN/TAP устройств, поэтому его можно использовать не на всех VPS/VDS, а только на имеющих возможность их загрузки. Кроме того, вся настройка Local Bridge, от начала и до конца, делается ручками.

Плюсами Local Bridge являются более высокая скорость, надежность и безопасность.


Local Bridge соединяет хаб с физическим или tap-адаптером. Маршрутизация трафика происходит в ядре системы с помощью netfilter/iptables.

DHCP для Local Bridge

Local Bridge не имеет своего DHCP сервера, поэтому приходится устанавливать еще и DHCP сервера. В CentOS устанавливают dhcp, в Ubuntu/Debian устанавливают isc-dhcp-server.

Установим dhcp для CentOS.

Установим isc-dhcp-server для Ubuntu/Debian.

Отредактируем файл настроек dhcp-сервера, он одинаков везде.

Содержимое файла dhcpd.conf.

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

Исходя из адреса дефолтной подсети (192.168.30.0/24), я задал следующие значения:

  • domain-name - имя сети, может быть любым.
  • domain-name-servers - адреса DNS, можно указать адрес шлюза или прямой адрес предпочитаемого сервера. (192.168.30.1)
  • default-lease-time - срок аренды ip-адреса клиентом, если клиент самостоятельно не указывает срок аренды адреса.
  • max-lease-time - максимальный срок аренды адреса клиентом.
  • subnet - адрес подсети (192.168.30.0)
  • netmask - маска подсети (255.255.255.0)
  • range - диапазон адресов для выдачи (от 192.168.30.10 и до 192.168.30.200)
  • option routers - шлюз (192.168.30.1)

Значения "lease-time" задаются в секундах, я задал 12 и 24 часа соответственно. Если выставить маленькие значения, то по истечению срока соединение будет разрываться, что не есть хорошо при длительной работе.

Сделаем интерфейс tap_vpn шлюзом подсети, назначив ему адрес 192.168.30.1

Проверим как работает в CentOS (systemctl status dhcpd)

Проверим как работает в Debian/Ubuntu (systemctl status isc-dhcp-server)

Автозапуск DHCP при старте vpnserver

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

Для этого добавим две команды непосредственно в скрипт автозапуска vpnserver.

Отредактируем скрипт /etc/init.d/vpnserver.

Приводим содержимое скрипта к следующему виду в CentOS.

Приводим содержимое скрипта к следующему виду в Ubuntu/Debian.

Выполняем systemctl daemon-reload, чтобы принять изменения в скриптах.

Перезагружаем vpnserver или систему.

Сразу после загрузки/перезагрузки проверяем интерфейс и dhcp.

Форвардинг пакетов и iptables

Включим форвардинг пакетов и добавим правила для маршрутизации трафика.

Если все сделано правильно, можно подключаться и начинать пользоваться собственным VPN. Установка и настройка на этом завершены.

Поддерживаемые протоколы: OpenVPN, IPsec, L2TP, MS-SSTP, L2TPv3 и EtherIP.

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

  1. Сервер SoftEther VPN (можно сохранить ссылку, и скачать прямо на сервер).
  2. Приложение SoftEther VPN Server Manager.
  3. И приложение SoftEther VPN Client Manager.

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

Подготовительные действия перед установкой SoftEther VPN сервера

  • Перед установкой сервера SoftEther, нужно установить некоторые пакеты. Если они у Вас уже установлены, то пропускаем этот шаг.
  • Заходим в рабочую директорию, в которой будем производить все манипуляции.
  • Если Вы не скачивали сервер, а просто сохранили ссылку, то самое время скачать его при помощи утилиты wget.
  • В противном случае, добавьте архив сервера любым удобным Вам способом.

Ссылка на последнюю версию сервера, на момент написания статьи, выглядит таким образом:

Установка сервера SoftEtherVPN

  • Заходим в директорию с сервером, и запускаем установку.
  • По завершении установки, нужно добавить необходимые права.
  • Нужно проверить – всё ли установилось как нужно.
  • Заходим в консоль управления.

Нам доступны три раздела:

  • Управление VPN сервером или VPN мостом.
  • Редактирование VPN клиента.
  • VPN утилиты.
  • Для запуска проверки, выбираем (3), и далее вводим команду check.
  • Если всё было сделано правильно, то вывод результатов проверки, будет таким как на картинке ниже.
  • Выходим из консоли управления VPN сервером, любым из трёх способов: «еxit, quit или сочетание клавиш Ctrl+C».
  • Следующим шагом, предлагаю отредактировать конфигурационный файл SoftEther VPN сервера. Дело в том, что по умолчанию на сервере включено WebApi. Если Вы зайдёте на работающий порт сервера через браузер, то откроется информационная страница, с пояснениями и ссылками, касающимися Вашего сервера. Не думаю, что посторонним нужно видеть эту информацию.

Прежде чем начать редактирование, нужно остановить сервер.

  • Конфигурационный файл находится по адресу /usr/src/vpnserver/vpn_server.config, открываем файл и вносим изменения.

Настройка SoftEther VPN сервера через консоль управления

  • Появляются знакомые три раздела. Но на это раз, нас интересует раздел (1). После перехода, нам предлагают выбрать хост и порт для настройки. Выбираем просто localhost.
  • После выбора хоста, нам предлагают выбрать хаб. Так как мы ещё не создавали хабов, то просто жмём на «Enter».
  • На следующем шаге создаём пароль для администратора.
  • Выполняем команду ServerPasswordSet, и создаём сложный пароль.
  • В последствии, этот пароль понадобится для управления сервером через терминал, и для подключения к серверу, при помощи программы SoftEther VPN Server Manager.
  • Следующим шагом, удалим хаб по умолчанию. Выполняем команду HubDelete, и вводим название дефолтного хаба DEFAULT.
  • Теперь можно создать наш собственный хаб. Выполняем команду HubCreate, вводим имя хаба (на своё усмотрение), я буду использовать ХХХ, и при желании создаём пароль. Минус в создании пароля – это то, что в дальнейшем при каждом обращении к хабу, нужно будет вводить пароль. Поэтому можно не создавать пароля, а просто нажать на «Enter», при появлении приглашения на создание и подтверждение пароля.
  • Проверяем – создался ли наш хаб. Выполняем команду HubList. Как видно на картинке, наш хаб создан.
  • Переходим к настройке хаба. Выполняем команду Hub XXX, в которой XXX название нашего хаба соответственно.

В режиме настройки хаба, можно выполнять например такие действия, как создание пользователя UserCreate, удаление пользователя UserDelete, создание пароля пользователя UserPasswordSet, и многие другие. Но всё это можно делать используя программу SoftEther VPN Server Manager, которой мы и воспользуемся позже.

  • Переходим к созданию моста, и tap-интерфейса для нашего хаба.
  • Выполняем команду: BridgeCreate XXX -device:vpn -tap:yes
  • Проверяем всё ли создано верно. Выполняем команду Bridgelist.
  • Настройка SoftEther VPN сервера в консоли сервера завершена. Выходим из консоли любым из трёх способов: «еxit, quit или сочетание клавиш Ctrl+C».

Настройки для SoftEther VPN Server в системе

  • Если команда ifconfig не работает, то нужно произвести установку дополнительных утилит.
  • Если всё верно, то вывод в консоли будет таким, как на картинке.
  • Для удобства, сделаем VPN сервер управляемым через systemctl, и добавим в автозагрузку сам сервер, и необходимые для его функционирования компоненты.
  • Предварительно нужно остановить сервер. Заходим в директорию SoftEther VPN сервера, и останавливаем его.
  • Создаём скрипт автозапуска /etc/init.d/vpnserver.
  • Делаем необходимые на файл скрипта разрешения, добавляем его в автозагрузку, и перезапускаем systemctl.
  • Теперь управление работой VPN сервера, можно производить как с обычной службой.
  • Запускаем VPN сервер.

Настройка DHCP для SoftEther VPN сервера

  • По умолчанию, в режиме Local Bridge нет функции DHCP-сервера. Поэтому нужно установить, и настроить DHCP-сервер, на работу в связке с SoftEther VPN.
  • Устанавливаем DHCP-сервер.
  • Редактируем конфигурационный файл /etc/dhcp/dhcpd.conf, для работы в связке с SoftEther VPN сервером.
  • Для удобства, настраиваем логирование DHCP-сервера в отдельный файл. Для этого редактируем файл /etc/rsyslog.conf.
  • Запускаем и добавляем DHCP-сервер в автозагрузку.
  • Следующим шагом, нужно включить маршрутизацию в системе. Добавляем в файл /etc/sysctl.conf одну строчку.

Настройка Firewall для работы SoftEther VPN сервера

  • VPN сервер будет работать на 443 порту.
  • Вот команды для iptables.
  • Не забудьте вставить ip-адрес Вашего сервера.
  • А можно добавить выше указанные правила, и ещё несколько дополнительных полезных правил, при помощи скрипта. Не забудьте вставить ip-адрес Вашего сервера.
  • На этом настройки в терминале сервера завершены. Остальные настройки будем производить при помощи программы SoftEther VPN Server Manager.

Настройка SoftEther VPN сервера программой SoftEther VPN Server Manager

  • Запускаем программу, для добавления сервера, в открывшемся окне кликаем по «New Setting».

В открывшемся окне вводим данные для подключения к серверу:

  1. Ip-адрес сервера.
  2. Порт для подключения.
  3. Пароль администратора (создан нами в консоли управления VPN сервера).
  4. Кроме того, можно выбрать режим подключения (администратор сервера или администратор хаба).
  • При первом подключении, нам предлагают настроить дополнительные протоколы, для подключения смартфонов.
  • Закрываем окно, так как мы не будем использовать данные протоколы. Доступные протоколы, при необходимости, можно активировать позднее, в любое удобное время.
  • В окне управления сервером, всё интуитивно понятно.
  • Сверху список имеющихся на сервере хабов .
  • Под списком - кнопки с возможными опциями, для управления хабами.
  • Ниже находится список прослушиваемых портов, настройки сети и шифрования, доступ к конфигурации сервера, и проверка статуса.
  • В самом низу расположены кнопки, для активации и настройки дополнительных протоколов.

Окно управления хабом выглядет следующим образом:

  • Сверху находятся разделы для управления группами, пользователями, листом доступа, и окно с выводом статуса хаба.
  • Ниже находятся разделы для управления свойствами хаба, настройками аутентификации, управление каскадными подключениями, настройками логирования, настройками сертифицирования, настройками режима SecureNat, и управление сессиями.
  • Желательно отключить пакетное логирование, так как в противном случае, логи будут расти до неимоверных размеров.
  • Нужно зайти в настройки логирования, и снять галку – как показано на картинке.
  • Для создания пользователя, нужно зайти в раздел «Manage Users» хаба. В открывшемся окне, можно создать пользователя, настроить ему метод аутентификации, задать отдельную политику, а так же задать пользователю ограниченное время существования профиля.
  • Я создам для примера пользователя user, и настрою ему аутентификацию по паролю.
  • После создания, пользователь появляется в списке доступных пользователей.

Подключение к VPN серверу программой SoftEther VPN Client Manager

  • Теперь можно запускать программу SoftEther VPN Client Manager, и пробовать подключиться к нашему серверу.
  • Запускаем программу.
  • Нас интересует строчка «Add VPN Connection, кликаем по ней дважды.

Открывается окно с настройками для нового подключения:

  1. Ip-адрес сервера.
  2. Порт для подключения и название Вашего хаба.
  3. Имя пользователя и пароль ( пользователь и пароль, созданные на предыдущем шаге).
  4. После внесения всех данных, жмём на «ОК»
  • В окне программы-клиента, появляется строчка с новым подключением.
  • Дважды кликаем по строчке с нашим подключением. Если всё было сделано правильно, то в итоге, наш компьютер подключится к VPN-сети, и получит настройки с Ip-адресом.

Сегодня мы рассмотрели тему: "Установка сервера SoftEther (Local Bridge)". Произвели установку, настройку, и подключение к серверу SoftEther VPN в режиме Local Bridge. Смотрите так же видео по теме.

Надеюсь статья была вам полезна. До встречи в новых статьях.

Видео на тему "Установка сервера SoftEther (Local Bridge)":

Понравилась статья?
Напиши Комментарий, и Поделись с Друзьями!

wm-logo


WMZ-кошелёк = Z667041230317
WMR-кошелёк = R571680308266 ✔ Для вас важна анонимность и безопасность в сети Internet?
✔ Вы боитесь доверять сторонним VPN сервисам из-за утечки информации?
✔ Вам нужен VPN, где гарантированно не ведутся логи?
✔ Хотите иметь возможность делиться VPN со своими близкими и друзьями?
✅ Лучшим решением будет - Персональный VPN-Cервер , работающий только для Вас.

* В зависимости от хостинг-провайдера и параметров самого сервера, ежемесячная оплата сервера, может быть дешевле, чем покупка многих платных vpn-клиентов (от 100 руб в месяц).

* При покупке платных vpn-клиентов, Вам предоставляют возможность одновременного использования максимум 5 устройств-клиентов, иногда даже с ограниченным трафиком. В случае с Персональным VPN-сервером, количество устройств-клиентов зависит от Вашего желания, и ограничивается только ресурсами самого сервера.

* Так как многие Vpn-сервисы в какой-либо форме производят сбор данных о своих пользователях, Персональный Vpn-сервер – это ещё и защита от утечек информации.

- Если у Вас уже есть работающий VDS или выделенный сервер (отвечающий необходимым параметрам), то стоимость настройки составит - всего 500 руб.

Добавил в скрипт все порты которые только могут пригодиться, но все равно с телефона не подключается, что я делаю не так? или куда копать вообще? еще может какие то порты надо открыть?

Доброго времени суток!

У меня протоколы L2TP/IPSec и им подобные, блокируются провайдером. Поэтому я не рассматриваю их вообще, и в частности не рассматривал настройку этих протоколов в данной статье.

Если заработало, то поздравляю! И спасибо за комментарий с разъяснением и правилами. Может быть кому-нибудь понадобиться.

Осмелюсь поделиться своим маленьким успехом, юзаю впн как с компьютера так и с телефона, поэтому L2TP/IPSec мне важен. В итоге после нескольких дней приключений, в числе которых была также утрата доступа к серверу по SSH с последующим его восстановлением, я пришел к следующему варианту, данный вариант скрипта у меня сработал как надо. Еще раз спасибо автору за полезнейшую статью и обратную связь!

export IF_EXT="eth0"
export IPT="/sbin/iptables"
export IPT6="/sbin/ip6tables"

$IPT6 -P INPUT DROP
$IPT6 -P OUTPUT ACCEPT
$IPT6 -P FORWARD DROP

$IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

$IPT -A INPUT -m tcp -p tcp --dport 22 -j ACCEPT
$IPT -A INPUT -i $IF_EXT -p tcp --dport 443 -j ACCEPT

$IPT -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

Дан­ные могут пере­да­вать­ся не толь­ко с помо­щью TCP / UDP про­то­ко­лов, а так­же с помо­щью ими­та­ции ICMP (пинг) и DNS запросов.

SoftEther не тре­бо­ва­те­лен к типам вир­ту­а­ли­за­ции, в отли­чии от OpenVPN, кото­ро­му для рабо­ты тре­бу­ет­ся нали­чие TUN / TAP устройств в ядре. Поэто­му SoftEther рабо­та­ет на любых VPS / VDS и это еще один плюс в копилку.

Кли­ент­ское и сер­вер­ное ПО суще­ству­ет прак­ти­че­ски для всех рас­про­стра­нен­ных опе­ра­ци­он­ных систем. Про­цесс ком­пи­ля­ции исход­но­го кода при уста­нов­ке в UNIX-систе­мах мини­ми­зи­ро­ван настоль­ко, что с ним лег­ко спра­вит­ся любой пользователь.

ПО SoftEther состо­ит из несколь­ких компонентов:

  • Server - самый пол­ный набор, вклю­ча­ет в себя Server, Bridge и VPN Server Manager (в вер­сии для Windows).
  • Bridge - поз­во­ля­ет под­клю­чать локаль­ные сети к VPN-тоннелям.
  • VPN Server Manager - ути­ли­та с гра­фи­че­ским интер­фей­сом в систе­ме Windows. Исполь­зу­ет­ся для адми­ни­стри­ро­ва­ния локаль­ных и уда­лен­ных VPN-сер­ве­ров. Явля­ет­ся самым удоб­ным сред­ством адми­ни­стри­ро­ва­ния и управ­ле­ния. Уста­нав­ли­ва­ет­ся отдельно.
  • vpncmd - ути­ли­та адми­ни­стри­ро­ва­ния команд­ной стро­ки, как в тер­ми­на­лах UNIX-систем, так и в команд­ной стро­ке Windows. В UNIX-систе­мах ста­вит­ся вме­сте с сер­ве­ром. В Windows идет в ком­плек­те с VPN Server Manager.
  • Client - кли­ент для под­клю­че­ния к сети VPN .

Установка SoftEther VPN Server

Уста­но­вим ути­ли­ты для компилирования.

Пере­хо­дим в ката­лог /usr/local.

Пере­хо­дим на сайт SoftEther, выби­ра­ем нуж­ное и копи­ру­ем полу­чен­ную ссылку.


Ска­чи­ва­ем исход­ни­ки SoftEther.

Рас­па­ко­вы­ва­ем ска­чан­ный архив.

  • tar -zxvf softether-vpnserver-v4 .27 - 9666 -beta- 2018.04 .21 -linux-x64-64bit.tar.gz

Пере­хо­дим в ката­лог vpnserver.

Ком­пи­ли­ру­ем и устанавливаем.

Во вре­мя уста­нов­ки будет задан ряд вопро­сов, отве­чать сле­ду­ет положительно.

  • Do you want to read the License Agreement for this software ?
  • 1 . Yes
  • 2 . No
  • Please choose one of above number:
  • 1
  • Did you read and understand the License Agreement ?
  • ( If you couldn 't read above text, Please read ' ReadMeFirst_License.txt'
  • file with any text editor. )
  • 1 . Yes
  • 2 . No
  • Please choose one of above number:
  • 1
  • Did you agree the License Agreement ?
  • 1 . Agree
  • 2 . Do Not Agree
  • Please choose one of above number:
  • 1

Нахо­дясь внут­ри ката­ло­га vpnserver зада­дим пра­ва досту­па для файлов.

  • chmod 600 *
  • chmod 700 vpnserver
  • chmod 700 vpncmd

Про­ве­дем про­вер­ку систе­мы на сов­ме­сти­мость с SoftEther. Что­бы про­ве­сти про­вер­ку нуж­но попасть в кон­соль управ­ле­ния vpncmd.

" All checks passed " озна­ча­ет что тесты прой­де­ны и Softether может рабо­тать в систе­ме. Для выхо­да из кон­со­ли исполь­зу­ют коман­ды: exit, quit или соче­та­ние кла­виш Ctrl+C.

Настройка SoftEther в консоли управления

SoftEther уста­нов­лен и может рабо­тать в систе­ме. Теперь нуж­но про­ве­сти началь­ную настрой­ку, а что­бы про­ве­сти настрой­ку нуж­но запу­стить SoftEther.

Выпол­ня­ем коман­ду ./vpnserver start нахо­дясь внут­ри ката­ло­га /usr/local/vpnserver.

Vpncmd поз­во­ля­ет адми­ни­стри­ро­вать не толь­ко локаль­ные, но и уда­лен­ные сер­ве­ра. В нашем слу­чае нуж­но настро­ить локаль­ный сер­вер, поэто­му в стро­ке Hostname of IP Address of Destination вво­дим localhost и нажи­ма­ем Enter.

  • Hostname of IP Address of Destination: localhost

По умол­ча­нию соеди­не­ние уста­нав­ли­ва­ет­ся на 443 пор­ту. Если вдруг 443 порт занят дру­гой про­грам­мой, такое быва­ет если SoftEther уста­нов­лен не на чистую систе­му, то вой­ти в кон­соль не получится.

  • Error occurred. ( Error code: 2 )
  • Protocol error occurred. Error was returned from the destination server.

В таком слу­чае к зна­че­нию localhost через двое­то­чие добав­ля­ют нуж­ный порт. Кро­ме 443-го пор­та SoftEther слу­ша­ет еще три: 992, 1194 и 5555. Мож­но ука­зать любой из них.

  • Hostname of IP Address of Destination: localhost: 992

Нам будет пред­ло­же­но вве­сти имя вир­ту­аль­но­го хаба, но посколь­ку он еще не создан, то про­сто нажи­ма­ем Enter и ока­зы­ва­ем­ся в кон­со­ли управ­ле­ния сервером.

  • Connection has been established with VPN Server "localhost" ( port 443 ) .
  • You have administrator privileges for the entire VPN Server.
  • VPN Server>

Управ­ле­ние сер­ве­ром осу­ществ­ля­ет­ся посред­ством опре­де­лен­ных команд (205 штук). Спи­сок команд мож­но про­смот­реть через --help.

Установка пароля администратора

Пер­вым делом уста­но­вим пароль адми­ни­стра­то­ра (ServerPasswordSet).

  • VPN Server>ServerPasswordSet
  • ServerPasswordSet command - Set VPN Server Administrator Password
  • Please enter the password. To cancel press the Ctrl+D key.
  • Password: ******
  • Confirm input: ******
  • The command completed successfully.

Создание виртуального хаба

Вир­ту­аль­ный хаб пред­став­ля­ет собой подо­бие сер­ве­ра со сво­и­ми настрой­ка­ми, про­то­ко­ла­ми VPN , сво­и­ми поль­зо­ва­те­ля­ми и адми­ни­стра­то­ра­ми, а так­же со сво­и­ми настрой­ка­ми без­опас­но­сти. На одном сер­ве­ре может быть созда­но до 4096 вир­ту­аль­ных хабов. Хабы не кон­так­ти­ру­ют друг с дру­гом, за исклю­че­ни­ем слу­ча­ев когда их спе­ци­аль­но объ­еди­ня­ют в мосты.

По умол­ча­нию на сер­ве­ре уже есть дефолт­ный хаб ( DEFAULT ), уда­лим его (HubDelete) и созда­дим свой. Во вре­мя выпол­не­ния будет запро­ше­но имя хаба для удаления.

  • VPN Server>HubDelete
  • HubDelete command - Delete Virtual Hub
  • Name of Virtual Hub to delete: DEFAULT
  • The command completed successfully.

Созда­дим новый вир­ту­аль­ный хаб (HubCreate). Зада­дим имя ново­го хаба и пароль.

  • VPN Server>HubCreate
  • HubCreate command - Create New Virtual Hub
  • Name of Virtual Hub to be created: VPN_1
  • Please enter the password. To cancel press the Ctrl+D key.
  • Password: ******
  • Confirm input: ******
  • The command completed successfully.

Спи­сок доступ­ных хабов мож­но про­смот­реть коман­дой HubList. Коман­да пока­зы­ва­ет не толь­ко хабы, но и их статистику.

  • VPN Server>HubList
  • HubList command - Get List of Virtual Hubs
  • Item |Value
  • ------------------+-------------------
  • Virtual Hub Name | VPN_1
  • Status |Online
  • Type |Standalone
  • Users | 0
  • Groups | 0
  • Sessions | 0
  • MAC Tables | 0
  • IP Tables | 0
  • Num Logins | 0
  • Last Login | 2018 - 05 - 10 05 : 12 : 36
  • Last Communication| 2018 - 05 - 10 05 : 12 : 36
  • Transfer Bytes | 0
  • Transfer Packets | 0
  • The command completed successfully.

Настро­им создан­ный хаб (Hub). Через про­бел ука­зы­ва­ем имя хаба для настройки.

  • VPN Server>Hub VPN_1
  • Hub command - Select Virtual Hub to Manage
  • The Virtual Hub " VPN_1 " has been selected.
  • The command completed successfully.

Кон­соль управ­ле­ния хабом.

Созда­дим поль­зо­ва­те­ля (UserCreate). Груп­пу, пол­ное имя и опи­са­ние запол­ня­ем по жела­нию (мож­но про­пу­стить нажав Enter).

  • VPN Server/ VPN_1 >UserCreate
  • UserCreate command - Create User
  • User Name: denni
  • Assigned Group Name:
  • User Full Name:
  • User Description:
  • The command completed successfully.

Зада­дим пароль поль­зо­ва­те­ля (UserPasswordSet).

  • VPN Server/ VPN_1 >UserPasswordSet
  • UserPasswordSet command - Set Password Authentication for User Auth Type and Set Password
  • User Name: denni
  • Please enter the password. To cancel press the Ctrl+D key.
  • Password: ******
  • Confirm input: ******
  • The command completed successfully.

Создание локального моста

Посколь­ку Local Bridge рабо­та­ет сов­мест­но с TAP устрой­ством, то дан­ный шаг могут про­пу­стить те поль­зо­ва­те­ли, чьи VPS / VDS не под­дер­жи­ва­ют драй­ве­ра TUN / TAP . Такие поль­зо­ва­те­ли в даль­ней­шем будут исполь­зо­вать режим SecureNAT.

Для созда­ния Local Bridge исполь­зу­ет­ся коман­да BridgeCreate, син­так­сис выгля­дит сле­ду­ю­щим образом.

  • BridgeCreate hubname -device:devicename -tap:yes
  • hubname - имя хаба ( VPN_1 )
  • devicename - имя tap-устрой­ства, напри­мер vpn
  • -tap:yes - вклю­че­ние tap-устройства

Спи­сок и ста­тус мостов мож­но про­смот­реть коман­дой Bridgelist. Если в ста­ту­се висит зна­че­ние Operating, это зна­чит что все в поряд­ке и мост готов к работе.

Читайте также: