Материал из Wiki.X-news.org
Перейти к: навигация, поиск

В этой статье я опишу последовательность действий для установки и настройки VPN сервера SoftEther на ОС Ubuntu: инсталляция, настройка, поднятие IPsec/L2TP ВПН сервера, настройка NAT и DHCP серверов.


Часть 1. Установка VPN сервера SoftEther

1. Подключаемся к серверу по SSH с административными правами.

2. Проверяем наличие установленных библиотек:

gcc software
binutils software
tar, gzip or other software for extracting package files
chkconfig system utility
cat, cp or other basic file operation utility
EUC-JP, UTF-8 or other code page table for use in a Japanese language environment
libc (glibc) library
zlib library
openssl library
readline library
ncurses library
pthread library

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

Update!

$ sudo apt-get update
$ sudo apt-get install build-essential

For centos:

yum groupinstall "Development Tools" -y

3. Переходим в папку /tmp и скачиваем с официального сайта дистрибутив:

cd /tmp
wget http://www.softether-download.com/files/softether/v4.21-9613-beta-2016.04.24-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.21-9613-beta-2016.04.24-linux-x64-64bit.tar.gz

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

4. Распаковываем архив:

tar xzvf vpnserver-5070-rtm-linux-x86.tar.gz 

5. Переходим в распакованную папку и запускаем установки:

[root@machine vpnserver]# make
./.install.sh
Do you want to read the License Agreement for this software ?
1. Yes
2. No
Please choose one of above number:
1

Ставим везде единички.

6. Выходим из каталога:

[root@machine vpnserver]# cd ..
[root@machine root]# mv vpnserver /usr/local
[root@machine root]# ls -l /usr/local/vpnserver/
Total 13000
-rwxrwxrwx 1 root root 20245 12ŒŽ 8 16:14 License_ReadMeFirst.txt*
-rwxrwxrwx 1 root root 20317 12ŒŽ 8 16:14 License_ReadMeFirstSjis.txt*
-rwxrwxrwx 1 root root 30210 12ŒŽ 8 16:14 License_ReadMeFirstUtf.txt*
-rwxrwxrwx 1 root root 609 12ŒŽ 8 16:14 Makefile*
-rwxrwxrwx 1 root root 4018399 12ŒŽ 8 16:14 hamcore.se2*
-rwxrwxrwx 1 root root 1942994 12ŒŽ 9 02:23 libcrypto.a*
-rwxrwxrwx 1 root root 336070 12ŒŽ 9 02:23 libssl.a*
-rwxr-xr-x 1 root root 1814216 12ŒŽ 9 02:23 vpncmd*
-rwxrwxrwx 1 root root 1630858 12ŒŽ 9 02:23 vpncmd.a*
-rwxr-xr-x 1 root root 1814120 12ŒŽ 9 02:23 vpnserver*
-rwxrwxrwx 1 root root 1630304 12ŒŽ 9 02:23 vpnserver.a*
[root@machine root]#  

7. Убедимся, что каталог приложения перенесен в папку /usr/local/. Устанавливаем необходимые права на файлы:

[root@machine root]# cd /usr/local/vpnserver/
[root@machine vpnserver]# chmod 600 *
[root@machine vpnserver]# chmod 700 vpncmd
[root@machine vpnserver]# chmod 700 vpnserver
[root@machine vpnserver]# ls -l
Total 13000
-rw------- 1 root root 20245 12ŒŽ 8 16:14 License_ReadMeFirst.txt
-rw------- 1 root root 20317 12ŒŽ 8 16:14 License_ReadMeFirstSjis.txt
-rw------- 1 root root 30210 12ŒŽ 8 16:14 License_ReadMeFirstUtf.txt
-rw------- 1 root root 609 12ŒŽ 8 16:14 Makefile
-rw------- 1 root root 4018399 12ŒŽ 8 16:14 hamcore.se2
-rw------- 1 root root 1942994 12ŒŽ 9 02:23 libcrypto.a
-rw------- 1 root root 336070 12ŒŽ 9 02:23 libssl.a
-rwx------ 1 root root 1814216 12ŒŽ 9 02:23 vpncmd*
-rw------- 1 root root 1630858 12ŒŽ 9 02:23 vpncmd.a
-rwx------ 1 root root 1814120 12ŒŽ 9 02:23 vpnserver*
-rw------- 1 root root 1630304 12ŒŽ 9 02:23 vpnserver.a
[root@machine vpnserver]#  

8. С помощью команды vpncmd запустим тесты программного обеспечения:

[root@machine vpnserver]# ./vpncmd
vpncmd command - SoftEther VPN Command Line Management Utility
SoftEther VPN Command Line Management Utility (vpncmd command)

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 communication speed measurement)

Select 1, 2 or 3: 3

VPN Tools was launched. By inputting HELP, you can view a list of the commands t
hat can be used.

VPN Tools>check
Check command - Check if SoftEther VPN Operation is Possible
---------------------------------------------------
SoftEther VPN Operation Environment Check Tool

If this operation environment check tool is run on a system and that system pass
es, it is highly likely that SoftEther VPN software can operate on that system. T
his check may take a while. Please wait...
 
