Поиск по сайту:

Как настроить многопротокольный VPN-сервер с помощью SoftEther


Введение

В этой статье объясняется, как установить и настроить многопротокольный VPN-сервер с помощью пакета SoftEther. Мы включаем и настраиваем OpenVPN и L2TP через серверы IPSec и SSTP VPN в Linux.

Что такое софтэфир

SoftEther VPN — одно из самых мощных и простых в использовании многопротокольных VPN-приложений, созданное хорошими ребятами из Университета Цукуба, Япония. Он работает на Windows, Linux, Mac, FreeBSD и Solaris, является бесплатным и открытым исходным кодом. Вы можете бесплатно использовать SoftEther в личных или коммерческих целях.

Шаг 1: Создайте виртуальный сервер

Во-первых, вам нужно создать дроплет DigitalOcean. Как упоминалось на веб-сайте SoftEther, SoftEther будет работать практически со всеми дистрибутивами Linux с ядром версии 2.4 или выше; однако рекомендуется выбрать один из следующих дистрибутивов: CentOS, Fedora или Red Hat Enterprise Linux.

Лично я пробовал его на Ubuntu, CentOS и Fedora, как на 32-х, так и на 64-битных версиях, и он работал отлично.

Шаг 2: Обновите серверное программное обеспечение

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

Дебиан/Убунту:

apt-get update && apt-get upgrade

ЦенОС/Федора:

yum upgrade

Шаг 3: Скачайте SoftEther

Вы можете загрузить последний пакет сервера SoftEther для Linux с их веб-сайта:

Скачать SoftEther

К сожалению, на данный момент нет возможности получить последнюю версию через менеджеры пакетов (или даже с помощью одного URL-адреса). Поэтому вам нужно просмотреть их веб-сайт с помощью настольного браузера, чтобы загрузить пакет. Есть несколько способов справиться с этим: сначала просмотрите их веб-сайт на своем компьютере, а затем, в зависимости от конфигурации вашего сервера (ОС, x86/x64 и т. д.), найдите ссылку на соответствующий пакет, а затем используйте wget для загрузки. пакет на свой сервер. В качестве альтернативы вы можете использовать веб-браузер на базе терминала, такой как lynx, для просмотра веб-сайта SoftEther и загрузки нужного пакета.

Вот как это сделать с помощью lynx:

Сначала установите lynx на свой сервер:

Дебиан/Убунту:

apt-get install lynx -y

ЦенОС/Федора:

yum install lynx -y

Теперь с помощью приведенной ниже команды просмотрите веб-страницу загрузки SoftEther:

lynx http://www.softether-download.com/files/softether/

Эта страница содержит все доступные версии SoftEther. Выберите нужную версию (в этом руководстве мы используем v2.00-9387-rtm-2013.09.16), а затем нажмите Enter, чтобы перейти по ссылке. Теперь выберите Linux и на следующей странице выберите SoftEther VPN Server. В зависимости от аппаратной архитектуры вашего сервера выберите пакет; 32-битные — Intel x86 и 64-битные — Intel x64 или AMD64 работают для 32-битных или 64-битных дроплетов DigitalOcean. Наконец, загрузите tar-файл со следующей страницы, нажав клавишу «D» на ссылке, и выберите «Сохранить на диск», когда Lynx спросит. После сохранения файла мы можем нажать «Q», чтобы выйти из Lynx и продолжить установку.

Шаг 4: Установите и настройте SoftEther

Теперь нам нужно извлечь пакет, который мы получили со страницы загрузки SoftEther, и скомпилировать его. Пакет, используемый в этом руководстве, называется softether-vpnserver-v2.00-9387-rtm-2013.09.16-linux-x86-32bit.tar.gz, поэтому мы извлечем его с помощью следующей команды:

 tar xzvf softether-vpnserver-v2.00-9387-rtm-2013.09.16-linux-x86-32bit.tar.gz

После его распаковки в рабочей папке будет создан каталог с именем vpnserver. Для компиляции SoftEther на вашем сервере должны быть установлены следующие инструменты и пакеты:

