环境:rhel5.0+ 2.6.18-8.el5+双网卡

.下载pptpd-1.3.4.tar.gz  http://sourceforge.net/projects/poptop/files/

安装pptpd

tar -vxzf pptpd-1.3.4.tar.gz

cd pptpd-1.3.4

./configure

make

make install

pptpd-1.3.4/samples/下的文件

pptpd.conf 拷贝至/etc

chap-secrets 拷贝至/etc/ppp

options.pptpd 拷贝至/etc/ppp

  
.修改配置文件

1. 编辑 vi /etc/pptpd.conf 文件,确定本地×××服务器的IP地址和客户端登录后分配的IP地址范围。pptpd.confPPTP服务PPTPD运行时使用的配置文件,常用选项如下(#号后是选项说明)
  option /etc/ppp/options.pptpd #PPP组件将使用的配置文件
  stimeout 10 #开始PPTP控制连接的超时时间,以秒计
  debug #把所有debug信息记入系统日志/var/log/messages
  localip 192.168.1.4 #服务器×××虚拟接口将分配的IP地址,修改成你的服务器地址
  remoteip 192.168.1.100-200 #客户端×××连接成功后将分配的IPIP段,如果是地址范围可表示为192.168.1.200-234的形式

 

2. 编辑 /etc/ppp/options.pptpd 文件,它是PPP功能组件pppd将使用的配置文件,由于PPTP ×××的加密和验证都与PPP相关,所以PPTP的加密和验证选项都将在这个配置文件中进行配置。
name pptpd  (服务器名服务器名称必须和chap-secrets称一致)
refuse-pap (拒绝pap身份认证模式)
refuse-chap (拒绝chap身份认证模式)
refuse-mschap (拒绝mschap身份认证模式)
require-mschap-v2  (在端点进行连接握手时需要使用微软的 mschap-v2 进行自身验证。)
require-mppe-128 (MPPE 模块使用 128 位加密。)
ms-dns 218.85.157.99  (ppp  Windows 客户端提供 DNS 服务器 IP 地址,第一个 ms-dns  DNS Master,第二个为 DNS Slave)
proxyarp (建立 ARP 代理键值。)
debug (开启调试模式,相关信息同样记录在 /var/logs/message 中。)
lock (锁定客户端 PTY 设备文件。)
nobsdcomp (禁用 BSD 压缩模式。)
novj
novjccomp (禁用 Van Jacobson 压缩模式。)
nologfd (禁止将错误信息记录到标准错误输出设备(stderr)

 

3. 编辑/etc/ppp/chap-secrets文件

pptpd server 连接帐户控制文件位于:/etc/ppp/chap-secrets.   chap-secrets 文件是有格式的,文件中每一行为一个客户端帐户,而一行又分为 4 段(用空格或者 TAB 分开),这 4 段从左到邮分别为:用户名、服务器名称*、密码、客户端分配到的 IP 地址。

#vi /etc/ppp/chap-secrets  
user                                 pptpd                              password                   IP
(
帐户名 )       (此处要与options.pptpdname一致)      (密码)      (客户端分配到的IP)

“Test***1 “                 pptpd                1               “*

“Test***2 “                 pptpd                1              “192.169.1.120”

--*表示×××客户机IP地址由PPTP服务在地址段中进行选择

 

4 .设置IP伪装转发

  只有设置了IP伪装转发,通过×××连接上来的远程计算机才能互相ping通,实现像局域网那样的共享。用下面的命令进行设置:

  #echo 1 > /proc/sys/net/ipv4/ip_forward

  可以将这条命令放到文件/etc/rc.d/rc.local里面,以实现每次开机时自动运行该命令。

 

5.打开防火墙端口

    要让外部用户能连接PPTP ×××,还需要在防火墙中加入以下规则(也就是将Linux服务器的1723端口和47端口打开,并打开GRE协议)

  #/sbin/iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
  #/sbin/iptables -A INPUT -p tcp --dport 47 -j ACCEPT
  #/sbin/iptables -A INPUT -p gre -j ACCEPT

 

6. 启动服务: /usr/local/sbin/pptpd

查看 ps –ef |grep pptpd  或者 netstat –atln|grep 1723

关闭服务  kill PID(pptpdPID)

 

.查看日志 tail /var/log/messages

.but I couldn't find any suitable secret (password) for it to use to do so.

/etc/ppp/chap-secrets

1)没有加入×××用户信息或用户格式错误 2)加载库文件时报版本错误

 

二.Plugin/usr/lib/pptpd/pptpd-logwtmp.so is for pppd version 2.4.3, this is 2.4.4
 
解决方法:
    
1)编辑 /usr/local/pptpd/etc/pptpd.conf logwtmp注释掉
     
2)编辑源码文件
/usr/local/src/software/pptpd-1.3.4/plugins/patchlevel.h
define VERSION “2.4.3″修改为:define VERSION“2.4.4″后,重新编译。

三./usr/lib/pptpd/pptpd-logwtmp.so: cannot open shared object file: No such file or directory

解决方案:如果/usr/lib/pptpd目录不存在则创建,之后将pptpd-logwtmp.so(pptpd-1.3.4(解压文件夹)/plugins目录下)拷贝到该目录:

 

四.May 29 15:56:25 108test pptpd[27452]: MGR: PPP binary /usr/local/pptpd/sbin/pppd not executable

原因:在/etc/pptpd.conf ppp 项制定了错误的pppd路径解决方案:正确指定正确的pppd路径

 

五.客户端设置好后,拨通之后,发现不能上网,原来是多了一条路由

   Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0       10.0.0.200      10.0.0.200       1

解决方法:右击pptp连接属性--网络---属性---高级-----在远程网络上使用默认网络

 去掉