Checking 'Kernel System'...
[Pass]
Checking 'Memory Operation System'...
[Pass]
Checking 'ANSI / Unicode string processing system'...
[Pass]
Checking 'File system'...
[Pass]
Checking 'Thread processing system'...
[Pass]
Checking 'Network system'...
[Pass]

All checks passed. It is highly likely that SoftEther VPN Server / Bridge can ope
rate normally on this system.

The command terminated normally.
VPN Tools>exit
[root@machine vpnserver]#  

9. Создадим и зарегистрируем стартовый скрипт:

mcedit /etc/init.d/vpnserver

Вставляем в скрипт следующее содержимое:

#!/bin/sh
### BEGIN INIT INFO
# Provides:          myscript
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      1 0 6
# Short-Description: simple description.
### END INIT INFO
# 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

10. Установим права для созданного скрипта:

root@machine vpnserver]# chmod 755 /etc/init.d/vpnserver

11. Добавляем скрипт в автозагрузку:

[root@machine vpnserver]# /sbin/chkconfig --add vpnserver 

В Debian скрипт добавляется в автозагрузку следующей командой:

update-rc.d vpnserver defaults


12. Запуск и остановка сервиса:

[root@machine vpnserver]# /etc/init.d/vpnserver start 
[root@machine vpnserver]# /etc/init.d/vpnserver stop

Часть 2. Настройка VPN сервера SoftEther

1. В окне "Softether VPN Server / Bridge Easy Setup" выбираем

"Remote Access VPN Server"

2. Создаем группу пользователей Users

3. Создаем пользователей (указываем "Password Authentication")

4. В настройках IPsec/L2TP:

Enable L2TP Server Function (L2TP over IPsec)
Default Virtual Hub in a case of omitting of Hub on the Username" "VPN"
IPsec Pre-Shared Key: "enter key"

5. Отключаем поддержку OpenVPN

6. В окне Encryption and Network Settings:

Encryption Algorithm Settings- RC4-MD5 (некоторые инструкции советуют AES256-SHA)

7. SecureNAT должен быть отключен из-за того, что он потребляет до 100% ресурсов процессора.

На этом настройка L2TP/IPsec закончена и пришло время настроить NAT/DHCP и Local Bridge


Часть 3. Настройка Softether на VPS используя Local Bridge

Несмотря на то, что настройка SecureNat очень проста, в ее использовании кроется опасность для надежной работы VPN сервера: на некоторых VPS SecureNat использует до 99% ресурсов процессора! По этой причине мы настроим соответствующие службы в самой операционной системе.

1. Настройка Local Bridge. В окне Manage VPN Server "xxx" нажимаем на кнопку "Local Bridge Settings".

Создаем мост со следующими параметрами:

Virtual Hub = VPN (выбираем в выпадающем меню)
Type to Create = Bridge with the New Tap Device
New Tap Device Name = soft

После создания данных настроек переходим в ssh сессию и проверяем правильность созданных параметров:

# ifconfig tap_soft

Мы должны увидеть созданный интерфейс.

2. Устанавливаем DHCP сервер:

# apt-get install dnsmasq

3. Отредактируем /etc/dnsmasq.conf добавив в конец файла три строки:

interface=tap_soft
dhcp-range=tap_soft,192.168.7.50,192.168.7.60,12h
dhcp-option=tap_soft,3,192.168.7.1

4. Отредактируем /etc/init.d/vpnserver следующим образом:

#!/bin/sh
# BEGIN INIT INFO
# Provides:          vpnserver
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable Softether by daemon.
# END INIT INFO
DAEMON=/usr/local/vpnserver/vpnserver
LOCK=/var/lock/subsys/vpnserver
TAP_ADDR=192.168.7.1

test -x $DAEMON || exit 0
case "$1" in
start)
$DAEMON start
touch $LOCK
sleep 1
/sbin/ifconfig tap_soft $TAP_ADDR
;;
stop)
$DAEMON stop
rm $LOCK
;;
restart)
$DAEMON stop
sleep 3
$DAEMON start
sleep 1
/sbin/ifconfig tap_soft $TAP_ADDR
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0

В Debian скрипт добавляется в автозагрузку следующей командой:

update-rc.d vpnserver defaults

5. Создадим файл /etc/sysctl.d/ipv4_forwarding.conf со следующим содержимым:

net.ipv4.ip_forward = 1

6. Применим изменения:

# sysctl --system

7. Добавим правило в настройки файервола:

# iptables -t nat -A POSTROUTING -s 192.168.7.0/24 -j SNAT --to-source [YOUR VPS IP ADDRESS]

8. Для того, чтобы настройки файервола не потерялись после перезагрузки, установим приложение iptables-persistent

# apt-get install iptables-persistent

9. Перезапустим службы:

# /etc/init.d/vpnserver restart
# /etc/init.d/dnsmasq restart

10. Сохраним настройки сетевого фильтра:

service netfilter-persistent save


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


Future Upgrading

When you need to update the server side, you need to:

Stop the service.

service vpnserver stop

or

systemctl stop vpnserver

Download the latest version of SoftEther VPN Server and build it.

wget brabrabrabra
tar zxvf softetherxxxxxxxxx
cd vpnserver
make
chmod 600 *
chmod 700 vpnserver
chmod 700 vpncmd
cp -r * /usr/local/vpnserver/

And start the service again.

systemctl start vpnserver