vpn原理 在win和linux下搭建vpn

一、理解vpn的原理
VPN
虚拟专用网络的功能是:在公用网络上建立专用网络,用其进行加密通讯。vpn网关通过对数据包的加密和数据包目标地址的转换实现远程访问。
工作原理:
通常情况下,VPN网关采取双网卡结构,外网卡使用公网IP接入Internet。
网络一(假定为公网internet)的终端A访问网络二(假定为公司内网)的终端B,其发出的访问数据包的目标地址为终端B的内部IP地址。
网络一的VPN网关在接收到终端A发出的访问数据包时对其目标地址进行检查,如果目标地址属于网络二的地址,则将该数据包进行封装,封装的方式根据所采用的VPN技术不同而不同,同时VPN网关会构造一个新VPN数据包,并将封装后的原数据包作为VPN数据包的负载,VPN数据包的目标地址为网络二的VPN网关的外部地址。
在这里插入图片描述
网络一的VPN网关将VPN数据包发送到Internet,由于VPN数据包的目标地址是网络二的VPN网关的外部地址,所以该数据包将被Internet中的路由正确地发送到网络二的VPN网关。
在这里插入图片描述
网络二的VPN网关对接收到的数据包进行检查,如果发现该数据包是从网络一的VPN网关发出的,即可判定该数据包为VPN数据包,并对该数据包进行解包处理。解包的过程主要是先将VPN数据包的包头剥离,再将数据包反向处理还原成原始的数据包。
在这里插入图片描述
网络二的VPN网关将还原后的原始数据包发送至目标终端B,由于原始数据包的目标地址是终端B的IP,所以该数据包能够被正确地发送到终端B。在终端B看来,它收到的数据包就和从终端A直接发过来的一样。
在这里插入图片描述
从终端B返回终端A的数据包处理过程和上述过程一样,这样两个网络内的终端就可以相互通讯了。添加链接描述
通过上述说明可以发现,在VPN网关对数据包进行处理时,有两个参数对于VPN通讯十分重要:原始数据包的目标地址(VPN目标地址)和远程VPN网关地址。根据VPN目标地址,VPN网关能够判断对哪些数据包进行VPN处理,对于不需要处理的数据包通常情况下可直接转发到上级路由;远程VPN网关地址则指定了处理后的VPN数据包发送的目标地址,即VPN隧道的另一端VPN网关地址。由于网络通讯是双向的,在进行VPN通讯时,隧道两端的VPN网关都必须知道VPN目标地址和与此对应的远端VPN网关地址。添加链接描述

二、在win下搭建vpn
1.单击网络图标,然后选择“打开网络和共享中心”,再选择“更改适配器选项”
在这里插入图片描述
2.然后在“菜单栏”(如果没有菜单栏,按键盘上的Alt按键即可)点击“文件”,选择“新建传入连接”
在这里插入图片描述
3.勾选允许使用vpn连接到本机的用户,如果用户还未创建,点击“添加新用户”选择其他用户连接vpn的方式,这里选择“通过Internet”, 如果你的显示多项,请选择正确的方式
在这里插入图片描述
在这里插入图片描述
4.接着设置网络参数,如果对方连接后可以使用本机网络的DHCP服务器,那么可以跳过此设置。如果本机网络没有DHCP服务器,必须设置一下,点击“Internet”协议版本4(TCP/IP),点“属性”按钮,选择“指定IP地址”,设置后请按确定,然后点击“允许访问”。
在这里插入图片描述
5.按上述设置之后,其他用户就可以利用上面的账号以及你的IP地址利用VPN连接到你的网络了。

     三、在linux下搭建vpn
     rhel5.4 rpm安装基于pptp协议vpn

系统环境
[root@localhost ~]# uname -r
2.6.18-164.el5
[root@localhost ~]# lsb_release -a
LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: RedHatEnterpriseServer
Description: Red Hat Enterprise Linux Server release 5.4 (Tikanga)
Release: 5.4
Codename: Tikanga

一、检查安装和配置
因RHEL 5 的2.6.18 内核已经集成了 MPPE 和高版本的 ppp 。可以跳过安装 MPPE 和 ppp 。直接安装 PPTP
1.检查PPP是否支持MPPE
strings ‘/usr/sbin/pppd’ |grep -i mppe | wc --lines
如果以上命令输出为“0”则表示不支持;输出为“30”或更大的数字就表示支持。
2.以下命令检查内核MPPE补丁是否安装成功,MPPE module可否载如:
modprobe ppp-compress-18 && echo success

二、 软件包 (以下安装包若有则无需安装,MPPE无需安装)
1、dkms-2.0.17.5-1.noarch.rpm
2、kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
MPPE (Microsoft Point to Point Encryption,微软点对点加密)
3、ppp-2.4.4-2.el5.i386.rpm (5u4光盘中自带)
PPP(Point-to-Point Protocol,点到点协议)
4、pptpd-1.3.4-1.rhel5.1.i386.rpm
三、 安装软件包
[root@localhost src]# rpm -ivh dkms-2.0.17.5-1.noarch.rpm
[root@localhost src]# rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
[root@localhost src]# rpm -ivh ppp-2.4.4-2.el5.i386.rpm
[root@localhost src]# rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm
四、编辑pptpd主配置文件
1、#vim /etc/pptpd.conf
[root@localhost src]# grep -v ‘^#’ /etc/pptpd.conf | sed ‘/^$/d’
option /etc/ppp/options.pptpd
logwtmp
localip 192.168.0.10
remoteip 192.168.16.193-195

localip 服务器的外网IP地址:192.168.0.10,也就是VPN客户端拨号的IP地址。
remoteip 分配给VPN用户的IP段…比如192.168.16.193-195

2、#vi /etc/ppp/options.pptpd 修改内容如下:
[root@localhost src]# cat /etc/ppp/options.pptpd | grep -v ‘^#’ | sed ‘/^$/d’
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 202.99.192.68
proxyarp
五、启动pptpd服务器
[root@localhost ~]# service pptpd start
增加VPN用户和密码,会立即生效的。
在/etc/ppp/chap-secrets

client server secret IP addresses

“helloc” ppp-VPN “123456” *
如果想让一个人使用这个帐户,把*换成一个固定IP即可
六、开启路由转发
#vim /etc/sysctl.conf

Controls IP packet forwarding

net.ipv4.ip_forward = 1
路由转发立即生效:
[root@localhost ~]# sysctl -p /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
添加链接描述

猜你喜欢

转载自blog.csdn.net/qq_44747769/article/details/88383355
VPN