勿六七 2011-12-23
PPTP(点到点隧道协议)是一种用于让远程用户拨号连接到本地的ISP,通过因特网安全远程访问公司资源的新型技术。它能将PPP(点到点协议)帧封装成IP数据包,以便能够在基于IP的互联网上进行传输。PPTP使用TCP(传输控制协议)连接的创建,维护,与终止隧道,并使用GRE(通用路由封装)将PPP帧封装成隧道数据。被封装后的PPP帧的有效载荷可以被加密或者压缩或者同时被加密与压缩。我们常见的PPTP都是在路由器上配置的,不过linux下也可以实现PPTP服务器的功能,下面就来看下linux下的PPTP VPN配置过程吧。
在配置PPTP之前,首先安装以下软件包,PPTP默认不是自带的(软件包见附件)。
具体下载目录在 /pub/2011/12/23/RHEL5.7下PPTP VPN服务器配置/
ppp-2.4.4-2.e15.rpm
pptpd-1.3.4-1.rhel5.1.i386.rpm
安装之前检查系统兼容性,因为RHEL 5.7的内核已经集成了MPPE和高版本的PPP,因此可以跳过安装配置MPPE和PPP的过程直接安装PPTP。
1)检查内核MPPE补丁
用以下命令检查内核是否支持MPPE补丁:
# modprobe ppp-compress-18 && echo ‘ok!!!’
若结果显示“ok!!!”则表示支持。
2)检查PPP是否支持MPPE
# strings '/usr/sbin/pppd'|grep -i mppe|wc -l
若结果显示0则表示不支持,而30或更大的数字就表示支持。
3)安装pptpd和ppp
# rpm –ivh ppp-2.4.4-2.e15.rpm
# rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm
配置PPTP VPN Server,拓扑如下图所示
编辑 /etc/pptpd.conf文件,配置以下常用选项:
option /etc/ppp/options.pptpd ----pptp加密选项文件路径
stimeout 120 ----开始PPTP控制连接的超时时间,以秒计;
debug ----把所有debug信息记入系统日志/var/log/messages;
localip ----服务器VPN虚拟接口将分配的IP地址,可设置为与VPN服务器内网地址相同网段的IP,也可以设置为另一网段的IP;
remoteip ----客户端VPN连接成功后将分配的IP地址段,同样可设置为与VPN服务器内网地址相同网段的IP地址段,也可以设置为另一网段的IP地址段;
注意:关闭logwmpt功能,否则会与ppp协议冲突引起VPN拨号失败!在RHEL4中没有问题,而在RHEL5中必须关闭!
设置地址池为192.168.100.10——192.168.100.20,localip为本机IP,remoteip为地址池,不建议设为同一网段
设置完成后保存,进入/etc/ppp/options.pptpd,查看加密和认证类型
默认拒绝使用pap、chap和mschap认证,而采用mschap-v2进行认证,加密采用128位的mppe方式加密。
最后来查看pptpd口令文件,所谓口令就是VPN账号,它存储于/etc/ppp/chap-secrets文件中
hujw //用户账号,需要用双引号包含
* //代表自动识别当前服务器主机名,也可以手动配置
123456 //用户密码,需要用双引号包含
* //代表自动分配可用的IP地址,可根据需要指定IP地址
除了上面直接编辑配置文件的方式,还可以使用vpnuser命令来进行配置:
# vpnuser add hujw 123456 //添加一个hujw用户
# vpnuser del hujw //删除hujw用户。