SoftEther VPN部署相关介绍


介绍

SoftEther VPN是一个由筑波大学研究生Daiyuu Nobori(登太游)因硕士论文而开发的开源、跨平台、多重协议的虚拟专用网方案,此方案让一些虚拟专用网协议像是SSL VPN 、L2TP、IPsec、OpenVPN以及微软SSTP都由同一个单一VPN服务器提供。在2014年1月4日以GNU通用公共授权条款的方式转变为开源软件。

SothEther VPN是专门被设计为穿过防火墙的,支持NAT穿透,使其能越过政府或组织的防火墙,创建VPN通道。2013年3月,官方开始提供VPN Gate公共VPN中继服务器列表插件,以简化高强度网络审查地区有突破网络封锁(×××)需求的用户的操作难度。因为用了HTTPS来伪装连接,防火墙的深度数据包检测无法侦测到SofthEther的VPN发送数据包构成的VPN通道。但SoftEther的SSL VPN协议在中国大陆的部分地区仍然被封锁。
性能优化也是SoftEther VPN的一个目标。它使用像是利用全部以太网帧的策略,减少了内存复制的操作、平行传输和群集,这减少了通常VPN连接会有的延迟并增加了运输吞吐量。

互用性

VPN服务器和VPN桥接器支持微软、Linux、Mac OS X(除了10.9.x)、FreeBSD还有Solaris这些操作系统。SoftEther VPN支持自己的VPN协议但可以和OpenVPN、微软Secure Socket Tunneling Protocol(SSTP)、SSL VPN、EtherIP、L2TPv3、IPsec兼容。借由L2TP/IPsec/OpenVPN,可以支持移动设备系统如iOS、安卓、微软Windows手机。SothEther自身的VPN客户端支持微软、Linux、Mac。支持其他VPN协议的VPN客户端和终端也可能会被使用;这包括了来自诸如思科、Juniper、Linksys(有DD-WRT)、Asus等等公司生产的各式各样的路由器。

VPN服务器

SoftEther VPN服务器和其他VPN服务器一样,功能是接听来自客户端或桥接器使用各式协议的连接。
一个VPN服务器可以有好几个虚拟的集线器和交换器。虚拟集线器和实体的交换器一样,有完整的第二层网络分组交换功能。此外,虚拟集线器能被配置来定义IP数据包过滤项目,过滤经过集线器的数据包。虚拟的Network layer层交换器则像实体的路由器一样,有第三层IP静态路由功能。
一个VPN服务器可以有自带的桥接器。这个桥接器是一个在实体网络转接器和虚拟集线器之间的分组交换结构。系统管理员定义连接虚拟集线器和现有的内部网之间的桥接器,去创建一个远程访问的或站对站的VPN服务器。

VPN客户端

SoftEther VPN客户端是个虚拟化的网络适配器。一个有安装客户端程序的电脑能创建与服务器的连接。因为VPN服务器支持多种VPN协议的关系,VPN用户并不需要在电脑上安装SofthEther VPN客户端,而是用内置在操作系统内的VPN客户端程序创建连接。然而,SoftEther VPN客户端比系统内置程序还多了些高级功能。想要充分利用SothEther VPN服务器的全部性能的话,建议还是安装客户端程序。

VPN桥接器

SoftEther VPN桥接器是个创建站对站VPN的程序。要创建这样的VPN,系统管理员必须安装SoftEther VPN服务器程序在中央电脑,然后要一个以上的远程电脑安装VPN桥接器。VPN桥接器会以级联连接连接中央VPN服务器。级连连接类似在两个实体网络交换机之间,一个虚拟化的上行连接。

VPN服务器微软版管理程序

这是个SoftEther VPN服务器和桥接器会用到的图型化接口管理工具。系统管理员可用来连接远程的服务器或桥接器并管理。连接使用了SSL,管理指令则用RPC在SSL上传输。

VPN命令行管理实用工具

vpncmd是个自定义接口管理工具,用在服务器、各户端和桥接器上。它可以在所有支持的操作系统上运行。当有用户无法用Wine运行微软或Linux时,它可以转换到vpncmd来管理VPN。vpncmd也很适合用来运行批量操作,例如在虚拟集线器上创建好几个用户,或在服务器上创建好几个虚拟集线器。

架构

SoftEther VPN某些部分的架构有别一般传统使用IPsec的VPN系统。

虚拟集线器

虚拟集线器就是以软件方式模拟网络交换机。它会更新和维持自身拥有的转发数据对照表。虽然传统的网络交换机将这功能做在硬件上,SoftEther VPN以软件实现了同样功能。一个VPN服务器可以有好几个虚拟集线器,各自独立。VPN客户端和桥接端的连接就是以集线器用分组交换来处理。
当一个服务器上有数个虚拟的集线器时,为了安全,这些集线器都会独立分开。各个不同的管理员可以对相应的虚拟集线器授予权限。每个虚拟极限的管理员可以限定用户对象和ACLs,而这仅限于被授权的集线器上。

虚拟网络转接器

