pptpvpn,构建基于PPTP技术Linux VPN网络

前文《网管经验谈:配置Linux下的VPN网络》,笔者介绍了使用CIPE建立Linux计算机直接的VPN,目前,许多用户因业务发展,不断更新或升级网络,从而造成自身用户环境差异较大,整个网络系统平台参差不齐,在服务器端大多使用Linux和Unix的,桌面端使用Windows 9X/2000/XP。所以在企业应用中往往是Linux/Unix和Windows操作系统共存形成异构网络。如果希望Linux计算机与Windows计算机建立VPN连接那么可以使用PPTP技术。
一、 PPP协议以及PPTP协议简介
1. PPP协议简介
点到点隧道协议(PPTP)PPTP是Ascend通信公司、ECI电话公司、微软、3com以及USRobotics公司共同合作的成果。这个工作组称为PPTP论坛。PPTP的基础是很好绑定且相互区别的函数。之所以这样做是因为这样可以使用户和生产商能利用Internet的普遍特性。通过支持一种标准,用户可以通过本地ISP拨号并能够安全地通过Internet隧道连接到他们的公司网络。这样可以使公司减少产生和支持自身远程访问硬件的要求。点对点隧道协议(PPTP)是建立在IP、PPP协议上的一种高层协议,而IP、PPP协议是Internet工程任务组(IETF)所支持的两个极其重要的Internet标准协议。简单地说就是PPTP是IP与PPP自然发展的结果。点对点隧道协议并不是微软公司单独开发的,而是与几个主要的通信硬件开发商联合开发的。微软和其它PPTP的支持者已经将PPTP介绍给了Internet工程任务组。为了了解PPTP的基本内容,必须研究一下PPP协议。
PPP协议简介
串行线路网际协议(SLIP)是一种通信协议,使用RS-232串口与调制解调器相连,支持通过拨号方式与因特网连接(即使用TCP/IP)。SLIP改变标准的因特网数据报,它在因特网数据报中添加一个SLIPEND字符,由此而改变了数据报。数据报允许将此字符独立看待。SLIP需要一个端口配置为八位数据,无奇偶校验,和硬件流控制。然而,SLIP不提供错误检测,只依靠高层协议控制。如果运行特殊的有错误倾向的拨号连接,SLIP本身的作法将不令人满意。为正确运行,必须在每次建立连接前配置IP地址。点对点协议(PPP)是一种本质上与SLIP相同的较新协议,然而,它的设计比SLIP更好更具有实用性更可接受。它在异步连接和面向位的同步连接系统中均可使用,并可动态配置与远程网络连接以及检测连接链。为了改进SLIP,人们制订了点对点PPP(Point-to-Point Protocol)。PPP位于Linux TCP/IP四层网络模型的接入网层(Host-to-Net Layer)。和SLIP相比,PPP支持许多服务,包括:同时支持多个协议、链路配置、错误检测、压缩、加密、网络信息、认证。TCP/IP模型各个层次的功能和协议见表-1。
表-1 TCP/IP模型各个层次的功能和协议
PPP位于协议栈中的数据链路层上,和物理层和网络层接口。如图1。
PPP协议的三大成就:
1. 明确地划分出一帧的尾部和下一帧的头部的成帧方式。这种帧格式也处理错误检测工作。
2. 当线路不再需要时,挑出这些线路,测试它们,商议选择,并仔细地再次释放链路控制协议。这个协议被称为链路控制协议LCP(link control protocol)。
3. 用独立于所使用的网络层协议的方法来商议使用网络层的哪些选项。对于每个所支持的网络层来说,所选择的方法有不同的网络控制协议NCP(network control protocol)。
PPP帧不仅能通过拨号电话线发送出去,而且还能通过SONET或真正面向位的HDLC线路(即路由器与路由器相连)发送出去。
 PPP协议组成
