一 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 |