> RedHat >

RHEL5.4 VPN 服务的配置之PPTPD

一 pptp 协议

1 pptp 简介

pptp: Point to point Tunneling Protocol 的缩写,点对点隧道协议是一种支持多协议虚拟专用网络技术.通过该协议,远程用户能够通过MicrosoftWindowsNT 工作站或者是windows 操作系统安装点对点协议的系统安全访问公司网络,并能通过拨号连接本地的ISP,通过Internet 安装连接到公司网络.

pptp 可以用于Ip网络上建立ppp会话隧道,在这种配置下.pptp 隧道和ppp 会话运行在两个相同的机器上,呼叫方充当PNS.pptp 使用客户机---- 服务器结构来分离当前网络访问服务器具备的一些功能并支持虚拟专用网络.pptp 作为一个呼叫控制和管理协议,它充分允许服务器控制来自PAC和PNS来实施,其他系统没有必要知道PPTP,拨号网络可与PAC相连接而无需知道PPTP.标准的PPP 客户机软件可继续在隧道PPP链接上操作.

PPTP使用GRE的扩展版本来传输用户PPP包.这些增强运行为在PAC和PNS 之间传输用户数据的隧道提供底层拥塞控制和流量孔子.这中机制运行高效使用隧道可以用带宽并且避免了不必要的重发和缓冲区溢出.PPTP没有规定特定的算法用于底层控制.但是确实定义了一些通信参数来支持这样的算法

二 配置PPTP pn服务

1 下载pptpd软件 http://sourceforge.net/projects/poptop/files/

#tar xvf pptpd-1.3.4.tar.gz

#cd  pptpd-1.3.4

#./configure  --prefix=/usr/local/pptpd  --enable-bcrelay  --with-libwrap

#make  && make install

2  在pptpd 安装的目录中,创建etc 目录并.复制pptpd 的配置文件

#cd /usr/local/pptpd

#mkdir  etc

#cd  /root/pptpd-1.3.4

#cd samples

#cp  pptpd.conf    /usr/local/pptpd/etc

#cp   options.pptpd  /usr/local/pptpd/etc

#cp  chap-secrets    /etc/ppp

3  配置pptpd 的主配置文件

[root@localhost etc]# cat pptpd.conf  | grep -v '^#' | grep -v '^$'

option /usr/local/pptpd/etc/options.pptpd

debug

stimeout 30

logwtmp

localip 1.1.1.1

remoteip 192.168.0.10-20

注: option  /usr/local/pptpd/etc/option.pptpd 指定pptpd扩展属性配置文件options.pptpd

debug是调试模式,有关pptpd的信息和错误都会记录在/var/log/message中.有利于排错

stimeout 设置客户端连接pptpd server 时最长连接等待时间既是连接超时时间,单位秒

localip  谁知的是pptpd server 所在服务器的IP地址

remoteip 设置的是客户端连接到pptpd server 后可以分配置的IP地址范围,当然同样可以写成192.168.0.10-192.168.0.20

3 修改options.pptpd

[root@localhost etc]# cat options.pptpd | grep -v '^#' | grep -v '^$'

name Frank-VPN

refuse-pap

refuse-chap

refuse-mschap

require-mschap-v2

require-mppe-128

ms-dns 210.5.153.250

proxyarp

debug

lock

nobsdcomp

novj

novjccomp

nologfd

注:

name Frank-VPN 是pptpd server的名称

refuse-pap  拒绝pap 身份验证模式

refuse-chap  拒绝chap 身份验证模式

refuse-mschap 拒绝mschap 身份验证模式

require-mschap-v2 在端点进行连接无收时需要使用微软的mschap-v2进行身份验证

require-mppe-128  MPPE模块使用128 为进行加密

ms-dns 210.5.153.250  ppp 为windows 客户端提供DNS,可指定两个DNS服务器地址

proxyarp    代理ARP代理键值

debug  开启调试模式,把相应的信息记录在/var/log/message中

lock   锁定科幻的的PTY 设备文件

nobsdcomp  禁用BSD 压缩模式

novj

novjccomp   禁用Van  Jacobson 压缩模式

nologfd  禁止将错误信息记录到标准错误输出设备

4 配置pptpd 帐号和密码的配置文件

#cd  /etc/ppp

[root@localhost ppp]# cat chap-secrets

# Secrets for authentication using CHAP

#client      server       secret                IP addresses

#username       pptpd        password          *

Frank           Frank-VPN  frank        *

5 启动PPTPD

#/usr/local/pptpd/sbin/pptpd -c /usr/local/pptpd/etc/pptpd.conf -o /usr/local/pptpd/etc/options.pptpd

并查看tcp 1723 端口是否打开

6  打开linux 路由转发

#vim /etc/sysctl.conf

net.ipv4.ip_forward=0  修改为

net.ipv4.ip_forward=1

三  排错

1 注意一定要把;pptpd 的用户和密码文件放在/etc/ppp 目录下面,.否则有可能会出现

/usr/sbin/pppd: The remote system is required to authenticate itself

/usr/sbin/pppd: but I couldn't find any suitable secret (password) for it to use to do so.

2

在加载库文件是会报版本错误

Plugin /usr/lib/pptpd/pptpd-logwtmp.so is for pppd version 2.4.3, this is 2.4.4

切换到源码.并需改版本,并进行重新编译

#cd  /root/ pptpd-1.3.4/plugins

#cp  patchlevel.h  patchlevel.h.bak

#cp pptpd-logwtmp.so pptpd-logwtmp.so.bak

# sed  -i  's/2\.4\.3/2\.4\.4/g' patchlevel.h

#make

#cp  pptpd-logwtmp.so  /usr/lib/pptpd/pptpd-logwtmp.so

并重新启动pptpd 服务,并查看日志

#tail  /var/log/messages  -f

May 22 00:58:26 localhost pptpd[10170]: CTRL: Client 1.1.1.2 control connection started

May 22 00:58:26 localhost pptpd[10170]: CTRL: Starting call (launching pppd, opening GRE)

May 22 00:58:26 localhost pppd[10171]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so loaded.

May 22 00:58:26 localhost pppd[10171]: pptpd-logwtmp: $Version$

May 22 00:58:26 localhost pppd[10171]: pppd 2.4.4 started by root, uid 0

May 22 00:58:26 localhost pppd[10171]: Using interface ppp0

May 22 00:58:26 localhost pppd[10171]: Connect: ppp0 <--> /dev/pts/2

May 22 00:58:30 localhost pptpd[10170]: CTRL: Ignored a SET LINK INFO packet with real ACCMs!

May 22 00:58:30 localhost pppd[10171]: MPPE 128-bit stateless compression enabled

May 22 00:58:32 localhost pppd[10171]: found interface eth0 for proxy arp

May 22 00:58:32 localhost pppd[10171]: local  IP address 1.1.1.1

May 22 00:58:32 localhost pppd[10171]: remote IP address 192.168.0.10

May 22 00:58:32 localhost pppd[10171]: pptpd-logwtmp.so ip-up ppp0 Frank 1.1.1.2

 

(责任编辑:IT)