服务器 频道

构建基于PPTP技术Linux VPN网络(中)

    【IT168 专稿】前面笔者介绍了PPP协议以及PPTP协议简介(点击),下面笔者将在一个真实的环境中介绍基于PPTP技术的Linux VPN服务器和客户端连接。首先建立配置Linux 下的PPTP服务器。图1是一个理想的PPTP网络拓扑结构。

图1一个理想的PPTP网络拓扑结构

    PPTPD(Point-to-Point Tunneling Protocol Daemon)是VPN(Virtual Private Network)服务器,PPTP(Point-to-Point Tunneling Protocol)是VPN客户端。PPTPD和PPTP都是通过PPP(Point to Point Protocol)来实现VPN功能的。MPPE模块是用来支持Linux与Windows之间连接的。如果不需要Windows电脑参与连接,则不需要可以这安装MPPE模块。   PPTPD、PPTP和MPPE Module一起统称Poptop,相关网站为:http://www.poptop.org。 Poptop官方网站上的定义是The PPTP Server for Linux,就是利用PPTP(Point to Point Tunneling Protocol,点到点隧道协议)通过Internet访问VPN(Virtual Private Network,虚拟局域网),网站提供软件下载(http://sourceforge.net/projects/poptop/ ) 和文档(http://poptop.sourceforge.net/dox/ )等链接。Poptop软件的难度主要在它的配置文件。只要对配置文件有足够了解,再参考Poptop的日志文件,就要在安装过程种解决各种问题。

一、 在Linux2.4内核下安装配置 PPTP服务器

    以Red Hat Linux 9.0为例,官方网站:http://www.poptop.org/  ,下载地址:http://sourceforge.net/projects/poptop/

    1. 下载升级系统ppp软件包

#rpm -e rp-ppoe  #删除冲突软件包#
#rpm -e wvdial   #删除冲突软件包#
#rpm -e ppp    #删除冲突软件包#
#wget http://puzzle.dl.sourceforge.net/sourceforge/poptop/ppp-2.4.3-5.rhl9.i386.rpm
#rpm -Uvh ppp-2.4.3-5.rhl9.i386  #升级冲突软件包#

    2. 下载安装Poptop软件包

#wget http://www.city-fan.org/ftp/contrib/drivers/pptp/pptpd-1.3.0-0.i386.rpm
#rpm -ivh pptpd-1.3.0-0.i386.rpm

3. 下载安装加密软件

#wget http://jaist.dl.sourceforge.net/sourceforge/poptop/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm 
#rpm -ivh  kernel_ppp_mppe-1.0.2-3dkms.noarch
#wget http://jaist.dl.sourceforge.net/sourceforge/poptop/dkms-2.0.10-1.noarch.rpm
#rpm -ivh dkms-2.0.2-1.noarch.rpm

    说明:Microsoft 点对点加密 (MPPE) 对基于点对点协议 (PPP) 的拨号连接或点对点隧道协议 (PPTP) 虚拟专用网 (VPN) 连接中的数据进行加密。支持 128 位密钥(强)、56 位密钥以及 40 位密钥(标准)MPPE 加密方案。MPPE 为 VPN 客户端和 VPN 服务器之间 PPTP 连接提供数据安全性。注意:MPPE 需要 Microsoft 质询握手身份验证协议 (MS-CHAP)、Microsoft 质询握手身份验证协议版本 2 (MS-CHAP v2) 或可扩展的身份验证协议-传输层安全性 (EAP-TLS) 身份验证过程生成的加密密钥。

4. 用以下命令检查内核MPPE补丁是否安装成功

[root@host root]# lsmod|more
Module                  Size  Used by    Tainted: P
ppp_mppe               13592   2  (autoclean)
ppp_async               9440   1  (autoclean)
ppp_generic            24572   3  (autoclean) [ppp_mppe ppp_async]
slhc                    6740   0  (autoclean) [ppp_generic]
es1371                 30792   0  (autoclean)
ac97_codec             13640   0  (autoclean) [es1371]
gameport                3364   0  (autoclean) [es1371]
soundcore               6404   4  (autoclean) [es1371]
parport_pc             19076   1  (autoclean)
lp                      8996   0  (autoclean)
parport                37056   1  (autoclean) [parport_pc lp]
autofs                 13268   0  (autoclean) (unused)
8139too                18088   1
mii                     3976   0  [8139too]
ide-scsi               12208   0
scsi_mod              107160   1  [ide-scsi]
ide-cd                 35708   0
cdrom                  33728   0  [ide-cd]
nls_cp936             124956   1  (autoclean)
nls_cp437               5116   1  (autoclean)
vfat                   13004   1  (autoclean)

    如果出现黑体字部分表示MPPE加密成功。lsmod 即list  modules,对每行而言,第一列是模块名称;第二列是模块大小;第三列是用量计数。lsmod命令用来列出当前系统加载的模块,同时也可以当作察看模块硬件浏览器。从以上列表我们可以看到那些设备的驱动程序已经加载。如果后面为unused,则表示该模块当前没在使用。

5. 检查PPP是否支持MPPE

    用以下命令检查PPP是否支持MPPE:

#strings ''/usr/sbin/pppd'' |grep -i mppe | wc --lines

    如果以上命令输出为“0”则表示不支持;输出为“30”或更大的数字就表示支持。

0
相关文章