Firestarter之外的其他選擇
ufw防火牆圖形化設定介面—Gufw

2009-12-28
近來,為了封鎖火紅的Facebook社交平台的小遊戲,讓公司主管重新體會到網路管理的重要,也對防火牆這個由來已久的產品多留意了些。但由於防火牆多是文字介面,因此在Linux上進行防火牆設定,一直是件令人頭疼的事情。而本文介紹的Gufw是Ubuntu 8.04面世時一併推出之防火牆設定前端程式ufw的圖形化設定介面,應該可以有效解決這個難題。
網際網路所能提供的資料可以說相當多采多姿,也因此在短短數年之間,立即吸引眾人目光,成為工商業界最重要的武器。網際網路除了可以替公司行號帶來利益之外,對於個人使用者而言也是相當方便的資料檢索工具。現在如果在生活中發現任何新問題,許多人的第一個想法多半便是上網搜尋,藉由他人的經驗得知解決方式。如果過去這十幾、二十年來網際網路並未被發明,人類的生活恐怕不會進步到如今這種便利的程度。

但也因為人類越來越倚重網路,以往未曾注意的一些問題逐漸浮出檯面,成了網路管理者的困擾。以最近在台灣引起一波風潮的Facebook為例,這個原先設計成為社交平台的網站,現在卻成了各公司資訊管理人員優先封鎖的網站。因為員工過於沈迷Facebook中的各種小遊戲,讓公司的主管不得不做出封鎖Facebook的決定。  

對於網路稍有了解的使用者,都知道封鎖網站必須透過防火牆軟體進行。事實上,防火牆軟體除了可以限制內部網路的使用情況以外,最主要的功能是為了避免外部的惡意連線要求進入內部網路,使得公司的重要資料外洩,或是讓電腦病毒趁隙而入。如果防火牆設定正確並運作正常,基本上可以阻擋相當多的惡意連線要求,有效減少從外部網路而來的攻擊事件發生。  

防火牆軟體通常會在對外的主要路由器上執行,因為這個路由器才能在第一時間攔截所有封包,並進行分析以決定是否放行,或是阻擋該封包。目前大多數的公司行號多半會使用專用的路由器設備以進行相關的工作,但也有人為了成本或是其他因素的考量,會以電腦執行此項工作。如果決定採用的是此種方式,或許可以考慮以Ubuntu搭配內建的iptables防火牆,作為封包路由與防火牆的選擇。

ufw的誕生

Ubuntu這套目前最為火熱的Linux發行版本內建的iptables防火牆軟體,雖然在功能上十分強大,但對於Linux初學者或是不太熟悉防火牆相關知識的使用者而言,卻會是相當複雜的一套防火牆設定組合。即使是已經有多年Linux使用經驗的人,多半也會因為iptables的設定相當複雜而感到難以上手。  

有鑑於此,Ubuntu在2008年四月推出8.04版時,一併推出名為ufw的防火牆設定前端程式。全名為Uncomplicated Firewal的ufw,其實是建構在iptables上的防火牆設定介面。因為iptables在設定上必須考慮許多複雜的應用情況,所以一些進階的指令或是觀念,在相對之下顯得較為困難。  

但對於大多數人而言,一般基本設定已經足以應付大多數的使用需求,如果為了一些罕見的情況而必須學習整套iptables的設定規則,會是相當累人的一件事。

有了ufw,使用者便能直接利用ufw指令較為簡單的優點,直接設定防火牆,以便在最快的時間之內完成防火牆設定。  

只是人類畢竟天性懶惰,有了ufw還會覺得有所不足,認為純文字介面的ufw在使用上還是有些不方便,因此會有更進一步的需求,也就是採用圖形介面作為ufw的使用者操作介面。本文所要介紹的Gufw,便是一套可以用來進行ufw防火牆的圖形化設定介面。廣義而言,我們也可以說Gufw其實是一套iptables防火的圖形化使用者設定介面。畢竟ufw的底層也是使用iptables,層層相疊之下,間接提供了iptables的設定功能。

圖形化介面的防火牆設定工具—Gufw

Gufw是一套非常方便好用的Linux防火牆設定工具。使用時,Gufw允許使用者設定防火牆預設的使用政策,例如預設阻擋所有接收的封包或是開放所有封包等等。如果一個外部封包本身找不到相對應的規則可以進行處理,則防火牆便會依照預設規則決定是否接受此封包。此外,使用者也可以針對特定的軟體進行封鎖或限制,讓像是P2P這類型的軟體無法再通過網路進行傳輸。如果很明確地知道該阻擋的封包所使用的通訊埠,Gufw也能使用直接指定通訊埠的方式進行限制。  

