萬盛學電腦網

 萬盛學電腦網 >> 應用技巧 >> IP 偽 裝 法

IP 偽 裝 法

這份文件描述如何在一台 Linux 主機上起動 IP Masquerade 功能,允許沒有注冊網際網路 IP 位址的連線電腦經由你的 Linux 機器連接網際網路。你的機器可能是以乙太網路連接 Linux, 也可能是其它種類,像是撥接的點對點(ppp) 連線。這份文件將會強調乙太網路連線的情況,因為這應該是最常見的案例。

這份文件傾向給使用 2.0.x 核心的使用者參考,不包含發展中的 2.1.x 核心。

1.2. 前言,回饋&參考資訊

  首先,我想讓你知道我不是對 IP masquerade 了解非常透徹或很有經驗的人。

  我發現新手在較新的核心上,像是 2.x 核心,設定 IP Masguerade時非常困惑。雖然有份常見問答集(FAQ) 與郵遞列表(mailing list),然而沒有一份這方面的專門文件;而且在郵遞列表上有些對於這樣一份說明文件(HOWTO) 的請求。所以,我決定撰寫它給所有新手作為一個起點,並且希望能拋磚引玉,作為那些非常了解它的使用者建立文件的基礎。如果你認為我做的不好,不要在意告訴我,這樣我能把它做得更好。

這份文件很多是以原先 Ken Eves 的常見問答集以及 ip_masq 郵遞列表裡許多有幫助的訊息作為基礎。特別感謝 Mr. Matthew Driver在郵遞列表中的訊息引發我設立 ip_masq 的靈感以及最後撰寫了這份文件。

如果我的任何資訊有誤或遺漏任何資訊,請別介意把任何回饋或意見寄到 achau@wwonline.com 來。你的無價回饋將影響未來的這份說明文件!

這份說明文件是想作為讓你的 IP Masquerade 能在最短時間內運作的快速指引。最新的消息以及資訊可以在我所維護的 IP MasqueradeResource 網頁上找到。如果你有任何關於 IP Masquerade 的技術問題,請加入 IP Masquerade 郵遞列表而別寄電子郵件給我,因為我的時間有限,而且 IP_ Masq 的發展者們更有能力回答你的問題。

這份文件最新的版本可以在 IP Masquerade Resource 上找到,裡面也有 HTML 以及 postscript 的版本。

http://www.wwonline.com/~achau/ipmasq/ http://www.hwy401.com/achau/ipmasq/

http://www.leg.uct.ac.za/mirrors/ipmasq/ http://130.89.230.132/linux/ipmasq/

1.3. 版權&宣告

這份文件版權屬於 Ambrose Au, 而且是免費的文件。你可以在 GNU的通用公開授權方式下散播它。

這份文件中的資訊跟其它內容都已經盡了我最大的努力。無論如何,ip_masq 是實驗性的,而且我也可能會犯些錯誤;所以你應該自己決定是不是要照著這份文件中的資訊做。

沒有人會為使用這份文件中的資訊所造成的電腦損壞或其它損失負責。作者不對依照這份文件內容動作所造成的損害負責。

2. 背景知識

2.1. 什麽是 IP Masquerade?

  IP Masquerade 是 Linux 發展中的一種網路功能。如果一台 Linux主機使用 IP Masquerade 功能連線到網際網路上,那麽接上它的電腦(不論是在同一個區域網路上或藉由數據機連線)也可以接觸網際網路,即使它們沒有獲得正式指定的 IP 位址。

  這使得一些電腦可以隱藏在閘道(gateway) 系統後面存取網際網路而不被發現,看起來就像只有這個系統在使用網際網路。突破設定良好的偽裝(masquerade)系統之安全防護應該會比突破良好的封包過濾式防火牆(packet filter firewall)來得更加困難(假設兩者之中都沒有錯誤)。

2.2. 現況

IP Masquerade 仍然在實驗階段。無論如何,核心從 1.3.x 開始已經內建這項支援。許多個人甚至公司正在使用它,而有滿意的結果。

浏覽網頁以及遠端簽入(telnet)已經有回報表示可以在 ip_masq 上運作。檔案傳輸(FTP), 網路交談(IRC) 以及聆聽 Real Audio 現在可以載入某些模組配合。其它的網路資料流音訊 (streaming audio)像是 True Speech 以及 Internet Wave 也能運作。一些郵遞列表中的使用夥伴甚至還嘗試過視訊會議軟體。 Ping 現在配合新近可以取得的網際網路控制訊息協定(ICMP)修補檔也能運作。更完整的支援軟體列表請參考 4.3 節。

IP Masquerade 在數種不同的作業系統及平台上與’客戶端機器’配合良好。成功的案例有使用 Unix , Windows95 , Windows NT ,Windows for Workgroup (with TCP/IP package) , OS/2, Macintosh System's OS with Mac TCP, Mac Open Transport, DOS with NCSA Telnet package, VAX, Alpha with Linux, 甚至 Amiga with AmiTCP or AS225-stack 的系統。

2.3. 誰可以從 IP Masquerade 中獲益?

如果你有台連接網際網路的 Linux 主幾,而且如果你有一些執行 TCP/IP 連接到 Linux 機器的電腦在區域網路上,以及/或是如果你的 Linux 主機有一個以上的數據機並且作為 PPP 或 SLIP伺服器連接其它電腦,它們這些”其它”機器沒有正式指定的 IP 位址。(這些機器從這裡開始以後就稱為”其它”機器)。而且當然,如果你希望這些”其它”機器不必花額外的費用就能連上網際網路:)

