分享
 
 
 

PPTPonRHELAS5

王朝other·作者佚名  2008-05-21
窄屏简体版  字體: |||超大  

作者:Nanu ( Comsenz )

首发:http://www.discuz.net

如需转载请注明作者,谢谢!

晚上闲来无事,突然想如果能在公司安全的连接到家里的内网环境那很多工作就会很方便,而且很多资料的 共享以及实验的调试也会很方便。于是想到了在 Linux 上用 PPTP 假设一个 VPN Server。下面就是我的手记。按照我的习惯,还是先对 PPTP 进行一些基础了解再开始安装 PPTP,这样会让自己明白一些,各位不要嫌麻烦,呵呵。当然,也可以直接跳过 PPTP 协议介绍直接进入安装阶段:)

一、PPTP 协议介绍

1、PPTP 简介

PPTP: Point to Point Tunneling Protocol

点对点隧道协议(PPTP)是一种支持多协议虚拟专用网络的网络技术。通过该协议,远程用户能够通过 Microsoft Windows NT 工作站、Windows 95 和 Windows 98 操作系统以及其它装有点对点协议的系统安全访问公司网络,并能拨号连入本地 ISP,通过 Internet 安全链接到公司网络。

PPTP 可以用于在 IP 网络上建立 PPP 会话隧道。在这种配置下,PPTP 隧道和 PPP 会话运行在两个相同的机器上,呼叫方充当 PNS。PPTP 使用客户机-服务器结构来分离当前网络访问服务器具备的一些功能并支持虚拟专用网络。PPTP 作为一个呼叫控制和管理协议,它允许服务器控制来自 PSTN 或 ISDN 的拨入电路交换呼叫访问并初始化外部电路交换连接。

PPTP 只能通过 PAC 和 PNS 来实施,其它系统没有必要知道 PPTP。拨号网络可与 PAC 相连接而无需知道 PPTP。标准的 PPP 客户机软件可继续在隧道 PPP 链接上操作。

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

2、协议(报文)结构

16bit

32 bit

Length

PPTP Message Type

Magic Cookie

Control Message Type

Reserved 0

Protocol Version

Reserved 1

Framing Capability

Bearing Capability

Maximum Channels

Firmware Revision

Host Name (64 Octets)

Vendor String (64 Octets)

●Length: 该 PPTP 信息的八位总长,包括整个 PPTP 头。

●PPTP Message Type: 信息类型。可能值有:1、控制信息;2、管理信息。

●Magic Cookie: Magic Cookie 以连续的 0x1A2B3C4D 进行发送,其基本目的是确保接收端与 TCP数据流间的正确同步运行。

●Control Message Type: 可能值有:"1" 开始-控制-链接-请求(Start-Control-Connection-Request);"2" 开始-控制-链接-答复(Start-Control-Connection-Reply);"3" 停止-控制-链接-请求(Stop-Control-Connection-Request);"4" 停止-控制-链接-答复(Stop-Control-Connection-Reply);"5" 回应-请求(Echo-Request);"6" 回应-答复(Echo-Reply);

●Call Management: 可能值有:"1" 传出-呼叫-请求(Outgoing-Call-Request);"2" 传出-呼叫-答复(Outgoing-Call-Reply);"3" 传入-呼叫-请求(Incoming-Call-Request);"4" 传入-呼叫-答复(Incoming-Call-Reply);"5" 传入-呼叫-连接(Incoming-Call-Connected);"6" 呼叫-清除-请求(Call-Clear-Request);"7" 呼叫-断开连接-通告(Call-Disconnect-Notify);"8" 广域网-错误-通告(WAN-Error-Notify)。

●PPP Session Control: 设置-链路-信息(Set-Link-Info)。

●Reserved 0 & 1: 必须设置为0。

●Protocol Version: PPTP版本号。

●Framing Capabilities: 指出帧类型,该信息发送方可以提供:"1" 异步帧支持(Asynchronous Framing Supported);"2" 同步帧支持(Synchronous Framing Supported)。

Bearer Capabilities: 指出承载性能,该信息发送方可以提供:"1" 模拟访问支持(Analog Access Supported);"2" 数字访问支持(Digital access supported)。

●Maximum Channels: 该 PAC 可以支持的个人 PPP 会话总数。

●Firmware Revision: 若由 PAC 出发,则包括发出 PAC 时的固件修订本编号;若由 PNS 出发,则包括 PNS PPTP 驱动版本。

●Host Name: 包括发行的 PAC 或 PNS 的 DNS 名称。

●Vendor Name: 包括特定供应商字串,指当请求是由 PNS 提出时,使用的 PAC 类型或 PNS软件类型。

二、安装 PPTP Server

操作系统:CentOS 5.0/Red Hat Enterprise Linux AS 5 ( RHEL 5 )

安装 PPTP 需要 MPPE 和较高版本的 ppp ( > 2.4.3 ) 支持,不过 CentOS 5.0/RHEL 5 的 2.6.18 内核已经集成了 MPPE 和高版本的 ppp 。因此可以跳过安装配置 MPPE 和 ppp 的过程直接安装 PPTP。

