介绍
无论您是希望能够通过不安全的网络(例如Internet)远程连接到公司网络,还是要在两个远程点之间构建虚拟网络,您都将需要VPN(虚拟专用网络)。 VPN使您可以通过Internet或不受信任的网络安全地连接到远程LAN(局域网)。
SoftEther是一个开源VPN服务器,是OpenVPN的替代产品。它被认为是世界上功能最强大的easy-to-user multi-protocol VPN软件。本文涉及如何在Ubuntu Xenial Xerus Linux上设置SoftEther。
您将需要什么
- Ubuntu 16.04 Xenial Xerus Linux
- 建议使用30 GB的可用磁盘空间
- 根特权
请注意,本文使用的二进制文件是x64体系结构。如果您的计算机不是x64,则需要选择合适的二进制文件。
约定
#-要求给定linux命令以root特权直接作为root用户执行或通过使用sudo
命令
$-需要给出linux命令以普通非特权用户身份执行
> -从vpncmd命令行界面执行的给定命令
准备服务器
升级系统:
$ sudo apt update
$ sudo apt upgrade
安装(如果尚未安装)build-essential
出于编译目的:
$ sudo apt install build-essential
安装SoftEther
获取软醚源
让我们获取SoftEther的源代码(最新版本是2016-11-27发布的4.22版本):
$ wget http://www.softether-download.com/files/softether/v4.22-9634-beta-2016.11.27-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.22-9634-beta-2016.11.27-linux-x64-64bit.tar.gz
(adsbygoogle = window.adsbygoogle || [])。push({});
解压缩源
$ tar xzf softether-vpnserver-v4.22-9634-beta-2016.11.27-linux-x64-64bit.tar.gz
成功解压后,我们找到一个名为vpnserver
在当前目录中。
从源代码安装
$ cd vpnserver
$ sudo make
在安装过程中,我们将必须输入1
阅读许可协议,输入1
再次确认我们已经阅读了许可协议,最后键入1
同意许可协议。安装后,我们可以查看输出以确认整个过程正确无误。一切正确完成后,我们将可以使用以下命令从安装文件夹运行vpn服务器:
$ sudo ./vpnserver start
将其配置为daemon
。
配置为守护程序
让我们按照以下步骤将vpn服务器配置为daemon
。
将安装文件夹移至/usr /local
$ cd ..
$ sudo mv vpnserver /usr/local
赋予文件适当的权利
$ cd /usr/local/vpnserver/
$ sudo chmod 600 *
$ sudo chmod 700 vpnserver
$ sudo chmod 700 vpncmd
在继续进行操作之前,让我们检查一下vpn服务器能否在我们的服务器上正常运行。在开始之前进行此检查很重要vpnserver
。
- 跑过
vpncmd
命令 - 类型
3
- 然后输入
check
$ cd /usr/local/vpnserver/
$ sudo ./vpncmd
(adsbygoogle = window.adsbygoogle || [])。push({});
如果一切都做好,我们将在操作结束时收到“All checks passed”消息。
创建系统服务
创建文件/lib/systemd/system/vpnserver.service
$ sudo vi /lib/systemd/system/vpnserver.service
并将以下内容放入其中:
[Unit]
Description=SoftEther VPN Server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop
[Install]
WantedBy=multi-user.target
现在,VPN服务器会在启动时自动启动,并且我们能够使用以下方法管理vpnserversystemctl
。
(adsbygoogle = window.adsbygoogle || [])。push({});
准备SoftEther VPN服务器以供使用
SoftEther提供了许多用例:临时VPN,对LAN的远程访问,LAN对LAN桥接器等。在本文中,我们将其配置为“对LAN的远程访问”。我们将首先创建一个virtual hub
,然后在两者之间建立一种联系virtual hub
和服务器网络(公司LAN)。
设置vpncmd的管理员密码
出于明显的原因,建议立即为设置管理员密码vpncmd
一旦安装了VPN服务器。这是通过vpncmd
效用:
$ cd /usr/local/vpnserver/
$ sudo ./vpncmd
如上图所示,我们选择1
对于“ VPN Server或VPN Bridge的管理”,只需按Enter
对于以下问题,直到我们得到VPN Server>
提示。在命令提示符下,我们键入ServerPasswordSet
。
创建一个虚拟中心
通过使用vpncmd
,我们将创建一个virtual hub
名为“myFirstHUB”:
$ cd /usr/local/vpnserver/
$ sudo ./vpncmd
> HubCreate myFirstHUB
将虚拟集线器连接到服务器网络
为了允许客户端访问服务器网络,我们需要链接virtual hub
到局域网。可以使用本地网桥连接或使用SecureNAT
功能。就我们而言,SecureNAT
功能将被使用。SecureNAT
功能允许将VPN服务器用作简单网络网关,DHCP服务器或简单网关来远程访问远程站点。让我们选择我们的virtual hub
并启用SecureNAT
功能。
$ cd /usr/local/vpnserver/
$ sudo ./vpncmd
> Hub myFirstHUB
> SecureNatEnable
建立使用者
创建用户的命令:UserCreate
创建用户后,我们需要设置密码。请注意,可以使用其他身份验证方法:NTLM
,RADIUS
等等。默认的身份验证方法是“password”。
设置密码的命令:UserPasswordSet
(adsbygoogle = window.adsbygoogle || [])。push({});
客户端配置
SoftEther为许多操作系统(包括Linux)提供客户端。
下载客户端
我们将使用wget
命令下载客户端。
$ wget http://www.softether-download.com/files/softether/v4.22-9634-beta-2016.11.27-tree/Linux/SoftEther_VPN_Client/64bit_-_Intel_x64_or_AMD64/softether-vpnclient-v4.22-9634-beta-2016.11.27-linux-x64-64bit.tar.gz
解压缩源
$ tar xzf softether-vpnclient-v4.22-9634-beta-2016.11.27-linux-x64-64bit.tar.gz
从源代码安装
客户端编译类似于服务器。
$ cd vpnclient
$ sudo make
安装后,我们将更改文件权限,如下所示:
$ sudo chmod 600 *
$ sudo chmod 700 vpnclient
$ sudo chmod 700 vpncmd
现在,我们可以启动VPN客户端并进行所需的配置以连接到服务器。
$ sudo ./vpnclient start
$ sudo ./vpncmd
选择2
进入“ VPN客户端管理”。并执行以下操作:
- 创建一个虚拟适配器(使用
NiceCreate
,输入您想要的“any”名称) - 建立VPN连线(
AccountCreate account0
) - 指定目标服务器的主机名和端口号(server:port)
- 选择
virtual hub
您要连接的主机(在我们的例子中,我们使用的是在服务器上创建的“myFirstHUB”) - 输入用户名
- 使用先前创建的虚拟适配器
现在,我们可以启动VPN客户端连接。在此之前,我们必须为我们先前在VPN连接中配置的用户指定密码。
> AccountPassword account0
> standard
> AccountConnect account0
客户端现在已连接,但没有IP地址分配给虚拟适配器。最后一步,我们需要从vpn服务器请求IP地址。我们可以用ifconfig
查找vpn虚拟适配器的命令(前缀为vpn_
),然后使用dhclient
命令以请求IP地址。
$ sudo dhclient vpn_ethvpn0
执行此命令后,VPN客户端将从SoftEther VPN服务器获取IP地址,并可以与远程LAN通信。
感谢您对本文的关注。感谢您提出的问题和改进。