PPTP(点到点隧道协议)是一种用于让远程用户拨号链接到本地的ISP,经过因特网安全远程访问公司资源的新型技术。它能将PPP(点到点协议)帧封装成IP数据包,以便可以在基于IP的互联网上进行传输。PPTP使用TCP(传输控制协议)链接的建立,维护,与终止隧道,并使用GRE(通用路由封装)将PPP帧封装成隧道数据。被封装后的PPP帧的有效载荷能够被加密或者压缩或者同时被加密与压缩。咱们常见的PPTP都是在路由器上配置的,不过linux下也能够实现PPTP服务器的功能,下面就来看下linux下的PPTP ×××配置过程吧。
在配置PPTP以前,首先安装如下软件包,PPTP默认不是自带的
ppp-2.4.4-2.e15.rpm
pptpd-1.3.4-1.rhel5.1.i386.rpm linux
#下载地址:http://poptop.sourceforge.net/yum/stable/rhel5/i386/pptpd-1.3.4-2.rhel5.i386.rpmwindows
dkms-2.05-1.noarch.rpm
#动态内核模块支持的RPM安装包 安全
kernel_ppp_mppe
#MPPE加密协议的内核补丁的RPM安装包服务器
安装以前检查系统兼容性。
1)检查内核MPPE补丁
用如下命令检查内核是否支持MPPE补丁:
# modprobe ppp-compress-18 && echo ‘ok!!!’
若结果显示“ok!!!”则表示支持。
2)检查PPP是否支持MPPE
# strings '/usr/sbin/pppd'|grep -i mppe|wc -l
若结果显示0则表示不支持,而30或更大的数字就表示支持。网络
编辑 /etc/pptpd.conf文件,配置如下经常使用选项:
option /etc/ppp/options.pptpd ----pptp加密选项文件路径
stimeout 120 ----开始PPTP控制链接的超时时间,以秒计;
debug ----把全部debug信息记入系统日志/var/log/messages;
localip ----服务器×××虚拟接口将分配的IP地址,可设置为与×××服务器内网地址相同网段的IP,也能够设置为另外一网段的IP;
remoteip ----客户端×××链接成功后将分配的IP地址段,一样可设置为与×××服务器内网地址相同网段的IP地址段,也能够设置为另外一网段的IP地址段;
注意:关闭logwmpt功能,不然会与ppp协议冲突引发×××拨号失败!在RHEL4中没有问题,而在RHEL5中必须关闭!
tcp
设置地址池为192.168.100.10——192.168.100.20,localip为本机IP,remoteip为地址池,不建议设为同一网段
设置完成后保存,进入/etc/ppp/options.pptpd,查看加密和认证类型
ide
默认拒绝使用pap、chap和mschap认证,而采用mschap-v2进行认证,加密采用128位的mppe方式加密。
最后来查看pptpd口令文件,所谓口令就是×××帐号,它存储于/etc/ppp/chap-secrets文件中
测试
hujw //用户帐号,须要用双引号包含
* //表明自动识别当前服务器主机名,也能够手动配置
123456 //用户密码,须要用双引号包含
* //表明自动分配可用的IP地址,可根据须要指定IP地址
除了上面直接编辑配置文件的方式,还可使用***user命令来进行配置:
# ***user add hujw 123456 //添加一个hujw用户
# ***user del hujw //删除hujw用户。加密
****************************************************
对于开启了iptables过滤的主机,须要开放×××服务的端口
# iptables -A RH-Firewall-1-INPUT -p gre -j ACCEPT
# iptables -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 47 -j ACCEPT
# iptables -A RH-Firewall-1-INPUT –p tcp –m state –state NEW –m tcp –dport 1723 –j ACCEPT
****************************************************
pptpd配置完成,如今开启pptpd服务
service pptpd start
开启路由功能
echo 1 > /proc/sys/net/ipv4/ip_forward
配置一条通往外网的默认路由
router add –net 0.0.0.0 netmask 0.0.0.0 gw 198.2.3.1spa
如今来到windows主机上测试,首先保证网络是通的,可以ping通GW的外网接口。
建立×××拨号链接
这时再来查看linux网关,发现多了一个ppp0的接口,即×××虚拟接口