make, gccbinutils (gcc), libc (glibc), zlib, openssl, readline и ncurses

Убедитесь, что они установлены. Вы можете установить все пакеты, необходимые для сборки SoftEther, используя следующую команду:

Дебиан/Убунту:

apt-get install build-essential -y

ЦенОС/Федора:

yum groupinstall "Development Tools"

Примечание. В Fedora я обнаружил, что пакет gcc не устанавливается с помощью приведенной выше команды, поэтому вам нужно установить его вручную с помощью yum install gcc.

Теперь, когда у нас установлены все необходимые пакеты, мы можем скомпилировать SoftEther с помощью следующей команды:

Сначала \cd в директорию vpnserver:

cd vpnserver

А теперь запустите make, чтобы скомпилировать SoftEther в исполняемый файл:

make

SoftEther попросит вас прочитать и согласиться с лицензионным соглашением. Выберите 1, чтобы прочитать соглашение, еще раз, чтобы подтвердить прочтение, и, наконец, согласиться с лицензионным соглашением.

SoftEther теперь скомпилирован и преобразован в исполняемые файлы (vpnserver и vpncmd). Если процесс завершается сбоем, проверьте, установлены ли все необходимые пакеты.

Теперь, когда SoftEther скомпилирован, мы можем переместить каталог vpnserver в другое место, здесь мы перемещаем его в usr/local:

cd ..
mv vpnserver /usr/local
cd /usr/local/vpnserver/

А затем измените права доступа к файлам, чтобы защитить их:

chmod 600 *
chmod 700 vpnserver
chmod 700 vpncmd

Если вы хотите, чтобы SoftEther запускался как служба при запуске, создайте файл с именем vpnserver в каталоге /etc/init.d и измените его на следующее:

Сначала создайте и откройте файл с помощью vi или nano:

vi /etc/init.d/vpnserver

И вставьте в файл следующее:

#!/bin/sh
# chkconfig: 2345 99 01
# description: SoftEther VPN Server
DAEMON=/usr/local/vpnserver/vpnserver
LOCK=/var/lock/subsys/vpnserver
test -x $DAEMON || exit 0
case "$1" in
start)
$DAEMON start
touch $LOCK
;;
stop)
$DAEMON stop
rm $LOCK
;;
restart)
$DAEMON stop
sleep 3
$DAEMON start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0

Наконец, сохраните и закройте файл, нажав esc и набрав: wq, чтобы закрыть vim.

Мы должны создать каталог в /var/lock/subsys, если он не существует:

mkdir /var/lock/subsys

Теперь измените разрешение для сценария запуска и запустите vpnserver с помощью команды ниже:

chmod 755 /etc/init.d/vpnserver && /etc/init.d/vpnserver start

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

Дебиан/Убунту:

update-rc.d vpnserver defaults

ЦенОС/Федора:

chkconfig --add vpnserver 

Теперь SoftEther VPN Server установлен и настроен для запуска при запуске. Наконец, мы должны проверить, работает ли VPN-сервер:

cd /usr/local/vpnserver
./vpncmd

Теперь нажмите 3, чтобы выбрать «Использовать инструменты VPN», а затем введите:

check

Если все проверки пройдены, ваш сервер готов стать сервером SoftEther VPN, и вы можете перейти к следующему шагу. Введите «выход», чтобы выйти из VPN Tools.

Существует два способа настройки SoftEther VPN-сервера: вы можете использовать диспетчер серверов на базе Windows для удаленного управления и настройки любого количества SoftEther VPN-серверов; или используйте встроенный инструмент vpncmd для настройки ваших серверов.

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

Здесь мы используем vpncmd для настройки нашего VPN-сервера.

Шаг 5: Изменить пароль администратора

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

./vpncmd

Нажмите 1, чтобы выбрать «Управление VPN-сервером или VPN-мостом», затем нажмите Enter, не вводя ничего, чтобы подключиться к серверу localhost, и снова нажмите Enter, ничего не вводя, чтобы подключиться к серверу в режиме администратора сервера.

Затем используйте команду ниже, чтобы изменить пароль администратора:

ServerPasswordSet