許多已經在Linux系統上使用過防火牆軟體的系統管理者,可能都已經使用過像是Firestarter這類型的防火牆設定工具。大多數人多半都會質疑已經有了Firestarter,Gufw的開發者為什麼還需要另外研發一套新的圖形化防火牆設定介面?其主要原因在於,Firestarter在Linux系統上是利用iptables防火牆的規則與語法進行防火牆設定,所以使用者雖然可以不必完全了解iptables的相關命令與參數,但仍需要具備一些相關的常識才能正確使用Firestarter。  

但如果是使用ufw進行防火牆設定的使用者,會發現Firestarter並未直接支援ufw,所以兩者之間可能存在一些使用上的困擾。或許,將來Firestarter有可能將ufw列入支援的防火牆軟體之列,但截至目前為止,Gufw會是ufw比較主要的圖形化防火牆設定介面。  

從軟體名稱的字面上來看,很明顯地可以知道Gufw這套防火牆設定軟體與其他防火牆設定軟體的主要不同之處,在於Gufw主要針對的是Ubuntu系統上的ufw防火牆。雖然ufw是在Ubuntu Linux系統上發表的防火牆工具,但只要其他Linux發行版本有將ufw收錄至自己的軟體套件之中,一樣也能使用Gufw進行防火牆設定。因為Gufw是建構在ufw之上,而非Ubuntu,因此並沒有只適用在某些Linux發行版本的問題。只要能支援ufw,無論是何種Linux發行版本,都能直接利用Gufw設定防火牆。  

但要特別注意的是,由於Gufw是以Python加上GTK開發而成,因此使用的Linux發行版本,除了要能支援ufw之外,也要安裝Python與GTK才行。如果是僅能使用KDE視窗管理介面的Linux發行版本,可能需要另外安裝GNOME相關的程式庫才能正常執行Gufw。

▲Gufw主畫面。

安裝Gufw

在Ubuntu Linux之中安裝Gufw非常簡單,因為只需要利用系統本身所提供的APT套件管理系統即可直接安裝。開啟終端機程式,並輸入「sudo apt-get install gufw」便可以自動完成Gufw的安裝作業。

如果使用者不習慣使用APT,而是較為傾向於自己使用套件檔進行安裝的話,也可以先下載Gufw的套件檔,再開啟終端機程式並輸入「sudo dpkg –i gufw_9.04.2-all.deb」指令,便能自行安裝,毋須透過套件管理系統的方式。無論採用何種安裝方式,都能很快地完成作業,並在最短的時間內開始使用Gufw。

以Ubuntu 9.10為例,安裝Gufw之後可以在【系統】→【管理】選單中找到【Firewall configuration】的選項,點選後並輸入系統管理員密碼,即可開始進行Gufw的設定。如果是先前的Ubuntu版本,則此軟體的執行捷徑可能會在【應用程式】→【網路】之中。

▲Gufw的安裝相當容易,只需要一個指令即可完成。

實際演練

假設使用者一開始是在未啟用ufw的情況下執行Gufw,便會看到Gufw的主畫面顯示ufw防火牆的啟用狀態為未勾選的模式。勾選「已啟用」選項,並選擇預設的防火牆規則為拒絕連線或允許連線,即可開始使用ufw,此時視窗最下方的狀態欄也會顯示防火牆已啟用的訊息。而在下方的「Rules」窗格中,會看到目前已經設定的防火牆規則。由於此時尚未輸入任何防火牆規則,所以此視窗為完全空白的情況。

Gufw除了可以讓使用者設定防火牆之外,本身也有一套小型的記錄檔管理工具,可以隨時記錄防火牆的使用狀況。無論是防火牆的啟用與停止,或是預設規則的變更,從內建的記錄檔檢視工具中都能看到詳細的資訊。記錄檔功能除了可以記錄Gufw本身的動作歷程之外,也能同時記錄ufw的動作。但是ufw的記錄檔功能預設並未開啟,必須手動啟用才行。

▲Gufw本身也有記錄功能。

