VPN的工作原理:
1.vpn网关一般是采用双网卡结构,外网卡使用公网IP地址来接入internat,内网接入公司的局域网。
2.客户端在使用VPN通信时,先对数据包进行封装,加一个公网的ip,然后发给VPN服务器端,服务器收到数据包后,会拆去包头,还原成原始的数据包,然后进行处理,服务器通信时,也会加包头,再发出去
VPN 的应用分类:
(1)Access VPN(进程接入 VPN):客户端到网关,使用公网作为骨干网在设备间传输 VPN 数据流量;
(2)Intranet VPN(内联网 VPN):网关到网关,通过公司的网络架构连接来自同公司的资源;
(3)Extranet VPN(外联网 VPN):不合作伙伴企业网构成 Extranet,将一个公司不另一个公司的资源连接。
Linux 下常用的 VPN 软件:
1、OpenVPN 概述:
OpenVPN 是一款在 Linux 网关服务器使用的开源的 VPN 软件,顾名思义,其实就是用来打通一条安全的虚拟与用通道,实现用户进程办公,获取内网资源。该软件可跨平台在在 Linux、xBSD、Mac OS X 不 Windows 间使用,幵利用 openssl 作为加密库,使
用加密证书戒用户名/密码来实现身份验证,是一款丌可多得的开源 VPN 解决方案。
2、SoftEther VPN 概述:
SoftEther VPN 是日本筑波大学的一个研究项目,是一个开放源代码的跨平台多协议 VPN 程序,它包括服务器端、客户端、服务器端管理工具等数个软件,支持 SSL-VPN (SoftEtherVPN) 协议、 L2TP/IPsec 协议、 OpenVPN 协议和 Microsoft SSTP 协议,Windows、Linux、Android 和 IOS 等操作系统都可以连接到 SoftEther VPN 服务器。
一、安装VPN
1)在安装VPN前我们需要安装它的依赖库如下
#yum -y install gcc zlib-devel openssl-devel readline-devel ncurses-devel
2)依赖库安装完成后我们在安装softether server
1.通过官网下载:SoftEther VPN Project - SoftEther VPN Project
选择对应操作系统的类型和CPU的类型
解压缩
tar xvf 文件名来解压缩
切换到解压出来的目录中 依次敲打命令
# tar zxf softether-vpnserver-v4.20-9608-rtm-2016.04.17-linux-x64-64bit.tar.gz
1.[root@yankerp ~]# cd vpnserver/
2.[root@yankerp ~]# make
第一步提示Do you want to read the License Agreement for this software ?
翻译:你想读这个软件的许可协议吗? 我们选择1
上面操作完成后出现了:
Did you read and understand the License Agreement ?
翻译:你读过并理解许可协议了吗? 我们继续选择1 yes
以上操作完成后出现:Did you agree the License Agreement ?
翻译:你同意许可协议吗? 我们继续选择1 yes
最后出现以下显示证明安装成功!
二、启动
1)启动vpnserver
进入 vpnserver目录
./vpnserver start
提示以下信息表示
设置 SoftEther VPN 服务
开启服务:./vpnserver start
关闭服务:./vpnserver stop
最好将服务器加入到开机启动项中,这样服务器重启了就不用每次都手动到 SSH 里开启了。当然了最好的办法还是用 systemd 啦!
接下来我们将SoftEther设置为服务项。
# 新建启动脚本/etc/systemd/system/vpnserver.service vim /etc/systemd/system/vpnserver.service
vi /etc/rc.local
在脚本中输入如下内容(大家需要注意的是“/ root/vpnserver/”是你的安装路径,要自行修改)。
[Unit] Description=SoftEther Server After=network.target [Service] Type=forking ExecStart=/root/vpnserver/vpnserver start ExecStop= /root/vpnserver/vpnserver stop [Install] WantedBy=multi-user.target
服务文件内容如下图所示。
接下来启动服务,并设置为开机自启动,同时关闭防火墙。
# 启动服务 systemctl start vpnserver # 开机自启 systemctl enable vpnserver
保存退出即可
管理 SoftEther VPN Server 服务
设置好账号密码之后,我们就可以切换到带有图形界面的设备上配置服务器啦!考虑到 Windows 用户居多,在此我们就以 Window 为例进行讲解(其他版本官网也有下载)。
官网下载地址:SoftEther 下载中心
安装时注意选择这个
点击新设置,
设置名称、主机名(Linux 服务器的 IP 不需要端口号)、管理密码,点确定。
之后选择刚刚新建的设置,点击连接按钮。
关闭两个窗口来到主要的管理界面:
警告
请一定要注意,SecureNAT 和 Local Bridge(本地桥)不可以同时开启!
◇1. 新建 Hub
原来的 Hub 名字比较难听,为了体验一把,我们就把原来的 DEFAULT 这个 hub 删掉,然后点击创建虚拟 Hub
密码可选。
◇2. 创建用户
点击管理虚拟 Hub - 管理用户,左下角的新建。输入用户名,可以使用匿名的方式认证、也可以使用账号密码、甚至是证书认证也可以。
安全策略那里可以设置此用户的最大下载速度、最大上传速度,简直是为了商用而准备的!
◇3. 配置 SecureNAT
在 "虚拟 Hub" 界面点击 "虚拟 NAT 和虚拟 DHCP 服务器"
创建好以后,点击 [管理虚拟 HUB]。
首先把 DHCP 服务器打开,这样连接 VPN 之后就会自动分配 IP 地址,点击 [虚拟 NAT 和虚拟 DHCP 服务器] → [启用 SecureNAT] → [SecureNAT 配置] → (如只配置成SoftEther VPN Server只走内网)取消选中 [使用虚拟 NAT 功能],如果不取消选中,当客户端连接 SoftEther VPN 之后,所有网络流量都会经过 SoftEther VPN Server。然后把 [默认网关地址] 和 [DNS 服务器地址] 清空 → [确定] → 关闭 [虚拟 NAT 和虚拟 DHCP 服务器] 窗口。
第二种内网和外网的流量分开办法
v4.39版本后,可以直接在 “编辑该静态路由表以推送”用拆分隧道,由公网服务端推送一条路由信息到连接上的客户端来解决这个问题,访问内网的流量才走服务器,互联网和其他网络还是走本地,在官方下载的版本都不支持推送路由,会提示“不支持此功能。它尚未在SoftEther VPN的开源版本上实施” 解决办法为:可以修改配置文件实现
- 1.在SoftEther VPN安装目录下把“lang.cnf里面改成en”
- 2.SoftEther VPN Service管理工具中,在编辑设置里“把ddns再禁用”就行了
- 以方法摘自:搭建内网共享服务器 - 爆胎博客
请一定要注意,SecureNAT 和 Local Bridge(本地桥)不可以同时开启!否则会造成链路层死循环占用大量 CPU
◇4.L2TP Over IPSec/PSK 搭建方法:
主界面点击 L2TP,勾选全部选项,设置一个预共享密钥(当成 WiFi 密码随意设置)。
连接方法(Windows),
首先按照常理设置好一个 VPN 连接,连接属性,
协议选择 L2TP/IPSec,高级设置里选择 "预共享密钥",输入密钥确定即可。
Windows下OpenVPN的安装使用
1.window 客户端:2.4_rc1(不支持XP,不分系统位数,可保存用户密码)、2.3.13版本64位系统、2.3.13版本32位系统
2.下载windows客户端,双击运行安装程序,请按照默认选项安装,如果弹出TAP网卡安装提示,请允许
3.运行OpenVPN GUI快捷键
4.桌面右下角找到对应图标,右键选择可用的配置文件点击“connect”
5.如果客户端里提示路由配置错误,请退出程序,右键OpenVPN GUI快捷键,使用管理员身份运行
6.客户端setting里,默认代理为配置文件中的代理,即默认不使用代理,如果使用中提示代理错误,请检查是否误配置
OpenVPN 的配置涉及到证书的生成,但是 SoftEther 同样提供了比较方便的服务器、客户端配置方法。
服务器配置方法:
管理主界面点击右下角的 OpenVPN/MS-SSTP,设置一个 UDP 端口,然后点击 "为 OpenVPN 生成配置文件",之后将弹出的 zip 文档保存,确定。
客户端配置方法:
下载并安装 OpenVPN 客户端,
将刚刚下载的 zip 文档中 l3 结尾的文件复制到安装目录下的 config 文件夹下。
打开 openVPN,右下角右键选择 Connect,然后输入虚拟 Hub 里设置的一对账号密码即可。
Android:安装客户端程序,右上角菜单依次选择 Import-Import Profile from SD Card,选择保存的 l3 的 ovpn 文件,输入账号密码点击 connect,信任即可。
据其他前辈说
实践表明,SecureNAT 和 Local Bridge(本地桥)不可以同时开启!否则会造成链路层死循环占用大量 CPU
插件 SoftEther V.P.N Server 用户权限控制
新建一个用户,然后通过管理访问列表去限制这个用户的权限,两条规则搞定。 step1. 按照大神的帖子,已经有一个用户可以正常使用,然后再新建一个用户。 比如我新建了用户 hao,设置好账号密码,希望这个账号可以FQ,但是限制局域网访问权限。 ![]() step2. 点管理访问列表, 新建两个规则。 ![]() ![]() ![]() 建好规则后如下图,两条规则顺序不要搞错。这样子用户 hao 就无法访问我局域网内除了192.168.1.1的机器了。 如果你的路由上挂了硬盘下载,开了SMB共享的匿名访问,又不想让别人访问,也可以通过建立规则禁止某些V.P.N用户的SMB访问权限。 我试过如果上面的第一条规则不生效,用户hao 还是可以连上服务器,但是不能FQ了,也无法ping通路由器。 ![]() |