| FREESCO的架構 |
| 作者:未知 文章来源:www.router.net.cn 点击数: 更新时间:2006-8-24 10:08:55 |
|
|
|
|
|
|
其實我對FREESCO的架構並不是非常的瞭解,只是就我自己所知道的加以說明,基本上,FREESCO因為是單磁片版的linux套裝,因此它就不可能像Fedora或是RedHat那樣,有十分龐大的檔案結構,因為要將整個linux放入一片只有1.44mb的磁片中,是必要減少很多的程式或是指令,檔案結構也會有所不同。
如果我們進入freesco的系統後,在命令列打入ls指令時,會看到一些目錄,這些目錄與我們平常看到的linux的目錄是有所不同的。 當我們登入freesco後大概會看到以下的提示:
[root@Freesco]
打入ls指令會看到
bin dev etc lib mnt proc sbin tmp usr var www boot wwa home pkg rc
以上這些目錄,就是freesco的大致架構,可是我必須提醒各位,我們所看到的目錄有的只是freesco在記憶體中所建立的臨時目錄,並不一定是真實在磁碟片中的檔案目錄,因此,我們有些資料在更改時,必須將它真正的寫入磁片中,才算是更改完成。而如果用mnt等指令觀察freesco磁片時,我們看到的都是一些壓縮檔案,這些檔案必須載入到記憶體中後,才被解開執行的,因此要回寫資料到磁片中,必須依照freesco的規定程序去寫入的。對於這點,小弟也沒有真正的深入研究,但是防火牆規則修改的部分,是實際真的被寫入磁片中的。
防火牆規則的檔案位置:
如果我們進入freesco的指令模式後,可以下cd /rc指令進入rc子目錄中,下ls指令後可看到其中有一個rc_user的檔案,這時打edit rc_user指令後,應該就會進入編輯模式,edit 是freesco內的一個簡易編輯程式,至於rc_user這個檔的內容,如下所列:
#!/bin/sh # case "$1" in boot) # Setup devices. ##
## ;; start) echo -n "Starting rc_user... " # Use the fork command on programs which normally stay # in the foreground. ##
## = ;; stop) echo -n "Stopping rc_user... " # Stop your programs. ##
## = ;; restart) rc_user stop; rc_user start ;; firewall) # $INET always represents the Internet interface. # Rules here come before standard system rules. # ipfwadm -I -i deny -P tcp -W $INET -D 0/0 22 -o ## (.....就是這個區塊......) ## ;; newip) # Execute commands when the router gets a new external IP ##
## ;; status) # Add commands that print out your service(s) status. ##
## ;; esac
請注意firewall)這一行,有#字號的為註解行,不會被linux執行,從註解當中我們就可以知道,從firewall)這一行一直到下一個;;符號之間,就是放置防火牆指令的位置,也就是說只要我們將類似範例一之類的程式,放在這個區塊中就可以了。
還有要注意的就是,freesco本身就已經內建了相關的防火牆規則,因為他原本就是一個router兼防火牆,因此我們要外加一些防火牆規則時,都要寫在這個區塊,而且最好是使用-i 指令選項,將這些外加的防火牆規則,加在整個防火牆規則之前先執行,如果這邊的區塊不寫任何規則,則freesco會依內定的防火牆規則運作,也就是我們以web介面登入freesco系統時所看到的畫面左邊,NetWork訊息內容中----- ipfwadm -I -lne -----這一區塊中的規則。各位可以看到freesco都只是針對Input的部分定義,沒有對Output的部分定義,如果我們要規劃自己的防火牆,就要用這個rc_user檔案內容下手。比如說我們要檔4662port的封包,或是一些不明的中毒封包,就是將規則建立寫好就行了。我的做法前面有說過,因為基於有問題的封包太多,所以就是採用除了允許的封包通過外,其餘的一律拒絕。
當您編輯完rc_user檔案後,記得要先將目前編輯好的檔案存檔,按下ALT+S鍵存檔,ALT+X鍵離開edit編輯程式,然後執行rc_masq restart後,就可以啟動這個新設定好的防火牆規則了。如果實驗後有問題,再重複之前的修改動作即可。
以上是我個人使用freesco的一些心得,僅提出來供網友參考,希望能對象我一樣,沒錢買高階的router,可是又要使用一些高階的功能時,這種簡易版的linux,可以說是非常棒的一種選擇。
實際例子:
其實當初我會使用freesco這套linux作為我的防火牆,純粹是個巧合,因為對於windows的不信任,以及病毒橫行,原本是用一般的windows程式作為防火牆,但是都覺得效果有限,一直到接觸linux這種系統,而且又在一些論壇上有人討論迷你版本的單磁片linux系統,就開始注意它,並且實際的加以使用。
剛開始時,資料的尋找真的是有夠困難,因為中文的文獻資料實在太少了,只好硬著頭皮看英文的文件了,我敢說,就算是我這篇FREESCO的內容,恐怕也是獨一無二的內容吧?接下來的使用都是用在單機條件下,頂多是2~3部電腦的環境,這樣的單存環境,實在很難看出freesco的優點在哪裡。直到最近2年,我們的社區大樓,因為將原本的NT伺服器電腦拿去作為監控用途,它原本是作為社區網路作為DHCP網路伺服器使用,因此管委會就拿了一部IP分享器當頭端,所以,問題從此開始,又由於我們當時的主委是大樓當中的電腦公司老闆,它們的思維都是以硬體來解決,並不會從問題的根本去著手,於是乎硬體越來越高階,可是問題卻沒有任何改進,只是三天兩頭就是網路掛掉,住戶不斷的抱怨,可是問題始終沒有改善。
由於主委的關係,我不便出面擋人財路,更何況他們是電腦公司,養了一批技術人員,我更不便出面了,這樣會讓主委跟他們的工程人員很難看的,因為我根本不是資訊相關方面的專業人士。直到委員任期屆滿,下一任的主委請我幫忙是否能解決這個問題,我當然是希望能讓網路通啊,已經忍耐網路塞車斷線等等的問題很久了,於是接下了這個任務,先捐出自己的一部舊電腦,P-200等級的+32mRAM,網路卡及軟碟機由管委會出錢。也正好讓我的freesco小試一下牛刀,在大約50部電腦上網的環境下,看看是否能穩定的提供服務。
剛開始時,在不加任何設定防火牆規則下,使用FREESCO內定的防火牆規則,看看整個freesco的表現如何?說實在的,初期的運作真的是不太順利,因為當機連連,剛開始一直都找不到原因,直到與同事研究時,才猛然想到,有沒有可能是電源的問題,經過檢查瞭解,才知道原本網路設備用的UPS已經運作很多年了,經過更換後,當機的問題終於獲得解決,住戶們都得以順利上網。可是在這個可以上網的同時,我經由freesco的log檔案中發現了一些奇怪的現象,就是同一個IP位址的連線數量多的驚人,我第一個反應就是有人中毒了!這可以解釋之前以硬體防火牆運作時,為何當機連連的原因了。由於在一秒的時間內就從一個單一IP位址發出千百筆的封包,而且都是隨機的通信port封包,礙於我們的網路環境是採取DHCP方式配發IP,也不太可能採用固定配發的方式,要找出中毒者是相當困難的。當初的主委最後竟然就是採取固定IP配發,在住戶登記同時,分配IP位址以及對住戶進行掃毒,同時還貼公告掃毒要收費200元,沒有登記配發IP位址的住戶,就沒辦法上網了,真是讓我對商人的做法無言以對......。
由於有人的電腦中毒,找出病毒源恐怕又是一件艱鉅的工程,於是我決定採取限制通信port封包的方式,設定防火牆的規則,讓一些常用的port開放,其餘的通通拒絕,於是中毒的封包再也不會干擾我們的網路了,因為它再也出不去了。而且因為將通信port關閉的關係,一些高loading的住戶就自動會自首了。最近又由於BT等P2P的軟體盛行,也造成網路不少負擔,有些住戶又會下載kuro的東西,因此基於公平原則,訂定了網路使用規範,社區網路僅可用於一般上網使用,高負載的下載行為是被禁止的,因此我們關閉了某些下載用的port,僅開放FTP功能,其他大家常用的MSN,YAHOO MESSENGER都是開放的,對於一些遊戲使用port,只要不會佔用太大的頻寬,只要住戶反映,都會予以開放,當然都是在監控當中的,如有異常就會予以關閉。
一直啟用到今天,已經一年有餘了,除了前幾天的台電電力檢修,造成斷電外,這一年來freesco都很穩定的為我們社區在運作服務中,也已經順利的渡過了兩屆管委會。
我們社區的防火牆設定範例:
還在編寫建構中.......完成後再貼出吧! 分享是進步的原動力,希望大家不要藏私,將心得多多的分享吧。
|
| 文章录入:zyydaolang 责任编辑:zyydaolang |
|
上一篇文章: 為何要用linux架設防火牆? 下一篇文章: 如何从外网用WEB网页管理coyotelinux |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |