操作系统,redhat Enterprise linux 5。
安装PPTP需要MPPE和PPP。2.6.18内核已经集成了MPPE和PPP,可以跳过安装MPPE和PPP。
下载pptpd源代码
#cd /usr/local/src/tarbag/
#wget http://d3.766.com/766down/pptpd-1.3.4.tar.gz
#tar xzvf pptpd-1.3.4.tar.gz -C /usr/local/src/software
#cd /usr/local/src/software/pptpd-1.3.4
#./configure --prefix=/usr/local/pptpd —with-libwrap
#make
#make install
二.配置PPTP
#mkdir /usr/local/pptpd/etc
#cp /usr/local/src/software/pptpd-1.3.4/samples/options.pptpd /usr/local/pptpd/etc/
#cp /usr/local/src/software/pptpd-1.3.4/samples/pptpd.conf /usr/local/pptpd/etc
#vi /usr/local/pptpd/etc/pptpd.conf
将内容改成如下:
option /usr/local/pptpd/etc/options.pptpd (指定 pptpd 扩展属性配置文件 options.pptpd 的位置。)
debug (开启调试模式,有关 pptpd 的信息和错误都会记录在 /var/logs/message 中,方便排错和调试。)
logwtmp
localip 192.168.50.219 (pptpd server 所在服务器的 IP 地址,可以设置为服务器上绑定的任意一个 IP 地址。)
remoteip 10.0.0.200-254 (设置客户端连接到 pptpd server 后可供分配的 IP 地址范围( 10.0.0.200 - 10.0.0.210 ),可以这样设置:10.0.0.200-208,10.0.0.209,10.0.0.210效果是一样的。)
#vi /usr/local/pptpd/etc/options.pptpd
将内容改成如下
name pptpd (服务器名.可以随便取)
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)。)
pptpd server 连接帐户控制文件位于:/etc/ppp/chap-secrets
chap-secrets 文件是有格式的,文件中每一行为一个客户端帐户,而一行又分为 4 段(用空格或者 TAB 分开),这 4 段从左到邮分别为:用户名、服务器名称*、密码、客户端分配到的 IP 地址。
*注意:
1、服务器名称必须和 pptpd.conf 中 name 处设置的名称一致,否则登录验证无法通过;
2、密码以明文填写,不需进行加密。
下面我们添加一个客户端帐户:
#vi /etc/ppp/chap-secrets
user pptpd password IP
(帐户名 ) (此处要与options.pptpd的name一致) (密码) (客户端分配到的IP)
三.启动pptpd server(如果启动报错看最后的注释)
#/usr/local/pptpd/sbin/pptpd --conf /usr/local/pptpd/etc/pptpd.conf —option /usr/local/pptpd/etc/options.pptpd
#netstat -nlp 查看有进程 tcp 1723 端口监听就说明 pptpd server 已经启动成功了!
注意:
1、服务器防火墙必须对外开放允许 TCP 1723 端口的连接请求!
2、如果 pptpd server 位于网关或者其他前置设备之后,则必须在相应设备上开启 PPTP 穿越!
四.iptables nat表
#iptables -t nat -A POSTROUTING -s ×××分配的网段 -o 出接口 -j MASQUERADE
May 29 16:18:03 108test pppd[2674]: /usr/lib/pptpd/pptpd-logwtmp.so: cannot open shared object file: No such file or directory
原因:在/usr/lib/pptpd/路径中找不到 pptpd-logwtmp.so
解决方案:如果/usr/lib/pptpd目录不存在则创建,之后将pptpd-logwtmp.so拷贝到该目录:
[root@108test pptpd-1.3.4]# cp /usr/local/pptpd/lib/pptpd/pptpd-logwtmp.so /usr/lib/pptpd/pptpd-logwtmp.so
May 29 17:05:28 108test pppd[7053]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so is for pppd version 2.4.3, this is 2.4.2
原因:pptpd 的版本与 ppp的版本不一致
解决方案:进行版本统一,在本例中进行如下操作统一版本:
1>、在http://mppe-mppc.alphacron.de/ 下载 ppp-2.4.3-mppe-mppc-1.1.patch.gz 和 ppp-2.4.3.tar.gz
2>、//卸载掉原有的ppp
[root@108test vpn-software]# rpm -e --nodeps ppp
//解压缩ppp-2.4.3
[root@108test vpn-software]# tar -zxvf ppp-2.4.3.tar.gz
//解压缩ppp-2.4.3-mppe-mppc-1.1.patch
[root@108test vpn-software]# gunzip ppp-2.4.3-mppe-mppc-1.1.patch.gz
//给ppp打补丁 注:-p后面是零不是欧
[root@108test vpn-software]# patch -p0 -i ppp-2.4.3-mppe-mppc-1.1.patch
[root@108test vpn-software]# cd ppp-2.4.3
//进行编译安装
[root@108test ppp-2.4.3]# ./configure
[root@108test ppp-2.4.3]# make
[root@108test ppp-2.4.3]# make install
解决方法:
(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″后,重新编译。
May 29 15:56:25 108test pptpd[27452]: MGR: PPP binary /usr/local/pptpd/sbin/pppd not executable
原因:在/etc/pptpd.conf 中 ppp 项制定了错误的pppd路径
解决方案:正确指定正确的pppd路径
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 10.0.0.200 10.0.0.200 1