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 

  #下载地址:http://poptop.sourceforge.net/yum/stable/rhel5/i386/pptpd-1.3.4-2.rhel5.i386.rpm

  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中必须关闭! 

  
  设置地址池为192.168.100.10——192.168.100.20,localip为本机IP,remoteip为地址池,不建议设为同一网段 
  
  设置完成后保存,进入/etc/ppp/options.pptpd,查看加密和认证类型 

  
  默认拒绝使用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.1

测试:

   1、windows端,详细配置网上搜索。

      注意事项:×××sever地址只填写ip地址,不需要加端口。

    win8.1 钩上下图红框内:

        wKioL1T5a5TiJUwsAABH2xWT5ik775.gif

  2、linux 客户端详细配置:http://pynliu.blog.51cto.com/5027391/1617993

  这时再来查看linux网关,发现多了一个ppp0的接口,即×××虚拟接口 


查看网关路由表,可以发现从×××地址池里获取的地址自动加了一条默认路由,这样×××用户就可以自由访问内网的IP了。


测试与内网服务器连通情况,发现是没有问题的。


原文:http://johnsz.blog.51cto.com/525379/723040