Centos&银河麒麟服务器版系统编译安装softetherVPN+开启softetherVPN静态路由表推送功能
使用centos7.6mini/银河麒麟服务器版编译安装softetherVPN并开启静态路由表推送功能
softetherVPN官网:http://softether.fishinfo.cn/cn.aspx
官网和网盘上下载源码都可以,我这里用的是9760版本的源码,其他版本源码测试未成功,建议使用9760源码
https://zzzsec.lanzn.com/iOHl91hnc1vg密码:fint
安装操作采用源码编译的方式进行安装,理论上redhat系linux系统(centos、银河麒麟服务器版、其他国产操作系统)下都是适用的,目前经过测试的有x86架构的centos和银河麒麟、arm架构下的银河麒麟
安装基础环境准备
安装好系统后,首先需要为softetherVPN安装一些编译时需要用到的组件
yum -y install wget gcc zlib-devel openssl-devel readline-devel ncurses-devel
将softetherVPN源码压缩包上传到服务器/opt目录下,我这里是放到了/opt目录下
编译安装softetherVPN
对源码文件进行解压缩
tar -zxvf softether-src-v4.38-9760-rtm.tar.gz
进入解压缩后的v4.38-9760目录下
修改源码文件参数以支持静态路由表下发功能
vi src/Cedar/Server.c
使用vi编辑器打开后,通过shift+g键跳转到文件的最后一行,由最后一行向前找到下面图中参数所在位置,将ret = true改为ret =false,然后wq保存后退出
此时可以开始对源码进行编译
./configure
make
等待一段时间完成编译后,进入bin/vpnserver路径下,通过./vpnserver start启动softetherVPN
SoftetherVPN正常启动后,可以看到此时VPN使用的端口为5555
为了方便后续调试,暂时把防火墙关闭
systemctl stop firewalld.service
配置softetherVPN(softetherVPN基础配置)
在同一局域网的另一台电脑上安装softetherVPN的管理程序,安装后如下图
打开后点击新设置
名称可以随意
主机名为安装softetherVPN server的centos的IP地址
端口号为前文centos softetherVPN启动后显示的端口
密码 首次连接不需要输入密码
填写完成后点击连接
连接到刚安装好的softetherVPN需要设置初始密码
首次设置提示简单安装,这里可以直接关闭
IPSEC/L2TP设置这里我们选择是,Windows可以使用Windows的softetherVPN客户端连接VPN,但是苹果电脑只能使用此方式连接VPN,如果后期需要macos连接vpn的话需要按照此图进行勾选,此处按照下图勾选IPSEC/L2TP的配置,IPSEC预共享密钥可以自己改动,尽量设置的复杂一些,设置完成后点击确定即可
首次进入设置默认存在一个DEFAULT的虚拟HUB,这里我们把DEFAULT虚拟HUB删除掉,然后新建一个虚拟HUB,这里建议虚拟HUB名为VPN,管理密码可以自己设置
创建完成后我们可以点击管理虚拟HUB进入虚拟HUB配置页面
点击管理用户可以新增或者删除用户,另外还有一些对用户的验证方式,此处不再赘述,客户端连接VPN之前,我们需要先在此处为需要使用的用户建立用户名和密码
虚拟NAT和虚拟DHCP服务器,用以为拨入用户分配IP地址和静态路由
这里我们先进行SecureNAT设置,再启用SecureNAT
一般情况下,我们可以直接使用默认配置,
虚拟主机网络接口IP为拨入VPN用户的网关
虚拟DHCP服务器设置可以为拨入用户自动分配IP
DNS服务器可以根据自己需求调整,保存默认也可以
虚拟NAT功能无特殊需求保持默认即可
此处配置完成后就可以直接启用SecureNAT功能,softetherVPN的基础功能就可以正常使用了
SoftetherVPN下发静态路由(softetherVPN定制化配置)
如果一些场景下,不需要vpn客户端所有的流量走VPN隧道,只需要特定网段的流量走softetherVPN的情况下,可以使用静态路由表推送功能,
使用静态路由表推送功能建议将SecureNAT配置中的默认网关删除留空,因为DHCP服务器分发IP的时候分发了默认网关,使用VPN的电脑就会生成一台默认路由指向网关,导致连接VPN的电脑的所有流量都会走VPN隧道出去,所以建议使用静态路由表推送功能时先删除掉网关
PS:以下配置为根据自己网络实际需求进行定制化配置,不了解自己网络的可以不看
根据自己需要编辑静态路由
例如:连接VPN的电脑访问192.168.3.0/24网段时走VPN隧道,其他情况下仍然走电脑自己的网络
可以编辑静态路由 192.168.3.0/255.255.255.0/192.168.30.1
SoftetherVPN设置开机自启+系统开启防火墙
设置softetherVPN开机自启已经相应防火墙策略开通
###编辑rc.local文件###
vi /etc/rc.d/rc.local
###在最后一行添加上述代码后保存###
/opt/v4.38-9760/bin/vpnserver/vpnserver start
为rc.local添加可执行权限
chmod +x /etc/rc.d/rc.local
开启防火墙,为softetherVPN开启特定端口(如果服务器不想使用防火墙的情况下,需要永久关闭防火墙,上文中的systemctl stop firewalld只能临时关闭防火墙,重启后防火墙会自动开启)
systemctl start firewalld
firewall-cmd --zone=public --add-port=5555/tcp --permanent
systemctl restart firewalld
softetherVPN特殊使用方式
1、不对客户端的IP进行nat,使用二层网桥
SecureNAT里面把虚拟NAT设置勾选去掉,不进行NAT功能,
虚拟DHCP服务器可设置可不设置,不设置的情况下,可以使用桥接的物理网卡连接网段内的DHCP服务器进行地址下发,也可以自己设置上,使用softetherVPN进行地址下发,网关设置为桥接的物理网卡所在网段的网关,DHCP分配的IP也设置成桥接的物理网卡所在网段可以使用的IP,虚拟主机网络接口可以不设置,设置的情况下不能与桥接的物理网卡所在网段的主机地址重合
设置二层桥接
虚拟HUB选择自己使用的虚拟HUB
桥接的网络适配器为安装softetherVPN的服务器的物理网卡,可以根据自己的需求选择
选择好后,选择创建桥
使用二层桥接的好处是,所有拨进来的VPN用户都会在VPN服务器所在的局域网内拥有单独的IP地址,通过网络设备可以分析到每一个用户的行为,同时因为没有使用softetherVPN自带的NAT功能,一定程度上也减少了设备的开销,使VPN访问速度以及延迟表现更好