2.4. 誰不需要 IP Masquerade?

  如果你的機器是單獨一台(stand-alone) 連接網際網路的 Linux主機,那麽執行 ip_masq 沒什麽意義,或者如果你的”其它”機器擁有正式指定的 IP 位址,那麽你就不需要IP Masquerade ,而且當然,如果你不喜歡免費使用(free ride) 這個主意的話。

2.5. IP Masquerade 是如何運作的?

節自 Ken eves 的 IP Masquerade FAQ:

這是大部分簡單的設定草圖:



SLIP/PPP +------------+ +-------------+

to provider | Linux | SLIP/PPP | Anybox |

<---------- modem1| |modem2 modem | | 111.222.333.444 | | 192.168.1.100 | | +------------+ +-------------+ 上面的草圖中一台安裝並執行 ip_masquerading 的 Linux 機器使用 modem1 經由 SLIP/or/PPP 連接網際網路。它有一個 指定的 IP 位址 111.222.333.444。它設定 modem2 允許撥接者 簽入並起始 SLIP/or/PPP 連結。 第二個系統(不必是執行 Linux 的系統)撥接進入 Linux 機器並起始 SLIP/or/PPP 連結。它在網際網路上並沒有指定的 IP 位址所以它使用 192.168.1.100。(參閱下述) 配合 ip_masquerade 及適當遞送配置(routing configured) Anybox 這台機器可以跟網際網路交流就如同它真的連在上面般 (除了少數例外)。 節錄 Pauline Middelink: 別忘記提到 ANYBOX 應該把 Linux 機器當作它的閘道(無論是 預設遞送路徑或只是個子網路都沒關系)。如果 ANYBOX 不能夠 這樣設, Linux 機器應該為所有要遞送的位址做代理位址解析 析協定(proxy arp) 服務,但代理位址解析的設定超過這份文件 的□圍。 下面節錄自 comp.os.linux.networking 的一篇布告並且稍加編輯以 符合上述□例的用詞: 。我告訴 ANYBOX 這台機器跑 slip 的 linux 機器是它的閘道。 。當一個封包從 ANYBOX 進入 linux 機器時,它會指定新的來源埠 號(source port number),把它自己的 ip 位址塞入封包的標頭並 儲存原來的。然後它將會藉由 SLIP/or/PPP 界面把修改過的封包 送上網際網路。 。當一個封包從網際網路來到 linux 機器時,如果埠號是上面指定 的其中一個,它將會取出原來的埠號以及 ip 位址,把它們放回封 包的標頭,並且把封包送往 ANYBOX 。 。送出封包的主機將永遠不知道其中的差別。 一個 IP Masquerading 的例子: 下面的圖示是典型的例子: +----------+ | | Ethernet | abox |:::::: | |2 :192.168.1.x +----------+ : : +----------+ PPP +----------+ : 1| Linux | link | | ::::| masq-gate|:::::::::// Internet | bbox |:::::: | | | |3 : +----------+ +----------+ : : +----------+ : | | : | cbox |:::::: | |4 +----------+ <-Internal Network->

在這個例子中我們考慮 4 台電腦系統(想必遙遠的右方還有些東西讓你到網際網路的 IP 連線能夠連接,以及一些(遠超過這一頁)在網際網路上你有興趣交換資訊的東西)。這個 Linux 系統偽裝閘道是 abox, bbox, cbox 內部網路機器連接網際網路的偽裝閘道。內部網路使用指定的私用(private) 網路位址,在這個案例中是 class C網路 192.168.1.0, linux 機器擁有位址 192.168.1.1 而’其它’系統也擁有此網路上的位址。

這三台機器 abox, bbox 以及 cbox (它們可以執行任何作業系統-像是 Windows95, Macintosh MacTCP 或甚至是另一台 linux 機器,只要它們能了解 IP )可以連線到網際網路上的其它機器去,然而
這個偽裝系統閘道轉換它們所有的連線所以這些連線看起來像是原本即從偽裝閘道本身發出的,而且還安排偽裝連線傳回的資料轉回原先的系統-所以在內部網路上的系統看到的是直接通往網際網路的遞送路徑而且不知道他們的資料被偽裝過。

2.6. 在 Linux 2.x 上使用 IP Masquerade 的需求核心 2.0.x 的原始程式碼可以從這裡取ftp://ftp.funet.fi/pub/Linux/kernel/src/v2.0/(是的,你將得配合加入一些支援來編譯你的核心....
建議最新的穩定版本)

可載入核心模組,最好是 2.0.0 或更新的版本,可以從這裡取得http://www.pi.se/blox/modules/modules-2.0.0.tar.gz(至少需要 modules-1.3.57 )


  設定良好的 TCP/IP 網路涵蓋於 Linux NET-2 HOWTO及網路管理者指引(Network Administrator's Guide)。你的 Linux 主機的網際網路連線涵蓋於 Linux ISP Hookup HOWTO,Linux PPP HOWTO 以及 Linux PPP-over-ISDN mini-HOWTO


Ipfwadm 2.3 或更新的版本可以從這裡取ftp://ftp.xos.nl/pub/linux/ipfwadm/ipfwadm-2.3.tar.gz
在 Linux Ipfwadm 網頁上有更多關於版本的資訊。你可以選擇性地應用一些 IP Masquerade 修補檔打開其它功能。從這裡可以取的更多資訊, IP Masquerade Resources(這些修補檔適用於所有的 2.0.x 核心)

3. IP Masquerade 的設定

  如果你的私用網路裡有任何重要的資訊,在使用 I

copyright © 萬盛學電腦網 all rights reserved