如何為Solaris服務器配置款安全的防火墻
如何為Solaris服務器配置款安全的防火墻
連接網上的服務器系統,不管是什么情況都要明確一點:網絡是不安全的。因此,雖然創建一個防火墻并不能保證系統100%安全,但卻是絕對必要的。傳統意義上的防火墻技術分為三大類,“包過濾”(Packet Filtering)、“應用代理”(Application Proxy)和“狀態檢測”(Stateful Inspection),無論一個防火墻的實現過程多么復雜,歸根結底都是在這三種技術的基礎上進行功能擴展的。
一、Solaris包過濾防火墻IPFilter簡介
IPFilter是目前比較流行的包過濾防火墻軟件,它目前擁有多種平臺的版本,安裝配置相對比較簡單。可以用它來構建功能強大的軟件防火墻,下面就其的安裝以及一些典型的配置作一下說明。IPFfilter 的作者是 Darren Reed 先生,他是一位致力于開源軟件開發的高級程序員,目前工作于 SUN 公司。IP Filter 軟件可以提供網絡地址轉換(NAT)或者防火墻服務。簡單的說就是一個軟件的防火墻,并且這個軟件是開源免費的。當前的版本是4.1.15,目前支持 FreeBSD、NetBSD、Solaris、AIX 等操作系統平臺。IPFilter是它是一個在引導時配置的可加載到內核的模塊。這使得它十分安全,因為已不能由用戶應用程序篡改。我用Solaris10 來作為實驗的平臺介紹一下IP Filter。IP Filter過濾器會執行一系列步驟。圖1說明處理包的步驟,以及過濾如何與 TCP/IP 協議棧集成在一起。
數據包在Solaris內的處理順序包括下列步驟:
1. 網絡地址轉換 (Network Address Translation, NAT) :將專用 IP 地址轉換為不同的公共地址,或者將多個專用地址的別名指定為單個公共地址。當組織具有現有的網絡并需要訪問 Internet 時,通過 NAT,該組織可解決 IP 地址用盡的問題。
2. IP 記帳 :可以分別設置輸入規則和輸出規則,從而記錄所通過的字節數。每次與規則匹配時,都會將包的字節計數添加到該規則中,并允許收集層疊統計信息。
3. 片段高速緩存檢查 :如果當前流量中的下一個包是片段,而且允許前一個包通過,則也將允許包片段通過,從而繞過狀態表和規則檢查。
4. 包狀態檢查 :如果規則中包括 keep state,則會自動傳遞或阻止指定會話中的所有包,具體取決于規則指明了 pass 還是 block。
5. 防火墻檢查 :可以分別設置輸入規則和輸出規則,確定是否允許包通過 Solaris IP 過濾器傳入內核的 TCP/IP 例程或者傳出到網絡上。
6. 組:通過分組可以按樹的形式編寫規則集。
7. 功能 :功能是指要執行的操作。可能的功能包括 block、pass、literal 和 send ICMP response。
8. 快速路由 :快速路由指示 Solaris IP 過濾器不將包傳入 UNIX IP 棧進行路由,從而導致 TTL 遞減。
9. IP 驗證 :已驗證的包僅通過防火墻循環一次來防止雙重處理。
二、學會編寫IPFfilter 規則
典型的防火墻設置有兩個網卡:一個流入,一個流出。IPFfilter讀取流入和流出數據包的報頭,將它們與規則集(Ruleset)相比較,將可接受的數據包從一個網卡轉發至另一個網卡,對被拒絕的數據包,可以丟棄或按照所定義的方式來處理。 通過向防火墻提供有關對來自某個源地址、到某個目的地或具有特定協議類型的信息包要做些什么的指令,規則控制信息包的過濾。通過使用IPFfilter系統提供的特殊命令建立這些規則,并將其添加到內核空間特定信息包過濾表內的鏈中。關于添加、去除、編輯規則的命令,一般語法如下:
action [in|out] option keyword, keyword...
參數說明:
1. 每個規則都以操作開頭。如果包與規則匹配,則 Solaris IP 過濾器將操作應用于該包。以下列表包括應用于包的常用操作。
block :阻止包通過過濾器。
pass :允許包通過過濾器。
log :記錄包但不確定是阻止包還是傳遞包。使用 ipmon 命令可查看日志。
count :將包包括在過濾器統計信息中。使用 ipfstat 命令可查看統計信息。
skip number :使過濾器跳過 number 個過濾規則。
auth :請求由驗證包信息的用戶程序執行包驗證。該程序會確定是傳遞包還是阻止包。
preauth :請求過濾器查看預先驗證的列表以確定如何處理包。
2. 操作后面的下一個單詞必須是 in 或 out。您的選擇將確定是將包過濾規則應用于傳入包還是應用于傳出包。
3. 接下來,可以從選項列表中進行選擇。如果使用多個選項,則這些選項必須采用此處顯示的順序。
log :如果規則是最后一個匹配規則,則記錄包。使用 ipmon 命令可查看日志。
quick :如果存在匹配的包,則執行包含 quick 選項的規則。所有進一步的規則檢查都將停止。
on interface-name :僅當包移入或移出指定接口時才應用規則。
dup-to interface-name:復制包并將 interface-name 上的副本向外發送到選擇指定的 IP 地址。
to interface-name :將包移動到 interface-name 上的外發隊列。