Шаг 6: Создайте виртуальный концентратор

Чтобы использовать SoftEther, мы должны сначала создать виртуальный концентратор. Здесь в качестве примера мы создаем концентратор с именем VPN, чтобы сделать это, введите команду ниже в инструменте vpncmd:

HubCreate VPN

Далее вам будет предложено ввести пароль администратора для хаба. Этот пароль будет использоваться всякий раз, когда вы не вошли в систему в режиме администратора сервера и хотите управлять этим конкретным хабом.

Теперь выберите виртуальный концентратор, который вы создали с помощью этой команды:

Hub VPN

Шаг 7. Включите SecureNAT

Существует два способа подключения ваших концентраторов к серверной сети: с помощью подключения через локальный мост или с помощью функции SecureNAT.

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

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

SecureNAT представляет собой комбинацию виртуального NAT и функции DHCP-сервера. Вы можете включить SecureNAT с помощью команды ниже:

SecureNatEnable

Шаг 8. Создание пользователей и управление ими

Теперь нам нужно создать пользователей для нашего виртуального концентратора, чтобы использовать VPN. Мы можем создавать пользователей для нашего виртуального концентратора с помощью команды UserCreate и просматривать список текущих пользователей с помощью UserList. Пользователей можно добавлять в группы и даже использовать различные типы режимов аутентификации (в том числе: пароль, сертификат, RADIUS, NTLM и т. д.).

С помощью команды UserCreate мы создаем пользователя с именем «test»:

UserCreate test

Тип аутентификации по умолчанию — пароль, но мы можем изменить его на другой тип, используя команды ниже:

UserNTLMSet для проверки подлинности домена NT

UserPasswordSet для аутентификации по паролю

UserAnonymousSet для анонимной аутентификации

UserRadiusSet для аутентификации RADIUS

UserCertSet для индивидуальной аутентификации сертификата

UserSignedSet для проверки подлинности подписанного сертификата

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

UserPasswordSet test

Шаг 9: Настройте L2TP/IPSec

Чтобы включить сервер L2TP/IPsec VPN, вы можете использовать следующую команду:

IPsecEnable

После ввода этой команды вам будет предложено настроить функции L2TP-сервера:

Включить функцию сервера L2TP через IPsec: выберите «Да», чтобы включить L2TP VPN через IPSec с шифрованием с предварительным общим ключом. Теперь вы можете устанавливать VPN-подключения к этому серверу с помощью устройств iPhone, Android, Windows и Mac OS X.

Включить функцию Raw L2TP Server: это включит L2TP VPN для клиентов без шифрования IPSec.

Включить функцию сервера EtherIP/L2TPv3 через IPsec: Маршрутизаторы, совместимые с EtherIP/L2TPv3 через IPsec, могут подключаться к этому серверу, включив эту функцию.

Предварительный общий ключ для IPsec: введите предварительный общий ключ для использования с L2TP VPN.

Виртуальный концентратор по умолчанию в случае пропуска концентратора в имени пользователя: пользователи должны указать виртуальный концентратор, к которому они пытаются подключиться, используя имя пользователя@TargetHubName в качестве имени пользователя при подключении. Этот параметр указывает, какой виртуальный концентратор следует использовать, если пользователь не предоставит такую информацию. В нашем случае введите VPN.

Шаг 10: Настройте SSTP/OpenVPN

SoftEther может клонировать функции Microsoft SSTP VPN Server и OpenVPN Server. Но прежде чем мы включим их, мы должны создать самозаверяющий сертификат SSL для нашего сервера. Вы можете использовать команду openssl или SoftEther для создания SSL-сертификата.

Здесь мы используем команду SoftEther ServerCertRegenerate для создания и регистрации самозаверяющего SSL-сертификата для нашего сервера. Аргумент, передаваемый команде, — CN (общее имя), и в нем должно быть указано ваше имя хоста (FQDN) или IP-адрес:

ServerCertRegenerate [CN]

Примечание 1: SoftEther также поставляется со встроенной функцией динамического DNS, которая может назначить уникальное и постоянное имя хоста для вашего сервера. Вы можете использовать имя хоста, назначенное этой функцией, для создания SSL-сертификата и подключения к вашему серверу.

