在FreeBSD上架設VPN @ 資訊技術與心情 :: 隨意窩 Xuite日誌
  • 即時碎碎唸
    1. 沒有新回應!
  • 累積 | 今日
    loading......
  • 搜尋本Blog文章

  • 關鍵字
  • 2006-05-23 21:40 在FreeBSD上架設VPN
    平均分數:0 顆星    投票人數:0
    我要評分:
    轉載自http://www.twbsd.org/cht/articles/index.php?article=vpn.htm


    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 端的設定方面,請在控制台的網路連線中建立一個新的網路連線

    心不在焉 / Xuite日誌 / 回應(0) / 引用(0) / 好文轉寄
    回應