介绍
本文解释了如何使用 SoftEther 包安装和配置多协议 VPN 服务器,我们在 Linux 上通过 IPSec 和 SSTP VPN 服务器启用和配置 OpenVPN 和 L2TP。
什么是软件
SoftEther VPN 是世界上最强大、最易于使用的多协议 VPN 软件之一,由日本苏库巴大学优秀的人们制作,它运行在 Windows、Linux、Mac、FreeBSD 和 Solaris 上,是免费的和开源的。
步骤1:创建虚拟服务器
正如SoftEther的网站所提到的,SoftEther将在几乎每个Linux发行版上运行,其内核是 v2.4 或更高,但建议选择这些发行版之一:CentOS、Fedora 或 Red Hat Enterprise Linux。
我个人已经在Ubuntu,CentOS和Fedora上尝试过,这两个32位和64位版本,它工作得很好。
步骤 2:更新您的服务器软件
使用下面的命令,更新和升级您的服务器软件包到最新版本:
** Debian / Ubuntu:**
apt-get 更新 && apt-get 升级
首页 / Fedora:
1yum upgrade
步骤三:下载软件
您可以从他们的网站下载最新的SoftEther Linux服务器包:
【下载】【下载】【下载】
不幸的是,目前没有办法通过包管理器(甚至使用单个URL)获取最新版本,因此您必须使用桌面浏览器浏览他们的网站以下载包. 有几种方法来处理此问题:首先,在自己的计算机上浏览他们的网站,然后根据您的服务器配置(OS,x86/x64,等)找到相应的包链接,然后使用 wget将包下载到您的服务器。
以下是如何使用Lynx:
首先在您的服务器上安装 Lynx:
** Debian / Ubuntu:**
apt-get install lynx -y
首页 / Fedora:
1yum install lynx -y
现在使用下面的命令浏览SoftEther下载网页:
1lynx http://www.softether-download.com/files/softether/
此页面包含所有版本的SoftEther可用. 选择您想要的版本(在本教程中我们使用 v2.00-9387-rtm-2013.09.16)然后按 Enter 去链接. 现在选择 Linux,在下一页选择 SoftEther VPN Server. 根据您的服务器硬件架构,选择一个包; 32bit - Intel x86 和 64bit - Intel x64 或 AMD64 工作DigitalOcean 32bit或 64bit dropplets. 最后从下一页下载 tar 文件,按下链接上的D
键,并在 Lynx 要求时选择保存到磁盘
。 文件保存后,我们可以按Q
停止 Lynx 并继续安装。
步骤 4:安装和配置SoftEther
现在我们必须从SoftEther下载页面中提取收到的包,并编译它. 在本教程中使用的包名为 softether-vpnserver-v2.00-9387-rtm-2013.09.16-linux-x86-32bit.tar.gz,所以我们将使用下面的命令提取它:
1tar 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, and ncurses
请确保这些都安装了,您可以使用下面的命令安装构建 SoftEther 所需的所有包:
• Debian 和 Ubuntu:
1apt-get install build-essential -y
首页 / Fedora:
1yum groupinstall "Development Tools"
注: 在Fedora上,我发现 gcc 包无法使用上面的命令安装,所以您必须使用 yum install gcc 手动安装它。
现在我们已经安装了所有必要的包,我们可以使用以下命令编译SoftEther:
第一个CD
进入 vpnserver目录:
1cd vpnserver
现在运行Make
来将SoftEther编译成可执行文件:
1make
SoftEther 将要求您阅读并同意其许可协议. 选择 1 阅读协议,再次确认阅读,最后同意许可协议。
SoftEther 现在被编译成可执行的文件(vpnserver 和 vpncmd)。如果该过程失败,请检查是否安装了所有要求包。
现在 SoftEther 已编译,我们可以将 ** vpnserver** 目录移动到其他地方,在这里我们将其移动到 usr/local:
1cd ..
2mv vpnserver /usr/local
3cd /usr/local/vpnserver/
然后更改文件权限以保护它们:
1chmod 600 *
2chmod 700 vpnserver
3chmod 700 vpncmd
如果您希望 SoftEther 作为初创服务开始,请在 /etc/init.d 目录中创建一个名为 ** vpnserver** 的文件,并将其更改为以下:
首先使用vi
或nano
创建并打开文件:
1vi /etc/init.d/vpnserver
然后将以下内容插入到文件中:
1#!/bin/sh
2# chkconfig: 2345 99 01
3# description: SoftEther VPN Server
4DAEMON=/usr/local/vpnserver/vpnserver
5LOCK=/var/lock/subsys/vpnserver
6test -x $DAEMON || exit 0
7case "$1" in
8start)
9$DAEMON start
10touch $LOCK
11;;
12stop)
13$DAEMON stop
14rm $LOCK
15;;
16restart)
17$DAEMON stop
18sleep 3
19$DAEMON start
20;;
21*)
22echo "Usage: $0 {start|stop|restart}"
23exit 1
24esac
25exit 0
最后保存并关闭文件,按 esc 并键入 :wq 以关闭 vim。
我们必须在 /var/lock/subsys上创建一个目录,如果没有:
1mkdir /var/lock/subsys
现在更改启动脚本的权限,并使用下面的命令启动 vpnserver:
1chmod 755 /etc/init.d/vpnserver && /etc/init.d/vpnserver start
使用下面的命令让它在启动时运行:
• Debian 和 Ubuntu:
1update-rc.d vpnserver defaults
首页 / Fedora:
1chkconfig --add vpnserver
SoftEther VPN 服务器现在已安装并配置为在启动时运行,最后,我们必须检查VPN服务器是否工作:
1cd /usr/local/vpnserver
2./vpncmd
现在按 3 选择 ** 使用 VPN 工具,然后键入:
1check
如果所有检查都通过,那么您的服务器已经准备好成为SoftEther VPN服务器,您可以继续进入下一步。
配置 SoftEther VPN 服务器有两种方法:您可以使用基于 Windows 的服务器管理器远程管理和配置任何数量的 SoftEther VPN 服务器;或者使用内置 ** vpncmd ** 工具来配置您的服务器。
您可以使用他们的网站下载SoftEther Server Manager for Windows,并使用其提供的GUI进行配置,如果您是Windows用户,这是最理想的方式。
在这里,我们使用vpncmd来配置我们的VPN服务器。
步骤五:更改管理员密码
现在你已经安装了 SoftEther VPN 服务器,你必须分配一个管理员密码,以便与 SoftEther 一起使用。你可以使用 vpncmd,这是 SoftEther 的命令行管理工具:
1./vpncmd
点击 1 以选择VPN 服务器或 VPN 桥梁管理
,然后按 Enter,而无需输入任何东西以连接到 localhost 服务器,再按 Enter,而无需输入任何东西以通过服务器管理模式连接到服务器。
然后使用下面的命令更改管理员密码:
ServerPasswordSet
步骤 6:创建虚拟中心
要使用SoftEther,我们首先必须创建一个虚拟中心. 在这里,作为一个例子,我们创建了一个名为 VPN的中心,以便在 vpncmd工具中输入下面的命令:
1HubCreate VPN
接下来,您将被要求输入管理员密码,此密码将被使用,当您未登录作为服务器管理模式,并且您想要管理该特定中心。
现在,选择您使用此命令创建的虚拟中心:
1Hub VPN
步骤7:启用安全
有两种方法可以将中心连接到服务器网络:使用本地桥连接或使用 SecureNAT 函数。
您可以单独使用它们,但将这两者一起使用会导致问题。
在这里,我们使用 SecureNAT,这是非常容易设置,在大多数情况下工作相当好. 你也可以使用本地桥,但然后你必须安装和配置DHCP服务器。
SecureNAT 是虚拟 NAT 和 DHCP Server 函数的组合,您可以使用下面的命令启用 SecureNAT:
1SecureNatEnable
第8步:创建和管理用户
现在我们必须为我们的虚拟中心创建用户以使用VPN,我们可以使用命令 UserCreate创建虚拟中心的用户,并通过 UserList查看当前用户列表。
使用命令 UserCreate,我们创建了一个名为测试
的用户:
1UserCreate test
默认身份验证类型为密码,但我们可以使用下面的命令将其更改为另一种类型:
UserNTLMSet
用于 NT 域身份验证
UserPasswordSet
用于密码身份验证
「AnonymousSet」用于匿名身份验证
用于 RADIUS 身份验证的UserRadiusSet
UserCertSet
用于个人证书身份验证
UserSignedSet
用于签署证书身份验证
在本教程中,我们使用密码作为我们的 test用户的用户身份验证模式,因此使用此命令为用户设置密码 test:
1UserPasswordSet test
步骤 9:设置 L2TP/IPSec
要启用 L2TP/IPsec VPN 服务器,您可以使用下面的命令:
1IPsecEnable
输入此命令后,您将被要求配置 L2TP 服务器功能:
在 IPsec 服务器功能上启用 L2TP:选择 是以启用 L2TP VPN 在 IPSec 上使用预共享密钥加密.现在您可以使用 iPhone、Android、Windows 和 Mac OS X 设备连接到该服务器。
启用原始L2TP服务器功能:这将为没有IPsec加密的客户端启用L2TP VPN。
**在IPsec服务器功能上启用EtherIP / L2TPv3:通过IPsec兼容EtherIP / L2TPv3的路由器可以通过启用此功能连接到该服务器。
** IPsec 预共享密钥**:输入预共享密钥,用于 L2TP VPN。
**默认虚拟Hub在用户名中忽略HUB的情况下:用户必须通过使用 Username@TargetHubName作为连接时的用户名来指定他们试图连接的虚拟Hub。
步骤 10: 设置 SSTP/OpenVPN
SoftEther 可以克隆 Microsoft SSTP VPN 服务器和 OpenVPN 服务器的功能,但在我们启用这些功能之前,我们必须为我们的服务器生成一个自签名的 SSL 证书。
在这里,我们使用SoftEther的 ServerCertRegenerate命令为我们的服务器生成并注册一个自签名的SSL证书。
1ServerCertRegenerate [CN]
注1:SoftEther 还配备了内置的 Dynamic DNS功能,可为您的服务器分配一个独特且永久的主机名称。
注2: 如果您已经拥有 SSL 证书或使用 openssl创建了 SSL 证书,则可以使用ServerCertSet
命令将其添加到服务器中。
现在我们已经创建了证书,我们必须将证书下载给我们的客户端,并将其添加为值得信赖的。
1ServerCertGet ~/cert.cer
现在,您可以使用 FileZilla 或任何其他 SFTP 客户端将证书下载到您的客户端。
要在 Windows 中信任该证书,您必须在 Trusted Root Certification Authorities 商店中安装该证书。
现在我们已经为我们的服务器创建并注册了SSL证书,我们可以使用以下命令启用SSTP功能:
1SstpEnable yes
并启用OpenVPN:
1OpenVpnEnable yes /PORTS:1194
注: OpenVPN的默认端口是1194,但您可以将其更改为您想要的任何端口,通过更改上述命令的 /PORTS:1194部分到您想要的端口或端口(是的,它支持多个端口)。
在启用 OpenVPN 后,您可以下载 OpenVPN 客户端的样本配置文件. 在这里,我们创建了一个样本 OpenVPN 配置文件,并将其保存到 my_openvpn_config.zip:
1OpenVpnMakeConfig ~/my_openvpn_config.zip
然后您可以使用任何SFTP客户端如FileZilla下载并将其应用到您的OpenVPN客户端。
SoftEther 还为 Windows 和 Linux 提供专用 VPN 客户端软件。它支持一个名为 Ethernet over HTTPS或 SSL-VPN的 SoftEther 特定的协议,这是非常强大的。它使用 HTTPS 协议和端口 443 以建立 VPN 隧道,并且因为这个端口是众所周知的,几乎所有防火墙,代理服务器和 NAT 都可以通过该包。为了使用 SSL-VPN 协议,您必须下载并安装 SoftEther VPN 客户端,该服务可以从他们的网站获取。
步骤 11:连接到 SoftEther VPN 服务器(客户端配置)
由于SoftEther是一台多协议VPN服务器,所以您可以选择任何协议来建立与您的服务器的安全连接,包括L2TP,SSTP,OpenVPN和一个名为SSL-VPN的独家SoftEther协议。
然而,我更喜欢使用SSL-VPN,因为它既安全又快,而且,正如前面提到的,因为它使用一个常见且众所周知的端口(443或HTTPS端口),它可以穿透大多数防火墙。
在这里,我们使用SoftEther自己的VPN客户端软件连接到我们的服务器:
首先,从 SoftEther 网站下载 SoftEther VPN Client for Linux. 我们可以使用 lynx 浏览器下载它. 输入此命令来打开 SoftEther 的下载页面:
1lynx http://www.softether-download.com/files/softether/
然后就像你在下载服务器软件时一样,选择最新版本(在这里我们使用了 v2.00-9387-rtm-2013.09.16)。现在选择 Linux,在下一页选择 SoftEther VPN Client。现在根据你的系统的硬件架构,选择一个包(The 32bit - Intel x86和 64bit - Intel x64或 AMD64用于DigitalOcean 32bit或64bit滴)。
使用此命令提取您刚刚下载的 tar 文件:
1tar 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 成为可执行的文件(请确保您在客户端上安装了 Step 4 中提到的开发工具):
1cd vpnclient
2make
当被要求阅读和接受许可协议时,输入 1三次,然后将文件移动到另一个目录并更改权限:
1cd ..
2mv vpnclient /usr/local
3cd /usr/local/vpnclient/
4chmod 600 *
5chmod 700 vpnclient
6chmod 700 vpncmd
然后使用此命令启动VPN客户端服务:
1./vpnclient start
为了配置我们的客户端,我们将使用vpncmd
。当你在 vpnclient目录中时,输入此命令来运行vpncmd
工具:
1./vpncmd
选择 2 进入VPN 客户端管理
模式,然后按输入
来连接和管理您刚刚安装的本地 VPN 客户端。
SoftEther 使用虚拟适配器连接到我们的 VPN 服务器,使用此命令创建一个名为 myadapter的虚拟适配器:
1NicCreate myadapter
现在使用这个命令,创建一个名为 myconnection的新VPN连接:
1AccountCreate myconnection
然后输入您的 SoftEther VPN 服务器的 IP 和端口号码。端口号可能是您在您的服务器上设置的任何端口。默认情况下,SoftEther 会听取这四个端口: 443, 992, 1194, 5555。
1Destination VPN Server Host Name and Port Number: [VPN Server IP Address]:443
注: IP 地址代替,您也可以输入服务器的完全合格域名(FQDN)。
现在输入您试图在您的服务器上连接的虚拟中心的名称. 在我们的情况下,它被命名为 VPN:
1Destination Virtual Hub Name: VPN
然后输入您在服务器上创建的用户的用户名,我们创建了一个名为 test的用户:
1Connecting User Name: test
最后,输入您刚刚创建的虚拟中心的名称:
1Used Virtual Network Adapter Name: myadapter
现在我们的VPN连接已经建立,它已经准备好连接,最后一步是将身份验证模式更改为密码
,因为这就是我们在服务器上配置用户身份验证模式的方式:
1AccountPasswordSet myconnection
当被要求时,输入 标准作为密码身份验证方法:
1Specify standard or radius: standard
最后,我们可以连接我们的连接 - 使用这个命令来做到这一点:
1AccountConnect myconnection
您可以使用此命令查看连接状态:
1AccountStatusGet myconnection
** 注意:** 为了使您的连接到服务器更安全,并防止中间人攻击,最好使用SSL证书来识别您的服务器。 这样做可以很容易地使用SoftEther。 要做到这一点,您必须先将Cert文件下载到您的客户端,如在 步骤 10中所述,然后使用 CertAdd将其添加到您的客户端的可信证书中。
完结
在本文中,我们通过了使用 vpncmd的 SoftEther VPN 服务器设置的过程,这是由 SoftEther 提供的命令行管理工具. 这里所做的所有事情也可以使用 SoftEther Server Manager for Windows,并且使用该工具设置 SoftEther VPN 服务器甚至更容易。
我们已经成功安装并配置了使用SoftEther的多协议VPN服务器,现在客户端可以使用L2TP,IPsec,SSTP,OpenVPN等连接到我们的服务器。