极限首页 业界焦点 软件工程师之路 系统工程师之路 网络工程师之路 软件下载 技术社区
 CVS使用速成配置
 CVS服务器建立和权限配置
 CVS使用手册
 cvs客户端大全
 Linux使用ADSL拨号上网
 iSCSI的成熟 几款iSCSI磁盘
 玩转Linux下的PPP连接
 软件路由器coyote linux安
 RedHat系统ADSL配置指南
 用Linux将局域网带入Inter
 CVS使用速成配置
 CVS服务器建立和权限配置
 CVS使用手册
 cvs客户端大全
 Linux使用ADSL拨号上网
 iSCSI的成熟 几款iSCSI磁盘
 玩转Linux下的PPP连接
 软件路由器coyote linux安
 RedHat系统ADSL配置指南
 用Linux将局域网带入Inter

Shell 中文手册

Python 2.3 中文手册

Python 2.4 中文手册

Mysql 4.x 中文手册

PHP 4.x 中文手册

Apache 2.x 中文手册
更多手册

站内搜索:
当前位置:首页>>网络工程师之路>>网络应用>>正文
打造基于Linux的VPN服务器
时间:2005-09-13 作者:pconline 来源:pconline

  VPN(Virtual Private Network,虚拟专用网络)是专用网络的延伸,它可以通过共享Internet或公共网络连接模拟点对点专用连接的方式,在本地计算机和远程计算机之间发送数据。
它具有良好的保密性和不受干扰性,使双方能够进行自由而安全的点对点连接。下面介绍一种快速构建VPN服务器的方法。

安装软件

1.安装PPP

安装PPP(Point-to-Point Protocol,点到点协议)2.4.2以上的版本,可以到http://sourceforge.net/project/showfiles.php?group_id=44827下载ppp-2.4.3-0.cvs_20040527.1.i386.rpm软件包。

安装命令如下:

#rpm -Uvh ppp-2.4.3-0.cvs_20040527.1.i386.rpm

2.安装内核MPPE补丁

安装内核MPPE(Microsoft Point to Point Encryption,微软点对点加密)补丁需要根据内核选择相应的版本。笔者使用的Linux内核是2.4.20-31.9版本,可以到http: //pptpclient.sourceforge.net/mppe/kernel-mppe-2.4.20-31.9.i686.rpm下载相应的 kernel-mppe-2.4.20-31.9.i686.rpm软件包。安装命令如下:

#rpm -ivh kernel-mppe-2.4.20-31.9.i686.rpm

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

#modprobe ppp-compress-18


3.检查PPP是否支持MPPE

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

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

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

http://sourceforge.net/project/showfiles.php?group_id=44827下载pptpd-1.1.4-b4.i386.rpm软件包,并安装。

# rpm -ivh pptpd-1.1.4-b4.i386.rpm

修改配置文件

1.修改modules.conf文件

编辑/etc/modules.conf配置文件,加入如下内容:

alias net-pf-47 ip_gre

2.修改pptpd.conf文件

编辑/etc/pptpd.conf配置文件,添加如下内容,确定本地VPN服务器的IP地址和客户端登录后分配的IP地址范围。

debug
option /etc/ppp/options.pptpd
localip 192.168.0.254 #本地VPN服务器的IP
remoteip 192.168.1.1-254 #客户端被分配的IP范围

3.修改options.pptpd文件

编辑/etc/ppp/options.pptpd配置文件,替换成如下内容:

auth
lock
debug
proxyarp
lock
name rh9vpn #VPN服务器的名字
multilink
refuse-pap
refuse-chap
refuse-mschap
refuse-eap
refuse-mschap-v2
require-mppe
ms-wins 192.168.1.2 #把想要在网络邻居中看到的机器的IP填写到这里
ms-dns 192.168.1.2 #DNS服务器地址
dump
logfile /var/log/pptpd.log #日志存放的路径
4.修改chap-secrets文件

编辑/etc/chap-secrets配置文件,添加如下内容:

# client server secret IP addresses
"test@gd.cn" * "test" *

上面第二行代码的四项内容分别对应第一行中的四项。“test@gd.cn” 是Client端的VPN用户名;“server”对应的是VPN服务器的名字,该名字必须和/etc/ppp/options.pptpd文件中指明的 一样,或者设置成“*”号来表示自动识别服务器;“secret”对应的是登录密码;“IP addresses”对应的是可以拨入的客户端IP地址,如果不需要做特别限制,可以将其设置为“*”号。

5.设置IP伪装转发

只有设置了IP伪装转发,通过VPN连接上来的远程计算机才能互相ping通,实现像局域网那样的共享。用下面的命令进行设置:

#echo 1 > /proc/sys/net/ipv4/ip_forward

可以将这条命令放到文件/etc/rc.d/rc.local里面,以实现每次开机时自动运行该命令。

6.打开防火墙端口

将Linux服务器的1723端口和47端口打开,并打开GRE协议。

#/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

到这里Linux服务器的设置就完成了,下面将利用Windows客户端进行测试。
测试

下面以Windows Server 2003为例来进行测试。

1.新建连接

单击“开始→设置→网络和拨号连接”打开“网络和拨号连接”的窗口,再单击“新建连接”打开“网络连接向导”的窗口,然后依次选择或填写“连接到我的工 作场所网络→虚拟专用网络连接→公司名(可以随便填写)→不拨初始连接→IP地址(填入VPN服务器的IP地址)”,最后单击“确定”,就建立了一个新的 连接。

2. 修改连接属性

右击刚才创建的连接,再依次单击“属性→网络(选择TCP/IP协议)→属性→高级”,然后把“在远程网络上使用默认网关”前面的勾去掉后单击“确定”。

3.建立连接

双击刚才建立好的连接,填入提前设置好的用户名和密码,单击“确定”进行连接。如果连接成功,在连接的“详细信息”里应该可以看到服务器所分配的IP地址等信息。这时,就可以跟连接进入的局域网里的其它计算机进行通信了。

如果客户端使用的仍然是Windows 95或Windows 98,则需要到http://support.microsoft.com/support/kb/articles/q285/1/89.asp下载相关的拨号程序。
推荐】【 】【关闭


关于极限 | 站内地图 | 意见反馈 | 广告服务 | 数据服务 | 联系我们
本站所刊登的文章,技术资料,软件均整理于网络资源或本站原创,转载请务必联系原作者或本站。
Copyright ? 2001-2004 UPLinux.com All Rights Reserved.
本站唯一联系信箱:
京ICP备05010519