PPP协议有三个组成部分:
1. 一个将IP数据报封到串行链路的方法。PPP既支持异步链路(无奇偶校验的8比特数据),也支持面向比特的同步链路。
2. 一个用来建立、配置和测试数据链路的链路控制协议LCP(Link Control Protocol)。通信的双方可协商一些选项。在[RFC 1661]中定义了11种类型的LCP分组。
一套网络控制协议NCP(Network Control Protocol),支持不同的网络层协议,如IP、OSI的网络层、DECnet、AppleTalk等。
 安全性
加密问题既没有在RFC1171也没有在RFC1172中提到过。这意味着PPP和PAP不对数据或报头使用任何加密算法。为了弥补这个缺点,开发了一个新的验证协议,并在1996年8月的RFC1994中发布。标题为“PPP质询握手验证协议(CHAP)”的RFC1994没有重新定义PPP协议。事实上,它依赖于PPP来进行像建立链路和封装数据报这样的内务处理。RFC1994所定义的是在使用PPP时进行验证的方法。CHAP使用该RFC称为3-way信号交换的过程定期验证同位体的一致性。根据该RFC,验证过程在初始链路建立时运行并在需要时重复。此过程如下:
1)在链路建立步骤完成后,验证器发送一个质询消息到该同位体。
2)同位体使用one-way散列函数对值进行计算。
3)验证器检查对所期望的散列值进行计算的应答。如果值是匹配的,则该过程继续。如
果不匹配,则不建立任何连接。
4)验证器以随机的时间间隔发送一个新的质询到同位体中,并且该过程跳转到步骤2。
此时,验证方法取决于一个秘密,该秘密只有验证器和特定的同位体知道。我们将看到
这个秘密以令人惊奇的方式进行实现。同样。由于CHAP可用于验证许多不同的系统,因此将使用名字字段作为索引对大型秘密表中适当的秘密进行定位。我们还将看到这是如何用于另一个协议的。最后,尽管该RFC没有专门说明应使用哪种散列算法,但它确实提到了MD5。
2. PPTP协议简介
PPTP:点对点隧道协议 ( Point to Point Tunneling Protocol)
点对点隧道协议(PPTP)是一种支持多协议虚拟专用网络的网络技术。通过该协议,远程用户能够通过 Microsoft Windows NT /2000/xp工作站、Windows 95 和 Windows 98/me 操作系统以及其它装有点对点协议的系统安全访问公司网络,并能拨号连入本地 ISP,通过 Internet 安全链接到公司网络。
PPTP 可以用于在 IP 网络上建立 PPP 会话隧道。在这种配置下,PPTP 隧道和 PPP 会话运行在两个相同的机器上,呼叫方充当 PNS。PPTP 使用客户机-服务器结构来分离当前网络访问服务器具备的一些功能并支持虚拟专用网络。PPTP 作为一个呼叫控制和管理协议,它允许服务器控制来自 PSTN 或 ISDN 的拨入电路交换呼叫访问并初始化外部电路交换连接。PPTP 只能通过 PAC 和 PNS 来实施,其它系统没有必要知道 PPTP。拨号网络可与 PAC 相连接而无需知道 PPTP。标准的 PPP 客户机软件可继续在隧道 PPP 链接上操作。点对点隧道协议实现起来容易,而且并不昂贵。许多单位组织都希望以这样的方式,安全、协议独立、无争议、有效而且无需改变已有的网络地址,进行拨号连接来访问公共主干网。而支持点对点隧道协议的虚拟广域网(WAN)就是完成这项工作的一个很有效的方法。
PPTP 使用 GRE 的扩展版本来传输用户 PPP 包。这些增强允许为在 PAC 和 PNS 之间传输用户数据的隧道提供低层拥塞控制和流控制。这种机制允许高效使用隧道可用带宽并且避免了不必要的重发和缓冲区溢出。PPTP 没有规定特定的算法用于低层控制,但它确实定义了一些通信参数来支持这样的算法工作。整个PPP 封包透过GRE(Generic Routing Encapsulation)封装 (如图2),PPTP 目前为工业的标准,定义于RFC 2637 (相关链接:http://www.javvin.com/protocol/rfc2637.pdf)中。
3.Linux下PPTP实现软件Poptop
用点对点隧道协议(PPTP)实现一个VPN的配置。这使得用户可以从任何Internet连接对一个公司内部网络的文件或服务进行访问。PPTP相对其他远程“拨入”型VPN的不凡之处在于微软Windows(98/Me/NT/2000/XP/2003/Vista)拥有一个内置的PPTP客户端,这意味着管理员不必涉及任何额外的客户端软件以及那些通常伴随出现的问题。Poptop ,官方网站上的定义是The PPTP Server for Linux,就是利用PPTP(Point to Point Tunneling Protocol,点到点隧道协议)通过Internet访问VPN(Virtual Private Network,虚拟局域网),它允许远程用户安全、花费低廉地从Internet上的任何地方访问公司内部网络。开源PPTP服务器产品Poptop(http://www.poptop.org/ )特性为:
 微软兼容的认证和加密(MSCHAPv2,MPPE40-128位RC4加密)。
 支持多个客户端连接 。
 使用RADIUS插件无缝集成到一个微软网络环境中。
 在Poptop出现以前,并没有使用PPTP客户端连接Linux主机的方法存在。使用Poptop,Linux主机可以立即在一个PPTP VPN环境下进行工作。最新版本支持Windows 95/98/Me/NT/2000/XP PPTP客户端和Linux PPTP客户端。
Poptop遵守GNU GPL许可证。可使用是完全免费。
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功能的。PPTPD、PPTP和MPPE Module一起统称Poptop,相关网站为:http://www.poptop.org。
前面笔者介绍了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”或更大的数字就表示支持。
6. 修改配置文件
这里需要修改如下3个配置文件/etc/pptpd.conf、/etc/ppp/options.pptpd 、/etc/ppp/chap-secrets 。 如果你对这3个配置文件中的各个参数不太了解的话,可以到/usr/share/doc/pptpd-1.3.0/samples里面,这个目录存放了相关的sample文件可以阅读。
 /etc/pptpd.conf 主配置文件
添加如下内容,确定本地VPN服务器的IP地址和客户端登录后分配的IP地址范围。
debug #把所有的debug信息写入系统日志/var/log/messages
option /etc/ppp/options.pptpd
localip 192.168.0.254 #本地VPN服务器的IP
Logwtmp #使用/var/log/wtmp记录客户连接和断开
remoteip 192.168.1.1-254 #客户端被分配的IP范围
注意:为了安全性起见,localip和remoteip尽量不要同一个网段。
 options.pptpd文件
编辑/etc/ppp/options.pptpd配置文件,替换成如下内容:
auth #需要使用/etc/ppp/chap-secrets文件来验证#
lock #锁定PTY设备文件#
debug
Proxyarp #启动ARP代理,如果分配给客户端的IP地址与内网网卡在一个子网就需要启用ARP代理。#
name pptpd #VPN服务器的名字#
multilink
refuse-pap #拒绝pap身份验证#
refuse-chap #拒绝chap身份验证#
refuse-mschap #拒绝mschap身份验证#
require-mschap-v2 #注意在采用mschap-v2身份验证方式时可以同时使用MPPE进行加密 #
#require-mppe-128 #使用 128-bit MPPE 加密#
ms-wins 192.168.1.2 #在网络邻居中看到的机器的IP填写到这里#
ms-dns 192.168.1.2 #DNS服务器地址 #
dump
logfile /var/log/pptpd.log #日志存放的路径#
相关说明:PAP(口令验证协议)是一种简单的明文验证方式。NAS要求用户提供用户名和口令,PAP以明文方式返回用户信息。很明显,这种验证方式的安全性较差,第三方可以很容易的获取被传送的用户名和口令,并利用这些信息与NAS建立连接获取NAS提供的所有资源。所以,一旦用户密码被第三方窃取,PAP无法提供避免受到第三方攻击的保障措施。
CHAP(挑战-握手验证协议)是一种加密的验证方式,能够避免建立连接时传送用户的真实密码。NAS向远程用户发送一个挑战口令(challenge),其中包括会话ID和一个任意生成的挑战字符串(arbitrary challengestring)。远程客户必须使用MD5单向哈希算法(one-wayhashingalgorithm)返回用户名和加密的挑战口令,会话ID以及用户口令,其中用户名以非哈希方式发送。CHAP对PAP进行了改进,不再直接通过链路发送明文口令,而是使用挑战口令以哈希算法对口令进行加密。因为服务器端存有客户的明文口令,所以服务器可以重复客户端进行的操作,并将结果与用户返回的口令进行对照。CHAP为每一次验证任意生成一个挑战字符串来防止受到再现攻击(replay attack).在整个连接过程中,CHAP将不定时的向客户端重复发送挑战口令,从而避免第3方冒充远程客户(remoteclient impersonation)进行攻击。如果已经使用 CHAP 验证连接,则不能使用 Microsoft 点对点加密 (MPPE)。
mschap 即Microsoft 创建 的MS-CHAP(微软挑战-握手验证协议),是为了对远程 Windows 工作站进行身份验证,同时集成LAN 用户所熟悉的功能,以及用于 Windows 网络的散列算法。与 CHAP 相似,MS-CHAP 使用质询响应机制来对不发送任何密码的连接进行身份验证。远程客户必须返回用户名以及经过MD4哈希算法加密的挑战字符串,会话ID和用户口令的MD4哈希值。采用这种方式服务器端将只存储经过哈希算法加密的用户口令而不是明文口令,这样就能够提供进一步的安全保障。此外,MS-CHAP同样支持附加的错误编码,包括口令过期编码以及允许用户自己修改口令的加密的客户-服务器(client-server)附加信息。使用MS-CHAP,客户端和NAS双方各自生成一个用于随后数据加密的起始密钥。MS-CHAP使用基于MPPE的数据加密,这一点非常重要,可以解释为什么启用基于MPPE的数据加密时必须进行MS-CHAP验证。在第2阶段PPP链路配置阶段,NAS收集验证数据然后对照自己的数据库或中央验证数据库服务器(位于NT主域控制器或远程验证用户拨入服务器)验证数据的有效性。
MS-CHAP v2(Microsoft 质询握手身份验证协议版本 2)MS-CHAP v2 可以提供交互身份验证、生成 Microsoft 点对点加密 (MPPE) 的更强初始数据加密密钥,以及在发送和接收数据时使用不同的加密密钥。为降低更改密码时密码泄漏的风险,将不再支持较旧的 MS-CHAP 密码更改方法。因为 MS-CHAP v2 比 MS-CHAP 更加安全,所以对于所有连接,它将优先 MS-CHAP (如果已启用)使用。运行 Windows XP、Windows 2000、Windows 98、Windows Millennium Edition 和 Windows NT 4.0 的计算机支持 MS-CHAP v2。运行 Windows 95 的计算机仅支持 MS-CHAP v2 进行 VPN 连接,而不支持其进行拨号连接。 注意:
MS-CHAP v2 是一种交互身份验证协议,即客户端和服务器都需证明它们知道用户的密码。首先,远程访问服务器通过向客户端发送质询,请求远程访问客户端提供证据。然后,远程访问客户端通过向远程访问服务器发回质询的方式,请求其提供证据。如果服务器无法正确回答客户端的质询,证实它知道用户的密码,则客户端中断连接。如果没有交互身份验证,远程访问客户端将无法建立与未经授权的远程访问服务器的连接。
 chap-secrets文件
编辑/etc/chap-secrets配置文件,添加如下内容:
# client server secret IP addresses
"test " * "test" *
上面第二行代码的四项内容分别对应第一行中的四项。“test”是Client端的VPN用户名;“server”对应的是VPN服务器的名字,该名字必须和/etc/ppp/options.pptpd文件中指明的一样,或者设置成“*”号来表示自动识别服务器;“secret”对应的是登录密码;“IP addresses”对应的是可以拨入的客户端IP地址,如果不需要做特别限制,可以将其设置为“*”号。
7. 启动pptpd服务器
使用命令启动pptpd服务器
#service pptpd start
8. 使用命令查看pptpd服务进程、端口和接口
使用ps命令检查pptpd进程:
#ps -ef | grep pptpd
root 1744 1 0 20:52 ? 00:00:00 /usr/sbin/pptpd
root 1940 1868 0 21:01 pts/0 00:00:00 grep pptpd
使用netstat命令检查pptpd运行的端口:
# netstat -nutap | grep pptpd
tcp 0 0 0.0.0.0:1723 0.0.0.0:* LISTEN 1744/pptpd
使用ifconfig命令查看ppp0接口
# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:50:FC:56:75:F5
inet addr:192.168.1.18 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:393 errors:0 dropped:0 overruns:0 frame:0
TX packets:142 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:35846 (35.0 Kb) TX bytes:13545 (13.2 Kb)
Interrupt:12 Base address:0xc000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:10 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:700 (700.0 b) TX bytes:700 (700.0 b)
ppp0 Link encap:Point-to-Point Protocol
inet addr:192.168.0.3 P-t-P:192.168.1.128 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1396 Metric:1
RX packets:68 errors:0 dropped:0 overruns:0 frame:0
TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:5768 (5.6 Kb) TX bytes:354 (354.0 b)
如果出现黑体字部分表示一切正常,那么Linux一个基本PPTP VPN服务器的设置就初步了,下面对其进行MPPE加密。
9. 打开防火墙设置IP伪装转发
设置了IP伪装转发,通过VPN连接上来的远程计算机才能互相ping通,实现像局域网那样的共享。用下面的命令进行设置:
#echo "1" > /proc/sys/net/ipv4/ip_forward
#/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
#/sbin/depmod -a
#/sbin/modprobe ip_tables
#/sbin/modprobe iptable_nat
#/sbin/modprobe ip_nat_ftp
#/sbin/modprobe ipt_LOG
#启用NAT
iptables -t nat -A POSTROUTING -s 10.0.0.0/16 -o eth0 -j SNAT --to x.x.x.x(外网IP地址)
10. 如果希望PPTPD服务器每次启动都能自动运行,可以用ntsysv设置。以root权限运行命令:
#ntsysv
打开如图所示的窗口,在pptpd服务选项加上*(用空格键),然后重新启动系统,这样系统会启动PPTPD服务
二、 在Linux2.6 内核下安装配置 PPTP服务器
以RHEL 4.0为例。这里内核是kernel2.6.9-5.EL,所用安装软件组如下:
dkms-2.0.6-1.noarch.rpm
kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
ppp-2.4.3-5.rhel4.i386.rpm
pptpd-1.3.0-0.i386.rpm
1.PPTP需要PPP支持,虽然2.6内核系统本身有PPP功能,但它并不支持MPPE,所以需要更新系统的PPP组件,下载ppp-2.4.3-5.rhel4.i386.rpm安装命令如下:
# rpm -Uvh ppp-2.4.3-5.rhel4.i386.rpm
2.安装内核MPPE(Microsoft Point to Point Encryption,微软点对点加密)补丁,安装命令如下:
#rpm –ivh dkms-2.0.6-1.noarch.rpm
#rpm –ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
用以下命令检查内核MPPE补丁是否安装成功,MPPE module可否载如:
#modprobe ppp-compress-18 && echo success
3.安装pptpd,命令如下:
#rpm –ivh pptpd-1.3.0-0.i386.rpm
4.用以下命令检查PPP是否支持MPPE:
#strings '/usr/sbin/pppd'|grep -i mppe|wc --lines
46 <如果以上命令输出为“0”则表示不支持;输出为“30”或更大的数字就表示支持,我这里为46>。
其它部分同上。这里就不赘述了。另外如果您的内核版本高于2.6.15(含)。可以直接编译内核。cd /usr/src/linux
make menuconfig
Device Drivers -> Network device support -> PPP MPPE compression (M)。如图3。
make modules;make modules_install
下载并安装下列软件:
&#8226; ppp-2.4.3-5.i386.rpm
&#8226; pptpd-1.3.3-1.i386.rpm
即可。其它部分同上。这里就不赘述了。
到此为止Linux PPTP服务器配置完成,
本文继续介绍Windows客户端配置 和Linux客户端如何连接到Linux PPTP服务器
-、使用Windows 2003客户端连接PPTP服务器
1. 在桌面的"网上邻居"图标上按右键,选择"属性",打开"网络连接"窗口。并打开"文件"菜单中的"新建连接"命令。
2. 使用网络连接向导,这是一个综合的网络连接向导,可以设置拨号、VPN、串行连接等服务
3. 选择网络类型,在这里选择"连接到我的工作场所的网络",点击"下一步"继续。
4. 在这里选择"虚拟专用网络连接",点击"下一步"按钮继续。
5. 填入这个远程连接的名称,可以根据具体情况来设置,填好之后点击"下一步"按钮继续。
6. VPN网络要求的前提是计算机已经接通网络,所以在这里只要填入对方服务器的地址(可以是域名也可以是IP地址)即可。点击"下一步"继续(如图1)。
7. 已经完成本VPN客户端的安装。单击"完成"之后,系统会在"网络连接"栏目中生成一个连接对象。
8. 选择数据加密,右击刚才创建的连接,在“安全”界面选择,要求数据加密(没有加密就断开)如图2 。
说明:这里指定是否要求使用数据加密。如果选中此选项,但连接的服务器没有使用数据加密,系统将断开此连接。如果没有选中此选项,系统将尝试进行加密,但即使不使用加密也可以建立连接。如果要阻止加密,请单击“高级(自定义设置)”,单击“设置”,在“数据加密”中单击“不允许加密(如果它需要加密,服务器将断开连接)”。
9. 修改连接属性,右击刚才创建的连接,再依次单击“属性→网络(选择TCP/IP协议)→属性→高级”,然后把“在远程网络上使用默认网关”前面的勾去掉后单击“确定”。如图3 。
说明:指定连接期间在远程网络上是否使用默认网关。当建立拨号或虚拟专用网络连接时,将在 IP 路由选择表中添加连接到远程访问服务器的新的默认路由,并分配给该路由最低指标。如果已存在默认路由,则它仍保留在路由选择表中但变为较高指标。添加较低跃点数的新默认路由后,使用原来默认路由可到达的位置可能无法到达。例如,在企业网络上运行此操作系统(或 Windows 2000/XP)的计算机在企业网络上存在 LAN 连接,并以本地 IP 路由器的默认网关配置。如果选中“在远程网络上使用默认网关”选项,则当该计算机上的用户通过 Internet 服务提供商 (ISP) 拨号访问 Internet 时,ISP 将成为默认网关,而不是本地企业路由器。因此企业网络上除本地网的所有位置,在连接到 ISP 期间是不可到达的。如果清除“在远程网络上使用默认网关”选项,则原来默认的路由未被修改,也没有添加新的默认路由,并且 Internet 上的位置是不可到达的。
10. 连接VPN服务器,如果服务器账号及服务设置都正确的话,就可以看到提示框显示"正在网络上注册你的计算机",完成之后,也会在系统托盘中显示"虚拟专用连接"已经建立。点击该连接图标可以查看查看连接情况。如图4 。
11.命令行下查看连接接口情况,使用ipconfig/all 命令查看接口连接情况。如图5。
说明:Ipconfig命令可以显示所有当前的 TCP/IP 网络配置值、刷新动态主机配置协议 (DHCP) 和域名系统 (DNS) 设置。使用不带参数的 ipconfig 可以显示所有适配器的 IPv6 地址或 IPv4 地址、子网掩码和默认网关。/all 选项可以显示所有适配器的完整 TCP/IP 配置信息。在没有该参数的情况下,ipconfig 只显示各个适配器的 IPv6 地址或 IPv4 地址、子网掩码和默认网关值。适配器可以代表物理接口(例如安装的网络适配器)或逻辑接口(例如VPN拨号连接)。
12 断开VPN连接,点击连接图标选择断开即可。
说明:不管是Windows 2003还是Windows 2000/XP,建立VPN连接过程基本相同这里笔者就不赘述了。
Tags:  pptpvpn

延伸阅读

最新评论

发表评论