pptpd配置参数详解

在LINUX下搭建PPTPD服务器主要有3个配置文件,分别如下:

/etc/pptpd.conf 主配置文件
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-128,192.168.1.200 #客户端被分配的IP范围

注意:为了安全性起见,localip和remoteip尽量不要同一个网段。
/etc/ppp/options.pptpd 选项配置文件 
auth #需要使用/etc/ppp/chap-secrets配置文件来验证

lock #锁定PTY设备文件
debug #如上,把信息写入系统日志
Proxyarp #启动ARP代理,如果分配给客户端的IP地址与内网网卡在一个子网就需要启用ARP代理。

name pptpd #VPN服务器的名字
multilink #这是PPP协议的扩展
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用户验证文件 
# client server secret IP addresses
"test " * "test" *
上面第二行代码的四项内容分别对应第一行中的四项。“test”是Client端的VPN用户名;“server”对应的是VPN服务器的名字,该名字必须和/etc/ppp/options.pptpd文件中指明的一样,或者设置成“*”号来表示自动识别服务器;“secret”对应的是登录密码;“IP addresses”对应的是可以拨入的客户端IP地址,如果不需要做特别限制,可以将其设置为“*”号。

按以上配置,客户端已经可以连接上服务器了,但连上了后不能上网,需要在LINUX下把IP转发功能打开,以及配置一下相应的防火墙设置,如下:

root@huabolinux:/home/huabo# echo 1 > /proc/sys/net/ipv4/ip_forward

root@huabolinux:/home/huabo# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE



原文 :http://www.itxz.cn/?p=331

你可能感兴趣的:(Linux)