Примечание 2. Если у вас уже есть сертификат SSL или вы создали его с помощью openssl, его можно добавить на сервер с помощью команды ServerCertSet.

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

ServerCertGet ~/cert.cer

Теперь вы можете загрузить сертификат в свой клиент с помощью FileZilla или любого другого SFTP-клиента.

Чтобы сделать сертификат доверенным в Windows, его необходимо установить в хранилище доверенных корневых центров сертификации. Вот статья, объясняющая, как это сделать (прочитайте часть Установка цепочки сертификатов):

Установка цепочки сертификатов

Теперь, когда мы создали и зарегистрировали SSL-сертификат для нашего сервера, мы можем включить функцию SSTP с помощью этой команды:

SstpEnable yes

И чтобы включить OpenVPN:

OpenVpnEnable yes /PORTS:1194

Примечание. Порт OpenVPN по умолчанию — 1194, но вы можете изменить его на любой другой, изменив часть команды /PORTS:1194 на нужный порт или порты (да, он поддерживает несколько портов).

После включения OpenVPN вы можете загрузить пример файла конфигурации для клиента OpenVPN. Здесь мы создаем образец файла конфигурации OpenVPN и сохраняем его в my_openvpn_config.zip:

OpenVpnMakeConfig ~/my_openvpn_config.zip

Затем вы можете загрузить его с помощью любого SFTP-клиента, такого как FileZilla, и применить его к своим клиентам OpenVPN.

SoftEther также предоставляет специальное программное обеспечение VPN-клиента для Windows и Linux. Он поддерживает специальный протокол SoftEther, называемый Ethernet через HTTPS или SSL-VPN, который является очень мощным. Он использует протокол HTTPS и порт 443 для установления VPN-туннеля, и, поскольку этот порт хорошо известен, почти все брандмауэры, прокси-серверы и NAT могут передавать пакет. Чтобы использовать протокол SSL-VPN, вы должны загрузить и установить SoftEther VPN Client, который можно получить на их веб-сайте.

Шаг 11: Подключение к SoftEther VPN-серверу (конфигурация клиента)

Поскольку SoftEther — это многопротокольный VPN-сервер, существует множество способов подключиться к нему в качестве клиента. Вы можете выбрать любой протокол для установки безопасного соединения с вашим сервером, включая L2TP, SSTP, OpenVPN и эксклюзивный для SoftEther протокол SSL-VPN.

В зависимости от клиентской операционной системы и конфигурации вы можете использовать любой из упомянутых протоколов. Тем не менее, я предпочитаю использовать SSL-VPN, так как он и безопасен, и быстр, а также, как упоминалось ранее, поскольку он использует общий и хорошо известный порт (443 или https-порт), он может проникнуть через большинство брандмауэров.

Здесь мы используем собственное программное обеспечение VPN-клиента SoftEther для подключения к нашему серверу:

Сначала загрузите VPN-клиент SoftEther для Linux с веб-сайта SoftEther. Мы можем загрузить его с помощью браузера lynx. Введите эту команду, чтобы открыть страницу загрузки SoftEther:

lynx http://www.softether-download.com/files/softether/

Затем, как и при загрузке программного обеспечения сервера, выберите последнюю версию (здесь мы использовали v2.00-9387-rtm-2013.09.16). Теперь выберите Linux и на следующей странице выберите SoftEther VPN Client. Теперь, в зависимости от аппаратной архитектуры вашей системы, выберите пакет (32-битный — Intel x86 и 64-битный — Intel x64 или AMD64 работает для 32-битных или 64-битных дроплетов DigitalOcean). Наконец, загрузите tar-файл со следующей страницы, нажав клавишу «D» на ссылке, и выберите «Сохранить на диск», когда Lynx спросит. После сохранения файла нажмите «Q», чтобы выйти из Lynx.

Извлеките только что загруженный tar-файл с помощью этой команды:

tar xzvf softether-vpnclient-v2.00-9387-rtm-2013.09.16-linux-x86-32bit.tar.gz

