如何使用 SoftEther 安装多协议 VPN 服务器

介绍


本文解释了如何使用 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/

Browsing SoftEther Files List Using Lynx

此页面包含所有版本的SoftEther可用. 选择您想要的版本(在本教程中我们使用 v2.00-9387-rtm-2013.09.16)然后按 Enter 去链接. 现在选择 Linux,在下一页选择 SoftEther VPN Server. 根据您的服务器硬件架构,选择一个包; 32bit - Intel x8664bit - 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 License Agreement

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** 的文件,并将其更改为以下:

首先使用vinano创建并打开文件:

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 HTTPSSSL-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 x8664bit - 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等连接到我们的服务器。

Submitted by: Nima Karimi
comments powered by Disqus