一个VPN客户端可以在自己的电脑上创立数个网络转接器。VPN用户能在虚拟网络转接器和远程目标的虚拟集线器间创建可用连接。当创建了可用连接,用户就能借此和远程的VPN网络沟通。它可以让任何程序或操作系统不用特定设置就能使用,就和硬件版的使用方式一样。

虚拟交换机

它以软件方式模拟了IP路由器。一个服务器上可以同时间创立好几个虚拟交换机。虚拟交换机有虚拟的IP接口连接虚拟集线器。它也有几个固定的对照表上的分配项目。
虚拟交换机也适合用来做大型的站对站VPN网络。虽然有个简单的方式可以达成,就是用桥接创建VPN,但如果有很多台电脑,输入站点间的连接的广播数据包数量就会大增。为了预防这样规模扩张的问题,VPN管理者用虚拟交换机来隔绝IP网络。

虚拟集线器之间的级联连接

管理员可以在地区或远程的虚拟集线器间定义一个级联连接。当级联连接被设立,原先独立的两个网段就被集成成一个了。所以这个级联连接功能被用来创建站对站的桥接。

虚拟集线器和网络间的地区桥接器

因为虚拟集线器和虚拟网络转接器都只是软件模拟的设备,借此发送的数据包是无法和硬件设备沟通的。因此,需要一个模拟和实体设备之间的桥接,才能创建远程访问VPN或站对站VPN。要做出桥接,地区桥接器功能转会转换虚拟集线器和实体网络转接器间的数据包,结合两个独立网段成为一个单一的网段。
在VPN服务器上定义过地区桥接器后,各VPN客户端就可以借由地区桥接器,连到VPN服务器并和其他网络上的设备沟通。这就是远程访问VPN。
如果网络管理者设立了远程站点VPN桥接器,并在VPN服务器和VPN桥接器上分别定义了两个地区桥接,然后定义服务器和桥接器间的级联连接,远程的两个网段在第二层级上就会直接连在一起。这就是站对站VPN。

防火墙,代理服务器和NAT通透

SoftEther VPN一个很重要的特色就对防火墙的穿透性、代理服务器和NATs。为此,SoftEther VPN支持SSL-VPN和NAT通透。它使用HTTPS协议来创建VPN通道。HTTPS用TCP/IP port 443 当作目的地。

多个SSL-VPN通道的平行传输机制

当用户选择SSL-VPN协议时,SlftEther VPN服务器和客户端会用一套平行传输机制来改善SSL-VPN通道的吞吐量。用户可以从1到32设置一个数字为同时并发传输通道的数量。当处在一个网速非常慢的地方时,这项性能调整会导致更快的吞吐量。一旦这功能被激活,逻辑VPN连接将包含多个TCP(HTTPS)连接。所有的数据包将会在适当的TCP连接中,被加进最优化模块的运算。如果逻辑VPN连接的TCP连接侦测到数据包的丢失,新的数据包就使用其他正常的VPN连接。这项快速切换最优化的功能造就高吞吐量。

NAT通透

传统的VPN系统需要用户去请求公司的防火墙管理者,在防火墙或公司与网络间的NAT开放一个终端点(TCP或UD端口)。为了减少需要开放终端点的情形,SlftEther VPN服务器有NAT通透功能。NAT通透会默认是引导状态。只要它引导,VPN客户端的电脑就能连接到被防火墙或NAT阻隔的VPN服务器,不需要在防火墙或NAT上特别设置。

通过ICMP和DNS上的VPN

有少数限制很多的网络只允许通过ICMP或DNS的数据包。在这种情形,TCP或UDP会被滤掉。为了让SoftEther VPN也能在这种网络创建连接,SoftEther VPN有特别为此设计的VPN功能。
这功能对穿过这样严格的防火墙非常有用。所有的VPN数据包都再度包成ICMP或DNS数据包来传输。接收端会从外层提出内层的数据包。因为有些公共Wi-Fi只能通过ICMP或DNS数据包,这让在公共Wi-Fi也能使用VPN。如果你为了出门,安装一个服务器在家中或办公室,你可以在限制网络中享受这自由协议的网络通信。

VPN Gate

VPN Gate是个SoftEther VPN的插件,它让用户能连接由志愿者提供,在自家电脑安装SoftEther的免费公共VPN服务器,此功能可用于帮助用户绕过ZF的防火墙。VPN Gate由筑波大学赞助

SoftEtherVPN部署

安装

1
2
3
4
wget http://jp.softether-download.com/files/softether/v4.20-9608-rtm-2016.04.17-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.20-9608-rtm-2016.04.17-linux-x64-64bit.tar.gz
tar -xf softether-vpnserver-*.tar.gz -C /usr/local/
cd /usr/local/vpnserver/
./.install.sh

启动服务

1
2
3
4
./vpnserver start   //运行 SoftEther VPN服务器的后台服务。
./vpnserver stop //停止 SoftEther VPN服务器的后台服务
./vpncmd //运行SoftEther VPN命令行实用工具来配置SoftEther VPN服务器。
当然,你可以配置Windows GUI远程管SoftEther VPN服务器。