当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > 打造基于Linux的VPN服务器

Linux服务器
Linux上双网卡绑定方法(Suse9SP3)
Linux操作系统调优参数的意义
Linux下使用SSH客户端及其Sftp文件传送
教你恢复被误删除的Linux文件
SQL Server注入大全及防御
Linux无法解析域名的解决办法
Linux系统下安装和配置MyEclipse的方法
Ubuntu下VirtualBox 1.4.0设置文件共享
Windows与Linux系统共享StarDict字典文件
修改Linux下相关的登陆信息
Windows通过SecureCRT远程登录Linux主机
Linux操作系统如何修改SWAP交换区的大小
Linux操作系统下为Apache目录添加密码
Linux时间设置与同步(NTP)
Linux内核补丁AMD旁路转换缓冲(TLB)错误
Linux架设DHCP服务器的方法
Fedora 8下Apache配置与管理
Linux操作系统下用单网卡捆绑双IP的方法
Ubuntu Linux系统环境变量配置文件
SUSE Linux中将Tomcat作为Service运行

Linux服务器 中的 打造基于Linux的VPN服务器


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 41 ::
收藏到网摘: n/a

VPN(VirtualPrivateNetwork,虚拟专用网络)是专用网络的延伸,它可以通过共享Internet或公共网络连接模拟点对点专用连接的方式,在本地计算机和远程计算机之间发送数据。

它具有良好的保密性和不受干扰性,使双方能够进行自由而安全的点对点连接。下面介绍一种快速构建VPN服务器的方法。

安装软件

1.安装PPP

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

安装命令如下:

#rpm-Uvhppp-2.4.3-0.cvs_20040527.1.i386.rpm

2.安装内核MPPE补丁

安装内核MPPE(MicrosoftPointtoPointEncryption,微软点对点加密)补丁需要根据内核选择相应的版本。笔者使用的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-ivhkernel-mppe-2.4.20-31.9.i686.rpm

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

#modprobeppp-compress-18


3.检查PPP是否支持MPPE

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

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

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

4.安装PPTPD

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

#rpm-ivhpptpd-1.1.4-b4.i386.rpm

修改配置文件

1.修改modules.conf文件

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

aliasnet-pf-47ip_gre

2.修改pptpd.conf文件

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

debug
option/etc/ppp/options.pptpd
localip192.168.0.254#本地VPN服务器的IP
remoteip192.168.1.1-254#客户端被分配的IP范围

3.修改options.pptpd文件

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

auth
lock
debug
proxyarp
lock
namerh9vpn#VPN服务器的名字
multilink
refuse-pap
refuse-chap
refuse-mschap
refuse-eap
refuse-mschap-v2
require-mppe
ms-wins192.168.1.2#把想要在网络邻居中看到的机器的IP填写到这里
ms-dns192.168.1.2#DNS服务器地址
dump
logfile/var/log/pptpd.log#日志存放的路径

4.修改chap-secrets文件

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

#clientserversecretIPaddresses
"[email protected]"*"test"*

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

5.设置IP伪装转发

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

#echo1>/proc/sys/net/ipv4/ip_forward

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

6.打开防火墙端口

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

#/sbin/iptables-AINPUT-ptcp--dport1723-jACCEPT
#/sbin/iptables-AINPUT-ptcp--dport47-jACCEPT
#/sbin/iptables-AINPUT-pgre-jACCEPT

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

测试

下面以WindowsServer2003为例来进行测试。

1.新建连接

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

  2.修改连接属性

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

  3.建立连接

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

如果客户端使用的仍然是Windows95或Windows98,则需要到http://support.microsoft.com/support/kb/articles/q285/1/89.asp下载相关的拨号程序。