RHEL快速搭建VPN服务器

30次阅读

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 下载相关的拨号程序。

 

正文完