| 會員 ![]() | 打造 Linux下的家居網絡(下) 打造 Linux下的家居網絡(下) 自製 Linux 家居網絡不求人 (下) 載入需要的Module作防火牆 ipchain除了可作為防火牆之外,也是分享網絡的一套實用工具。使用ipchain是在Kernel中建立ipmasquerading的modules。而因為要做Gateway,所以關於Routing,IPsharper亦需使用。 註:要用superuser的身份進入/user/src/linux的目錄,用make menuconfig或make xconfig,在選擇完成後請儲存設定及用: "make dep","make clear"及"make bzImage" 因為有modules的改動,所以同時要做 "make modules"及"make modules_install" 你所compile的新modules將會放入/lib/modules/2.XX(與核心號碼對應)的目錄內。 採用insmod指令載入module 由於今天有很多的distributions己經預定使用者將之作為gateway等伺服器,所以這些mobdules多數己經預早為使用者compile好了。所以在Compile之前可以試試將他們用指令"insmod"載上看看。幾個要用的modules分別是: 1. ip_masq_user 2. ip_masq_raudio 3. ip_masq_ftp 4. ip_masq_irc 5. ip_masq_vdoline(如果你要用vdoline這玩意) 還有兩個,一個是給玩quake遊戲,另一個是給cuseeme(這個是網上視像工具),這些modules全部會放在你的/lib/modules/2.2XX/ipv4目錄之中。 加入必需參數 驅使系統在啟動時自動掛上上述的Modules。利用/etc/rc.d/rc.local是不錯的主意,rc.local是系統中最後的一個啟動程序,只要用文字編輯加入下面的句子便可以: /sbin/insmod ip_masq_user /sbin/insmod ip_masq-raudio /sbin/insmod ip_masq_ftp /sbin/insmod ip_masq_irc 如果不想寫,也可以試用echo這個小玩意。 $echo "/sbin/insmod ip_masq_ftp" >> rc.local 這樣會將括起的整句寫下rc.local檔案的最後一行,記著要用兩個">",如果一個會overwrite整個rc.local的內容,用上述方法重複將每一行echo入rc.local內吧! 使用新編譯的核心 如果你的Distribution並未為仔預先編譯modules,那麼你就要如上述的編譯核心及安裝modules。而新製作出來的壓縮核心會放在 /usr/src/linux/arch/i386/boot 當中。將這個bzImage連結,或移到 /boot 目錄之中。將修改 /etc/lilo.conf 中的設定,加上新的一段指向核心再用 "lilo -v -v -v" 灌入 Master Boot Record (MBR)。 ipchain 的設定 ipchain 的功能主要的調節防火牆的防護功能,分別對進去及轉傳部可以調節。當然在家中使用的防火牆並不需要太複習的設定,下面有二個基本的設定可供參考: 給 PPPO 使用的 #!/bih/sh echo 1 > /proc/sys/net/ipv4/ip_forward; /sbin/ipchains -A forward -s 192.168.0.0/24 -j MASQ 給 Ethernet 使用的 #!/bin/sh echo 1 > /proc/sys/net/ipv4/ip_forward; /sbin/ipchains -A forward -s 192.168.0.0/24 -j MASQ -i eth0 上述兩個例子的頭一句是一樣的, echo "1" 到 "ip_forward" 是令到 ip_forward 生效的。因為系統中的預設是 "0",意即不使用 ip forward。 第二句只有最尾的一段不同,當中的 "A" 代表 ipchains 的規則會對下來的一段發生作用,而 "s" 代表 source 其支配的 IP 地址或 SubMark。在例子中只用了 192.168.0.0 - 192.168.0.24,當然你可以收窄為 192.168.0.0/5 也可以,視乎你的需要而定。 運用Shell Script設定 使用上述的 ipchain 腳本 (shell script),以往我會把它儲在一個名為 IP 的檔案,再用 SuperUser 的身份將它變成一個可以執行的檔案。但在今天已經有一個新的 Module 名為 IP,那麼最好將之改為其它的名稱,避免混淆,不如改它為 homenet。 要使用 homenet 這個 shell script,我們需要將它改為一個可以執行的檔案: $chmod +x homenet 我們將檔案放在/sbin 目錄之內(這處多放置一般網絡有關的指令)。要令它順利的執行,一定要在上述ip_masquerade 的 Modules 載入之後執行。 我們可以將它寫入 /etc/rc.d/rc/local 之內,但定要在上述 ip_masquerade 之後,情況如下: /sbin/insmod ip_masq_user /sbin/insmod ip_masq_user /sbin/insmod ip_masq_randio /sbin/insmod ip_masq_irc /sbin/home-net 最後儲存資料 修改完畢後將之儲存,那麼在下次啟動系統時便會順序的啟動。這個設定的功能是不會因為對外連接介面的 IP 而改變的,無論是 forward 或 Routing。當然對外的介面失效,也沒有辦法送出任何的 TCP/UDP packet,那便要修改對介面的資料,當修改完畢後,只要將 Network 的功能重新啟動一次便可。 $/etc/rc.d/init.d/network restart. #redhat, mandrake user 或 $/etc/init.d/networking restart #debian user 也可以這樣(雖然只是暫時性,在關機後修改便會失效): $ ifconfig eth0 (IP 號碼) $ route add default gw (gateway IP號碼) 如果是使用"ppp-on"script的,請在上面"/sbin/insmod ip_masq_user"之前加: /etc/ppp/ppp-on 至此,一切伺服器方面的設定已經完成了,下一步是設定Windows客戶端的工作,筆者在這裡就省略不談讓各位自行跟據上述指定的資料來設定了。 編輯部 2001-04-13 12:01 2000 PCWeekly OnLine. |
| 回覆 |
| 會員 ![]() | 感謝分享 |
| 回覆 |
| |
類似的主題 | ||||
| 主題 | 主題作者 | 討論版 | 回覆 | 最後發表 |
| 打造 Linux下的家居網絡(上) | CCH | -- FreeBSD & Linux 討 論 版 | 1 | 2003-05-24 11:58 PM |
| 打造 IEEE1394 外接盒 【問題】 | 小舜子 | -- 光 碟 燒 錄 討 論 版 | 3 | 2002-03-30 06:58 PM |
| XML | RSS 2.0 | RSS |
本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。