一、VPN简介
1.VPN:Virtual Private Network,虚拟专用网络
在公用网络上建立专用网络的技术
1)整个VPN网络任意两个节点架构在公用网路服务商所提供的网络哦破平台,无需端到端的物理链路
2)用户数据在逻辑链路中传输,涵盖跨共享网络和公共网络的封装、加密和身份验证连接的专用网络的扩展
3)VPN技术可以将远程与的计算机连接到内部局域网,远程使用局域网内不共享资源
4)穿越专用网络或公用网络的安全的点对点连接,客户端基于TCP/IP协议
2.VPN隧道协议
隧道协议是利用一种协议传输另一种协议的技术,VPN隧道协议有PPTP、L2TP和IPSec,客户端和分服务器段所用协议必须相同
(1)PPTP
Point to PointTunneling Protocol,点对点隧道协议。
PPP点对点协议的扩展,并协调使用PPP的身份验证、压缩和加密机制
PPTP使用TCP连接的创建、维护和终止隧道,并使用GRE(通用路由封装)将PPP封装成隧道数据
(2)L2TP
Layer 2Tunneling Protocol,第二层隧道协议。基于RFC的隧道协议,是PPTP和L2F的组合
L2PT依靠Internet协议安全(IPsec)传输模式来提供加密服务
(3)IPSec
Internet ProtocolSecurity,Internet协议安全。支持各种常用的对称加密算法、非对称加密算法和Hash算法
IPSec协议是一个标准的第三层安全协议,在隧道外面再封装,保证传输过程的安全,可对所有Ip级的通信进行加密
二、VPN配置文件和管理命令
1./etc/pptpd.conf
#ppp /usr/sbin/pppd指 |
定pppd程序的路径 |
option /etc/ppp/options.pptpd |
指定ppp选项文件的路径 |
#debug |
调试功能 |
# stimeout 10 |
指定启动ctrl连接超时时长,单位秒 |
logwtmp |
使用/var/log/wtmp文件记录客户连接和断开的信息 |
#bcrelay eth1 |
打开从接口客户端的广播中继 |
#connections 100 |
限制客户端并发连接数 |
#localip 192.168.0.1 |
在隧道中为VPN服务器设置一个IP地址 |
#remoteip 192.168.0.234-238,192.168.0.245 |
在隧道中指定自动分配日给VPN客户端IP地址范围 |
2./etc/ppp/options.pptpd
PPP选项文件,指定身份认证方式、加密长度,以及为VPN客户端指定DNS服务器和WINS服务器的IP地址
name pptpd |
进行身份验证的本地系统的名称 |
#ms-dns 10.0.0.1 |
DNS服务器的IP地址 |
#ms-dns 10.0.0.2 |
备用DNS服务器的IP地址 |
#ms-wins 10.0.0.3 |
WINS服务器IP地址 |
#ms-wins 10.0.0.4 |
备用WINS服务器IP地址 |
#debug |
启动连接调试工具 |
#dump |
显示所有已设置的选项值 |
lock |
为伪tty以确保独家访问创建一个UUCP风格的锁定文件 |
nobsdcomp |
关闭BSD-compress压缩 |
nologfd |
关闭日志记录大标准错误 |
3./etc/ppp/chap-secrets
该文件用于添加VPn连接用户,一个用户一行内容,每行四列
格式:VPN_USERNAME 服务名 密码 隧道IP地址
VPN_USERNAME |
指定VPN连接用户 |
服务名 |
默认pptpd,其他需要修改/etc/ppp/options.pptpd参数name |
密码 |
VPN连接时使用的密码 |
隧道IP地址 |
该用户连接时分配给VPN客户端的隧道IP地址,*表示随机分配 |
4..vpnuser命令:管理VPN用户
vpnuser add USER_NAME USER_PASSWORD |
增加 |
vpnuser del USER_NAME |
删除 |
vpnuser show USER_NAME |
显示 |
vpnuser domain USER_NAME DOMAIN_NAME |
为VPN用户设置域 |
三、VPN服务器配置
1.安装ppp和pptpd
[[email protected] ~]# yum install -y ppp
[[email protected]~]# yum install -y pptpd
2.打开内核路由转发功能
[[email protected] ~]# vim /etc/sysctl.conf
net.ipv4_forward = 1
[[email protected] ~]# sysctl -p # 让内核参数生效
3.配置文件
1)/etc/pptpd.conf中配置localip、remoteip
2)/etc/ppp/options.pptpd配置ms-dns
4.添加VPN连接用户
5.配置NAt服务器
添加响应的iptables规则,使得访问公网IP时候会转发到内网
# iptables -t nat -A POSTROUTING -s ******* -o eth1 -j SNAT --to -source ****
注释:*表示的是实际中使用的ip地址
6.启动服务
[[email protected] ~]# service pptpd start