按下主畫面的〔加入〕按鈕後,即可進入Gufw的規則新增畫面。使用Gufw設定防火牆規則時,可以經由三個主要方式進行新增,即畫面上的〔預設值〕、〔簡易〕與〔進階〕三個活頁標籤。其中〔預設值〕活頁標籤可以針對特定程式或是系統服務進行設定,並決定此程式或服務預設的存取規則為允許存取、禁止存取、拒絕存取或是有限制的存取。

以Gufw內建的程式列表而言,預設可以選用的程式幾乎都是P2P下載軟體,這可能是Gufw的作者認為大多數需要針對特定程式設定防火牆規則的情況,都是P2P下載軟體的關係。

〔簡易〕活頁標籤則是提供了最直覺的防火牆規則設定方式,也就是直接針對特定通訊埠進行存取限制的方法。在此畫面中,一樣可以先選擇規則的運作方式,即允許連線、拒絕連線等不同的處理方式,再選擇此規則所要監控的通訊協定。

Gufw支援TCP與UDP兩種不同通訊協定的設定方式,如果有需要,也可以直接設定為「Both」,讓此規則同時套用至TCP/UDP兩種通訊協定上。畫面上最後的空白欄位即為通訊埠編號,可以是0至65535,但一次只能指定一個通訊埠編號,無法在此畫面中同時針對兩個以上的通訊埠進行連線限制。

▲Gufw的規則設定畫面主要有三種不同的設定方式。

至於〔進階〕活頁標籤,則是相對較為複雜的設定方式。說是相對複雜,其實只是在Gufw程式中屬於較為進階的設定方式而已。若是與iptables或是其他防火牆的設定過程互相比較,Gufw的進階設定畫面其實也提供了操作上相當容易進行的設定方式。此畫面中一樣可以決定套用規則的處理方式,也能設定使用的通訊協定。

除此之外,此畫面與〔簡易〕模式最大的不同,在於〔進階〕畫面可以針對特定的來源或目的主機與通訊埠編號進行設定。也就是說,如果要阻擋某一部來源主機的連線,或是特定目的主機的連線,都能直接在此畫面中進行設定。

設定好所有規則後,按下〔關閉〕按鈕回到Gufw的主畫面,即可看到剛才所設定的防火牆規則全數顯示在畫面上的規則清單中。如果要修改規則,只要選擇該規則,再按下〔移除〕按鈕即可。規則清單中會使用較為容易理解的方式顯示規則內容,所以在查看防火牆規則時可以較快地了解目前防火牆的運作情況。

如果想了解Gufw設定過後,ufw會如何在系統中進行防火牆的設定,可以開啟終端機畫面,並輸入「sudo ufw status」指令進行查詢。理論上,此時看到的規則清單應該會與Gufw的規則列表中所顯示的相同,並不會有任何差異。

▲規則設定完成後回到主畫面,即可看到剛才所新增的規則已經全數顯示在規則列表中。

但如果在畫面上看到執行「sudo ufw status」的結果為「inactive」,表示ufw目前並未運作,也就是在Gufw的主畫面中,並未在啟用狀態中開啟此防火牆的關係。

如果想要更了解防火牆的運作原理,也可以在終端機畫面中輸入「sudo iptables -L」,查詢目前防火牆規則在Gufw與ufw的合作之下會以何種方式呈現。如果可以理解此處所顯示的規則內容,雖然過程可能會辛苦一些,但相信會對於iptables防火牆會有更深一層的了解。

結語

一般人聽到防火牆設定,總會覺得那是相當複雜的技術。事實上,防火牆的設定語法雖然各家廠商都不相同,但基本原理是一致的。最重要的其實不在於防火牆軟體的語法,而是設定防火牆的系統管理員要對自己設下的規則十分清楚,才不會設定出前後矛盾或是有違公司政策的防火牆規則。如果擔心純文字模式的防火牆設定命令不易上手,容易造成設定防火牆設定時的問題,便可以考慮使用Gufw這套防火牆設定的圖形介面軟體。有了易於上手的操作介面,再搭配對於網路相關知識的充分了解,相信使用Ubuntu加上iptables/ufw等防火牆軟體的整合,便能夠在最短的時間內完成防火牆的設定,以便將各種惡意的連線要求阻擋在外,避免傷害到內部網路的電腦或儲存於其中的資料。

或許有些人會認為只要學會iptables便已足夠應付所有的防火牆設定需求,但畢竟更加簡便的操作介面一直是人類在使用電腦時的努力目標,所以會出現iptables、ufw、Gufw這樣的演變過程,也就顯得相當正常了。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!