SoftetherVPN服务器

SoftetherVPN是由日本筑波大学(University of Tsukuba)开发的免费软件,支持ssl、l2tp、SSTP、openvpn多种协议,防火墙穿透性能优秀,被称作是VPN中的瑞士军刀。支持Windows、Mac、智能手机(iPhone,安卓)、平板电脑(iPad,Windows RT)和思科或其他VPN路由器。也接受OpenVPN和MS-SSTP VPN客户端。

本篇介绍在Debian10.1和Ubuntu18.04系统上安装和设置 SoftetherVPN Server服务端。先用Bitvise SSH Client登入远端主机,打开终端。

apt-get update && apt-get upgrade

上面指令是检查更新和更新软件,中间会提示“ Do you want to continue? [Y/n] ”,这时输入 y 回车。

更新完毕。首先先安裝 softether 會使用到的套件:

apt-get install build-essential libreadline-dev libssl-dev libncurses-dev zlib1g-dev

中间会提示“ Do you want to continue? [Y/n] ,这时输入 y 回车:

下载VPN服务器源码:

git clone https://github.com/SoftEtherVPN/SoftEtherVPN_Stable.git

提示
-bash: git: command not found
需要安装git

apt-get install git

再次下载VPN服务器源码

git clone https://github.com/SoftEtherVPN/SoftEtherVPN_Stable.git

再来做编译前的设定:

cd SoftEtherVPN_Stable      ///回车
./configure

编译:

make

编译安装:

make install

启动VPN服务器:

vpnserver start

已经成功启动,而且需要在启动VPN服务器的前提下配置服务端。接下来要配置服务端:

vpncmd

选 1
2次直接回车

如上图,已经进入VPN服务器管理模式。创建服务器密码:

ServerPasswordSet

会提示输入两次密码,完成后提示:
The command completed successfully.

删掉缺省Hub:

HubDelete DEFAULT

建立一个新的Hub,名称:MyVPN (这里是举例,名称由自己设定)

HubCreate MyVPN

会提示输入两次密码,建议设置空密码(设置密码会影响到SSTP VPN的建立),直接回车。设完成后提示:
The command completed successfully.

进入 MyVPN:

Hub MyVPN

设置一下 Secure NAT,这个可以使你在Hub MyVPN虚拟网络上运行一个虚拟NAT路由器和DHCP服务器功能:

SecureNATEnable

建立用户:

UserCreate libai       /// 直接回车三次直到完成

设置密码:

UserPasswordSet libai

建立L2TP/IPsec之VPN服务端:

IPSecEnable

选项:yes, yes, yes ,vpn, MyVPN

上图中,这个选项 “ Enable Raw L2TP Server Function (yes / no) ” 是指支持没经IPsec加密的L2TP服务器功能,如果对加密程度有要求,可以选 no (输入 n);这个选项 “ Pre Shared Key for IPsec (Recommended: 9 letters at maximum) ” 是要你设置一个预共享密钥,图中示例是 “vpn”,你可以去自己设定(最多允许设置9个字母);这个选项 “ Default Virtual HUB in a case of omitting the HUB on the Username” 是指用户连接服务端时的缺省HUB,这里填写的是上面建立的“MyVPN” ,这样在连接时就不需要再选择HUB名称。

建立OpenVPN/SSTP服务端:
生成和部署证书:

ServerCertRegenerate IP        ///远端服务器的IP(或者域名)
ServerCertGet ~/cert.cer       ///提取证书到 root目录下,SSTP VPN会用到

启用OpenVpn功能:

OpenVpnEnable yes /PORTS:1194      ///设定端口可以用其它端口替代1194
OpenVpnMakeConfig ~/my_openvpn_config.zip   ///提取OpenVpn配置文件

启用SSTP服务端功能:

SstpEnable yes

至此,SoftEtherVPN已经完成配置。Ctrl+C 退出管理模式。

收尾工作
1、设置防火墙,需要开几个需要的端口:

nano /etc/iptables/rules.v4

如上图,将下面几行设置粘贴上去:

-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p udp -m udp --dport 1194 -j ACCEPT
-A INPUT -p udp -m udp --dport 500 -j ACCEPT
-A INPUT -p udp -m udp --dport 4500 -j ACCEPT

Ctrl+X保存修改和退出。

执行下面命令载入规则:

/etc/init.d/netfilter-persistent reload

2、设置vpnserver开机自启动,我们利用rc-local这个服务来实现。

systemctl status rc-local

提示 Active: inactive (dead),虽然有这个服务,但是需要激活。

nano /etc/rc.local

放入下面代码:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
 
exit 0

Ctrl+X保存修改和退出。

赋予执行权限Shell:

chmod +x /etc/rc.local

启动服务:

systemctl start rc-local

rc-local服务状态

systemctl status rc-local

看到已经激活。设置开机自启动:

systemctl enable rc-local

没有成功。

nano /etc/systemd/system/rc-local.service

修改成下面内容:

[Unit]
 Description=/etc/rc.local Compatibility
 ConditionPathExists=/etc/rc.local

[Service]
 Type=forking
 ExecStart=/etc/rc.local start
 TimeoutSec=0
 StandardOutput=tty
 RemainAfterExit=yes
 SysVStartPriority=99

[Install]
 WantedBy=multi-user.target

Ctrl+X保存修改和退出。

systemctl enable rc-local 

成功。

nano /etc/rc.local

在exit 0 上面添加:

/usr/bin/vpnserver start

上图是按 Ctrl+X 后出现询问“ Save modified buffer ” ,按“y” 回车保存和退出。之前所有用nano编辑的都是这样保存的。

重启Debian (或Ubuntu)系统,发现VPN已经能够自启动了。一般来说,VPS很少发生重启动系统的情况,所以vpnserver开机自启动这一步,可做可不做。

关于客户端连接远程VPN,请看后续网页。

1、Softether客户端安装与使用

2、OpenVPN客户端安装使用

3、L2TP/IPsec VPN客户端

4、MS-SSTP-VPN