如果需要检查 MPPE 是否存在可以使用以下命令:

shell> modprobe ppp-compress-18 && echo 'ok! MPPE was found !'

1、安装 pptpd

下载最新的 pptpd 源代码 ( 1.3.4 @ 2007-05-23 ):

http://sourceforge.net/project/showfiles.php?group_id=44827

将下载到的 pptpd 移动到 /usr/local/src 目录下。

加压缩源代码包:

shell> tar xzvf pptpd-1.3.4.tar.gz

shell> cd pptpd-1.3.4

编译安装:

注意:可能需要 libcap、libcap-devel RPM 包支持,如果没有请安装 libcap、libcap-devel RPM 包!

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

shell> make

shell> make install

2、配置 PPTP

编译安装完成后,首先需要手工建立一些目录以及复制原始的 pptpd 配置文件:

shell> mkdir /usr/local/pptpd/etc

shell> cp /usr/local/src/pptpd-1.3.4/samples/options.pptpd /usr/local/pptpd/etc/

shell> cp /usr/local/src/pptpd-1.3.4/samples/pptpd.conf /usr/local/pptpd/etc/

上面 cp (复制)的两个文件是 pptpd 的两个配置文件。

pptpd.conf 是 pptpd 的基本配置文件;

options.pptpd 是 pptpd 的扩展功能属性配置文件。

对 pptpd.conf 进行设置:

shell> vi /usr/local/pptpd/etc/pptpd.conf

以下是我的配置文件:

# pptpd.conf

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

debug

stimeout 30

localip 10.0.0.254

remoteip 10.0.0.200-210

说明:

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

指定 pptpd 扩展属性配置文件 options.pptpd 的位置。

debug

开启调试模式,有关 pptpd 的信息和错误都会记录在 /var/logs/message 中,方便排错和调试。

stimeout 30

设置客户端连接 pptpd server 时的最长连接等待时间(连接超时时间),30 秒。

localip 10.0.0.254

pptpd server 所在服务器的 IP 地址,可以设置为服务器上绑定的任意一个 IP 地址。

remoteip 10.0.0.200-210

设置客户端连接到 pptpd server 后可供分配的 IP 地址范围( 10.0.0.200 - 10.0.0.210 ),可以这样设置:

10.0.0.200-208,10.0.0.209,10.0.0.210

效果是一样的。

接下来对 options.pptpd 进行配置:

shell> vi /usr/local/pptpd/etc/options.pptpd

以下是我的配置文件:

# options.pptpd

name Nanu-VPN

refuse-pap

refuse-chap

refuse-mschap

require-mschap-v2

require-mppe-128

ms-dns 202.106.46.151

ms-dns 202.106.0.20

proxyarp

debug

lock

nobsdcomp

novj

novjccomp

nologfd

说明:

name Nanu-VPN

pptpd server 的名称。

refuse-pap

拒绝 pap 身份验证模式。

refuse-chap

拒绝 chap 身份验证模式。

refuse-mschap

拒绝 mschap 身份验证模式。

require-mschap-v2

在端点进行连接握手时需要使用微软的 mschap-v2 进行自身验证。

require-mppe-128

MPPE 模块使用 128 位加密。

ms-dns 202.106.46.151

ms-dns 202.106.0.20

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)。

OK,配置好上面的两个文件后,我们开始添加 pptpd server 连接帐户。

pptpd server 连接帐户控制文件位于:/etc/ppp/chap-secrets

chap-secrets 文件是有格式的,文件中每一行为一个客户端帐户,而一行又分为 4 段(用空格或者 TAB 分开),这 4 段从左到邮分别为:用户名、服务器名称*、密码、客户端分配到的 IP 地址。

*注意:

1、服务器名称必须和 pptpd.conf 中 name 处设置的名称一致,否则登录验证无法通过;

2、密码以明文填写,不需进行加密。

下面我们添加一个客户端帐户:

shell> vi /etc/ppp/chap-secrets

# PPTP User Accounts

# username server_name password ip

vpn1 Nanu-VPN "123456" 10.0.0.201

这样就配置好了一个连接帐户。

三、启动 pptpd server

shell> /usr/local/pptpd/sbin/pptpd --conf /usr/local/pptpd/etc/pptpd.conf --option /usr/local/pptpd/etc/options.pptpd

检查 pptpd server 是否启动成功:

shell> netstat -nlp

如果看到有进程 tcp 1723 端口监听就说明 pptpd server 已经启动成功了!

注意:

1、服务器防火墙必须对外开放允许 TCP 1723 端口的连接请求!

2、如果 pptpd server 位于网关或者其他前置设备之后,则必须在相应设备上开启 PPTP 穿越!

四、测试连接

在 Windows 2000/XP/2003/Vista 中新建一个 VPN 连接,填写相应的 pptpd server IP 地址、用户名、密码进行连接测试。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有