Примечание. Замените softether-vpnclient-v2.00-9387-rtm-2013.09.16-linux-x86-32bit.tar.gz на имя загруженного файла.

Теперь, как и в случае с сервером, нам нужно скомпилировать и сделать vpnclient исполняемым файлом, выполнив следующие команды (убедитесь, что на клиенте установлены инструменты разработки, упомянутые в шаге 4):

cd vpnclient
make

Введите 1 три раза, когда вас попросят прочитать и принять Лицензионное соглашение, а затем переместите файлы в другой каталог и измените разрешения:

cd ..
mv vpnclient /usr/local
cd /usr/local/vpnclient/
chmod 600 *
chmod 700 vpnclient
chmod 700 vpncmd

Затем запустите службу VPN-клиента с помощью этой команды:

./vpnclient start

Для настройки нашего клиента мы будем использовать vpncmd. Пока вы находитесь в каталоге vpnclient, введите эту команду, чтобы запустить инструмент vpncmd:

./vpncmd

Выберите 2, чтобы войти в режим управления VPN-клиентом, а затем нажмите Enter, чтобы подключиться к только что установленному локальному VPN-клиенту и управлять им.

SoftEther использует виртуальные адаптеры для установления соединения с нашим VPN-сервером. С помощью этой команды создайте виртуальный адаптер с именем myadapter:

NicCreate myadapter

Теперь с помощью этой команды создайте новое VPN-подключение с именем myconnection:

AccountCreate myconnection

Затем введите IP-адрес и номер порта вашего SoftEther VPN-сервера. Номер порта может быть любым портом, который вы установили для прослушивания на своем сервере. По умолчанию SoftEther прослушивает эти четыре порта: 443, 992, 1194, 5555. Вот пример использования порта 443:

Destination VPN Server Host Name and Port Number: [VPN Server IP Address]:443

Примечание. Вместо IP-адреса вы также можете ввести полное доменное имя вашего сервера (FQDN).

Теперь введите имя виртуального концентратора, к которому вы пытаетесь подключиться на своем сервере. В нашем случае это VPN:

Destination Virtual Hub Name: VPN

Затем введите имя пользователя, которого вы создали на своем сервере. Мы создали пользователя с именем test:

Connecting User Name: test

И, наконец, введите имя только что созданного виртуального концентратора:

Used Virtual Network Adapter Name: myadapter

Теперь наше VPN-соединение создано и готово к подключению. Последний шаг — изменить режим аутентификации на пароль, поскольку именно так мы настроили режим аутентификации нашего пользователя на сервере:

AccountPasswordSet myconnection

При появлении запроса введите стандартный метод аутентификации пароля:

Specify standard or radius: standard

Наконец, мы можем подключить наше соединение — используйте эту команду для этого:

AccountConnect myconnection

Вы можете увидеть статус подключения с помощью этой команды:

AccountStatusGet myconnection

Примечание. Чтобы сделать ваше подключение к серверу более безопасным и предотвратить атаки «человек посередине», лучше всего использовать SSL-сертификат для идентификации вашего сервера. Это можно легко сделать с помощью SoftEther. Для этого сначала вы должны загрузить файл сертификата на свой клиент, как описано в шаге 10, а затем с помощью CertAdd добавить его в доверенные сертификаты вашего клиента. Затем с помощью команды AccountServerCertEnable включите проверку сертификата для вашего VPN-подключения.

Заканчивать

В этой статье мы рассмотрели процесс настройки SoftEther VPN-сервера с помощью vpncmd — утилиты администрирования командной строки, предоставляемой SoftEther. Все, что здесь сделано, также можно сделать с помощью SoftEther Server Manager для Windows, и настроить SoftEther VPN Server с помощью этого инструмента еще проще. Поэтому я рекомендовал вам использовать его, если у вас есть машина с Windows.

Вот и все. Мы успешно установили и настроили многопротокольный VPN-сервер с использованием SoftEther. Теперь клиенты могут подключаться к нашему серверу по L2TP, IPSec, SSTP, OpenVPN и т.д.

Прислал: Нима Карими