?? vpn.txt
字號:
如何設置“虛擬私有網路(VPN)” 作者: Arpad Magosanyi <mag@bunuel.tii.matav.hu>譯者: 蔣大偉 <dawei@sinica.edu.tw> v0.2, 7 August 1997 翻譯完成日期: 20 Feb 1999 _________________________________________________________________ 如何建立虛擬私有網路(Virtual Private Network)。 _________________________________________________________________ 1. 更正2. 推薦廣告 * 2.1 版權聲明 * 2.2 免責聲明 * 2.3 鄭重聲明 * 2.4 功勞 * 2.5 本文的現況 * 2.6 相關文件 3. 介紹 * 3.1 命名慣例 4. 開始建置 * 4.1 規劃 * 4.2 搜集工具 * 4.3 編譯與安裝 * 4.4 其它子系統的設定 * 4.5 設定 VPN 的使用者帳戶 * 4.6 為 master 帳戶,產生一個 ssh key * 4.7 為 slave 帳戶,設置自動的 ssh 登入環境。 * 4.8 加強 ssh 在 bastion 主機上的安全性。 * 4.9 允許 ppp 的執行,和這兩個帳戶的路由。 * 4.10 撰寫命令稿程式 5. 讓我們檢視執行的結果:6. 著手執行。 * 6.1 登入 * 6.2 啟動 ppp * 6.3 一次完成兩個動作 * 6.4 Pty 的重導功能 * 6.5 這個裝置上面,會有些什麼東西? * 6.6 設定路由 7. 調整 * 7.1 設定的調整 * 7.2 頻寬與安全誰重要 8. 分析易受攻擊的弱點 _________________________________________________________________ 1. 更正 'no controlling tty problem' -> -o 'BatchMode yes' 是由 Zot O'Connor <zot@crl.com> 所更正。 核心 2.0.30 的警告訊息,是由 mag 所更正。 2. 推薦廣告 這份文件是 Linux VPN howto,它收集了如何在 Linux (以及一般的 UNIX) 上建 立 一個虛擬保護式網路的相關資訊。 2.1 版權聲明 這份文件是 Linux HOWTO 計劃的一部分。它的版權聲明如下:除非特別說明 ,Linux HOWTO 文件的版權歸屬他們各自的作者所有。Linux HOWTO 文件的全部 或部分,可以 使用任何物理或電子形式的媒體來復制與散布,只要這個版權聲明 被保留在每份拷貝 中。商業行為的再散布是被允許而且受歡迎的;但是,任何的 散布行為作者都希望能 被告知。所有翻譯、衍生的工作、或合并任何 Linux HOWTO 文件的聚集工作,都必須 受到這個版權聲明的保護。也就是說,你不可以 從 HOWTO 衍生出一份文件,然後對這 份衍生文件的散布強加上其他限制條件。 除非在一些特定的狀況下,才會允諾這些限制 條件;請聯絡 Linux HOWTO 的協 調人,他的地址如下。簡而言之,我們希望能夠盡可 能透過各種管道,來推動這 個資訊的散布工作。然而,我們也希望保留 HOWTO 文件的 版權,以及如果有任 何對 HOWTOs 的再散布計劃也希望能夠被通知到。如果有任何疑問 ,請聯絡 Linux HOWTO 協調人 Tim Bynum,他的電子郵件地址是 linux-howto@sunsite.unc.edu 。 2.2 免責聲明 一如往常:本文對你所造成的任何危害,作者一概不負責任。正確的條文,請參 閱 GNU GPL 0.1.1 的相關部分。 2.3 鄭重聲明 我們所面臨的是安全性的問題:如果你沒有形成一個好的安全策略,以及做好相 關的配套 措施,你將無法獲得真正的安全。 2.4 功勞 感謝所有提供工具程式給本文使用的人仕。 感謝 Zot O'Connor <zot@crl.com> 不僅指正“no controlling tty”的問題, 而且 還提供了解決方法。 2.5 本文的現況 在閱讀本文前,你應該已具備完整的 IP 管理知識,至少要對“防火 墻(firewall)”、ppp 、和 ssh ,等知識,有一些了解。如果你要設定一個 VPN 環境,無論如何一定得知道這些 東西。我只是將我的經驗寫下來 ,以免日 後忘記相關的內容。所以,我相信一定會有安全 的漏洞存在。為了清楚起見,我 試著以主機設置為路由器方式,而不是以防火墻的方式,來 說明整個內容,希望 大家輕輕松松就能夠了解本文。 2.6 相關文件 * 檔案 /usr/doc/HOWTO/Firewall-HOWTO 上的 Linux Firewall-HOWTO 文件 * 檔案 /usr/doc/HOWTO/PPP-HOWTO.gz 上的 Linux PPP-HOWTO 文件 * 目錄 /usr/doc/ssh/* 中的 ssh 文件 * Linux “網路管理指引(Network Admins' Guide)” * 國家標準及技術委員會 (National Institute Standards and Technology, 簡寫為 NIST) 在電腦安全方面的出版品,請參考網址 http://csrc.ncsl.nist.gov/nistpubs/ * “防火墻通信論壇(Firewall list)” (majordomo@greatcircle.com) 3. 介紹 由於網路安全問題日益受到重視,所以,防火墻的技術越來越廣泛地被應用在, 網際網路 和“公司內部網路(intranet)”上,防火墻能力的優劣,對 VPN 的安 全性有著舉足輕重的 影響。這只是我個人的體會。歡迎大家提出自己的看法。 3.1 命名慣例 我將會使用到“主防火墻(master firewall)”和“次防火墻(slave firewall)” 這兩個專 有名稱,然而,VPN 的建置與主仆式架構之間沒有任何關聯性。我只是 把它們看成,兩端在 建立連線時,它是個主動的參與者或被動的參與者。發起建 立連線的主機,會被當作主防火 墻;然而,被動的參與者,就會被當作次防火墻 。 4. 開始建置4.1 規劃 在你開始設定系統前,你應該要先了解一下網路連接的細節。現在,我假定你有 兩個防火墻 ,各保護一個公司內部網路。所以,現在每個防火墻應該會有兩個網 路界面(至少)。拿一 張紙,寫下它們的 IP 位址和網路遮罩。每個 VPN 的防 火墻,將會使用到數個 IP 位址區 段。這些 IP 位址區段,應該設定在你公司現 有的子網路的□圍以外。我建議使用“私有” IP 位址區段的□圍。如下所示: * 10.0.0.0 - 10.255.255.255 * 172.16.0.0 - 172.31.255.255 * 192.168.0.0 - 192.168.255.255 為了說明,此處我舉了一個設定的案例:有兩臺 bastion [譯注] 主機,分別被 稱為 fellini 和 polanski。它們各有一個界面連接網際網路 (-out),一個界面 連接公司內部網路 (-in) ,以及,一個界面連接 VPN (-vpn)。所有的 IP 位址 和網路遮罩,如下: * fellini-out: 193.6.34.12 255.255.255.0 * fellini-in: 193.6.35.12 255.255.255.0 * fellini-vpn: 192.168.0.1 點對點 * polanski-out: 193.6.36.12 255.255.255.0 * polanski-in: 193.6.37.12 255.255.255.0 * polanski-vpn: 192.168.0.2 點對點 譯注: bastion 是指暴露在公司網路外部的防火墻閘道。 所以我們有個計劃。 4.2 搜集工具 你將會需要 * Linux 防火墻 * 核心 * 非常少的設定 * ipfwadm 程式 * fwtk 程式 * VPN 所使用的工具 * ssh 程式 * pppd 程式 * sudo 程式 * pty-redir 程式 目前使用的版本: * 核心: 2.0.29 。請使用穩定的核心,而且,必須比 2.0.20 還新,因為 ping'o'death 的錯誤。在撰寫本文時,最後一個穩定的核心是版本 2.0.30 ,但是它有一些錯誤。如果 ,你想要使用最新版核心所提供,既快又酷的網 路程式碼,你自己可以嘗試看看,版本 2.0.30 對我而言,已經很好用了。 * 基本的作業系統:我比較喜歡 Debian 所發行的版本。你絕對使用不到任何 大型的 軟體套件,當然,也包含 sendmail 在內。你也絕對不能像其它的 UNIX 主機一樣,允許 telnet、ftp、和 'r' 命令,等功能的使用。 * ipfwadm 程式: 我使用的是 2.3.0。 * fwtk 程式: 我使用的是 1.3。 * ssh 程式: >= 1.2.20。較舊的版本,下層的協定會有問題。 * pppd 程式: 我測試的是 2.2.0f,但是我無法確定它是否安全,這就是為什 麼我會 將它的 setuid 位元拿掉,并透過 sudo 來執行它的原因。 * sudo 程式: 我所知道的最新版本是 1.5.2。 * pty-redir 程式: 這是我寫。請至 ftp://ftp.vein.hu/ssa/contrib/mag/pty-redir-0.1.tar.gz 取得?,F在的 版本是 0.1 。如果使用上有任何問題,請來信告知。 4.3 編譯與安裝 你現在的工作不是編譯就是安裝所搜集到的工具。 并參閱其(以及 firewall-howto) 詳細的說明文件。現在,我們已經安裝好這些工具了。 4.4 其它子系統的設定 設定防火墻以及其它的項目。你必須在兩臺防火墻主機之間,允許 ssh 資料的流 通。這 是指,主防火墻會有網路連線到次防火墻的埠 22。在次防火墻上啟動 sshd,來驗證是否 允許你“登入(login)”。這個步驟尚未測試過,請告訴我你 的測試結果。 4.5 設定 VPN 的使用者帳戶 以你日常使用的工具(例如,vi、mkdir、chown、chmod)在次防火墻上建立一個 使用者帳 戶,你也可以在主防火墻上建立一個使用者帳戶,但是,我認為在開機 階段設定連線就可以 了,所以,使用原始的 root 帳戶就已足夠。有任何人可以 為我們說明一下,在主防火墻上 使用 root 帳戶,會有什麼危險性? 4.6 為 master 帳戶,產生一個 ssh key 你可以使用 ssh-keygen 程式。如果,你要自動設置 VPN,你可以設定一個沒有 密碼的 “私人鑰匙(private key)”。 4.7 為 slave 帳戶,設置自動的 ssh 登入環境。 在次防火墻中,復制你剛才產生的“公共鑰匙(public key)”到,使用者帳戶 slave 中 的 .ssh/authorized_keys 檔案里,并且,設定檔案的使用權限,如下 :
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -