发新话题
打印

【推荐】VPN How-To

【推荐】VPN How-To

VPN 是 Virtual Private Network 的缩写,意思是虚拟私有网络,也就是在公开的网络架构上,虚拟一个私有的网络。这个虚拟的网络架构具有和真正私有网络一样的安全性、管理便利性及效能。VPN 的目的是用来取代原本专线式的私有广域网络,以更符合成本效益的方式来达成相同的目的。

举例而言,如果您有二个分公司位于不同的城市,每个分公司内部都有自己的私有内部网络,而二个公司的内部网络原本是无法连接使用,除非建立一条专线,以连接二个公司的网域。然而,若改用 VPN 的方式,我们可以使用现有的因特网架构,在二个公司分别架设 VPN 服务器,则二个不同城市的公司内部网络就可以连接起来。另外,我们也可以从家里使用 Windows VPN 拨号联机到公司内部网络中。

和传统的专线式私有网络相比,由于 VPN 使用现成低廉的网络架构,所以成本上便宜许多,而且日后不论是要进行线路变更或架构更动也比较容易。本文中,我们将介绍如何使用 FreeBSD 建立 VPN Server,让使用者可以从 MS Windows 上使用 VPN 拨路联机到公司内部网络。

们使用 poptop 这个软件来建立 PPTP 的 VPN 联机,PPTP 是 Windows  所使用的 VPN。我们在 FreeBSD 上建立 VPN 之后,使用者可以自远程使用 Windows 经由 Internet 使用 VPN 拨号连到公司的内部区网。

我们假设公司内部网络 IP 为 192.168.x.x,而 FreeBSD 这台 NAT Server 上,我们另外安装了 poptop 这套 VPN 软件。

步骤一:

请先确认在 Kernel 中有下列这行设定:

# 如果您使用的是 FreeBSD 4.x
pseudo-device        tun                # Packet tunnel.
# 如果您使用的是 FreeBSD 5.x
device                tun                # Packet tunnel.


步骤二:

接着我们要在 FreeBSD 的 NAT server 上安装 ppptop,请使用下列指令安装:

# cd /usr/ports/net/poptop
# make install clean
步骤三:

请在 /usr/local/etc/ 新增一个 pptpd.conf,并编辑内容如下:

# 表示我们使用的 ppp 设定档位聊
option /etc/ppp/ppp.conf
# 表示要打开除错 (debug) 模式
debug
# 如果您有多个对外的 IP,但只要接受从其中一个 IP 进来的联机,
# 则在下列这一行中设定。
##listen 208.212.80.82

# NAT server 所使用的区网 IP
localip 172.16.1.1
# 要给远程的 IP,范围是 172.16.0.1 ~ 172.16.0.254
remoteip 172.16.0.1-254
# 设定存放 pid file 的位置
pidfile /var/run/pptpd.pid


步骤四:

接着我们要编辑 PPP 所使用的设定档,请先将原本的 /etc/ppp/ppp.conf 更名备份起来,我们使用文书编辑软件来新增一个新的 ppp.conf,内容如下:

loop:
set timeout 0
set log phase chat connect lcp ipcp command
set device localhost:pptp
set dial
set login
# Server (local) IP address, Range for Clients, and Netmask
set ifaddr 172.16.1.1 172.16.0.1-172.16.0.254 255.255.0.0
set server /tmp/loop "" 0177

loop-in:
set timeout 0
set log phase lcp ipcp command
allow mode direct
pptp:
load loop
enable chap
enable MSCHAPv2
disable deflate pred1
deny deflate pred1
set mppe 128 stateless
enable MPPE
accept MPPE
enable chap81
disable pap
enable proxy
accept dns
# DNS Servers to assign client
set dns 192.168.1.1
set device !/etc/ppp/secure

步骤五:

在使用者从 Windows 端使用 VPN 拨号时,我们在 ppp.conf 中设定了所要使用的装置设定文件为 /etc/ppp/secure,这个档是一个执行档,我们使用 shell script 设定执行 ppp 这个指令。请新增一个文字文件 /etc/ppp/secure,内容如下:

#!/bin/sh
exec /usr/sbin/ppp -direct loop-in


接下来必须使用下列指令将该档案设为可执行:


# chmod 755 /etc/ppp/secure
步骤六:

然后我们要新增一个文字文件 /etc/ppp/ppp.secret 存放使用者数据及密码,其格式为 username password:

alex        Saxophone
bill        Pwanuts
john        mypasswd


由于这个档案内容包含了 password,所以我们必须将它设为只有 root 可以读取:

# chmod 660 /etc/ppp/ppp.secret
步骤七:

现在我们可以启动 VPN 服务了:

# cd /usr/local/etc/rc.d
# cp pptpd.sh.sample pptpd.sh
# /usr/local/etc/rc.d/pptpd.sh start

步骤八:

在 Windows 端的设定方面,请在控制台的网络联机中建立一个新的网络联机:

如果您使用 ADSL 或 modem,在使用 internet 之前必须先拨号联机,您可以在这里选择当使用 VPN 时先自动拨接,或者您可以可选择不要拨接起始联机,只要您在使用 VPN 时先将计算机连上 Internet 即可。

都设定好之后,请按确定回到下列画面。接着输入账号及密码后就可以进行拨号了。在开始使用VPN 拨号前,如果您使用的是拨接式的ADSL 或Modem,您必须先将建立ADSL 联机,才可以进入VPN 拨号喔。      

TOP

顶!好,收到!明天照办。      
独学而无友,则孤陋而寡闻。 --渴望学友。

TOP

发新话题