IP Masquerade 是 Linux 的一項網路功能。如果一台 Linux 主機使用 IP Masquerade 功能連線到網際網路上,那麼接上它的電腦(不論是在同一個區域網路上或藉由數據機連線)也可以接觸網際網路,即使它們沒有獲得正式指定的 IP 位址。
這使得一些電腦可以隱藏在閘道(gateway) 系統後面存取網際網路而不被發現,看起來就像只有這個系統在使用網際網路。突破設定良好的偽裝(masquerade)系統之安全防護應該會比突破良好的封包過濾式防火牆(packet filter firewall)來得更加困難(假設兩者之中都沒有錯誤)。
IP Masquerade 已經發展多年而趨於成熟,因此已正式併入 Linux 2.2.x 的核心中。 從 1.3.x 版的核心開始已經內建這項支援。許多個人甚至公司正在使用它,而有滿意的結果。
瀏覽網頁以及遠端簽入(telnet)已經有回報表示可以在 IP Masquerade 上運作。檔案傳輸(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 或 AS225-stack 的系統。 這列表還在不斷增加當中。重點就是,只要你的系統使用 TCP/IP 協定,它就應該能和 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->在這個例子中我們考慮四台電腦系統(想必遙遠的右方還有些東西讓你到網際網路的 IP 連線能夠連接,以及一些(遠超過這一頁)在網際網路上你有興趣交換資訊的東西)。 這個 Linux 系統
masq-gate
是 abox
, bbox
, cbox
內部網路機器連接網際網路的偽裝閘道。
內部網路使用指定的私用(private) 網路位址,在這個案例中是 class C 網路 192.168.1.0, Linux 機器擁有位址 192.168.1.1 而其它系統也擁有此網路上的位址。
這三台機器 abox
, bbox
以及 cbox
(它們可以執行任何作業系統 - 像是 Windows 95, Macintosh MacTCP 或甚至是另一台 Linux 機器,只要它們能了解 IP)可以連線到網際網路上的其它機器去,然而這個偽裝系統閘道 masq-gate
轉換它們所有的連線所以這些連線看起來像是原本即從偽裝閘道 masq-gate
本身發出的,而且還安排偽裝連線傳回的資料轉回原先的系統 - 所以在內部網路上的系統看到的是直接通往網際網路的遞送路徑而且不知道他們的資料被偽裝過。
** 請參考 IP Masquerade Resource 以獲得最新資訊。**
** 請參考 IP Masquerade Resource 以獲得最新資訊。**