◆張國防 陳雪麗
(海南軟件職業技術學院 海南 571400)
在企業的網絡中心機房里面最重要的設備就是服務器,服務器上存儲有企業的全部數據信息,出于對網絡安全和網絡性能的考慮,為網絡服務器提供既穩定又高效的保證是網絡運維人員關注的問題。 Linux作為一款性能良好的服務器操作系統,不僅系統性能穩定,而且是開源軟件。其核心防火墻組件性能高效、配置簡單,保證了系統的安全。在很多企業網絡中,為了追求速度和安全,Linux操作系統不僅僅是被網絡運維人員當作服務器使用,Linux既可以當作服務器,又可以當作網絡防火墻是Linux的一大亮點。Linux的防火墻的結構、配置邏輯和如何高效地配置是網絡運維人員所關注的焦點,也是必須掌握的技能。本文從Linux防火墻的高效管理配置的角度進行研究,提出使用腳本管理Linux防火墻的新方式,提高了網絡管理效率,也節省了網絡運維人員大量時間和精力,進而提高了工作效率。
Linux防火墻是由若干張表構成,在早于2.4的內核當中主要有三張表,而在2.6的內核當中增加了一張新的表,變成了四張表,分別是raw表、mangle表、nat表、filter表,各表相互獨立,專表專用。filter表功能數據包過濾,nat表功能地址轉換。而 mangle表功能數據包修改。通過修改數據包的某些字段,可以獲得更小的傳輸延遲,更大的吞吐量。而raw表示新開發的表,留作他用。這四張表里面,raw表和 mangle表還沒有被開發完善,使用度并不高,重點在nat表和filter表當中。
表是由若干條鏈構成的,其中 filter表是由三條鏈構成的,分別是INPUT鏈、OUTPUT鏈、FORWARD鏈,不同的鏈用來處理不同流入流出方向的數據流。INPUT鏈專門用來處理輸入到防火墻的數據流。而 OUTPUT鏈專門處理從防火墻出發往別的地方去的數據流,FORWARD鏈專門處理在防火墻上被轉發的數據流。也就是說,數據流從防火墻的一個接口進來,然后又從防火墻的另一個接口出去了。而鏈是由規則構成的,規則就是允許或者拒絕數據包的來去路徑,這是整個 filter表里的三條鏈。NAT表里面也有三條鏈,其中,OUTPUT鏈也是從防火墻輸出的數據流,而POSTROUTING鏈是專門做源地址轉換的,PREROUTING鏈是專門做目標地址轉換的。而在 mangle表里面出現了前面兩張表里面的所有的幾條鏈,因為mangle表是專門用來做數據包字段修改,從而實現服務質量的;而raw表主要提供一些幫助使用戶實現一些高級功能。比如說基于網址的過濾,可根據提交的網址進行一些過濾等等。
網絡中的設備種類繁多,廠家品牌雜亂。有網絡互聯設備,比如交換機、路由器。有各種平臺的服務器,比如Windows、Linux、Unix、Sun Solaris、Apple等各種操作系統的服務器。還有各種網絡安全設備,如防火墻、入侵檢測設備、入侵防護設備、網絡監控設備、日志服務器、流量監控設備等。各設備標準不很統一,功能之間又交叉重疊。許多廠家的設備為了追求市場占有率,降低管理人員的維護難度,開發了各種設備管理的圖形界面。圖形界面降低了管理人員的工作難度,可操作性強,容易上手配置,給管理帶來方便。但評價網絡性能的一個重要指標就是網絡的高吞吐量、快速響應時間和強壯性。而運行圖形界面往往占用大量寶貴的系統資源,降低了網絡響應時間,間接地拉低了網絡的吞吐量,這與網絡追求的性能指標相互矛盾。更何況使用圖形界面的設備還需要使用帶顯示器的管理主機來管理,無形中提高了維護成本。而且在網絡人員不能夠到達的區域,這種方式不能及時對網絡進行運維管理,因此在網絡維護工程師行業領域,這種圖形化管理方式逐漸被淘汰。
網絡服務器群的安全是網絡性能中最為企業所重視的,因為服務器作為企業數據的儲存池,存儲著大量數據信息,這些數據對企業非常重要。數據是企業的命脈,任何由于小部分的數據丟失都可能對企業造成不可估量的作用。而維護網絡高效安全運行又是網絡運維人員的首要任務。這使得對網絡防火墻等安全設備的高效管理顯得尤為重要。Linux作為安全高效的防火墻,使用shell腳本管理配置逐漸成為業界的共識。
使用命令寫成的 shell腳本非常簡潔,使得對防火墻的配置工作簡單化,管理員只需要按照網絡性能要求寫好腳本,提交命令就可以使防火墻的各種配置立即生效,實現了瞬間化網絡管理。而逐條命令的傳統配置方式使得管理員在配置防火墻的同時也是在調試,調試就有可能出錯,對于一些比較重要的金融網絡、銀行網絡,由于一條命令不慎可能會給用戶帶來安全隱患,會給企業造成不可估量的損失。這是企業不想看到的,也是網絡工程人員不能承擔的風險。與此相反,當使用腳本來管理網絡時,管理員在普通的腳本上使用命令編寫腳本,錯了再修改,可以反復修改,還可以在實驗室進行腳本測試,直到腳本正確無誤再到生產環境中提交。這不僅將風險降到最低,還降低了后期維護的成本,節省了人力,提高了管理人員的效率。
企業網絡為了提高效率和節約成本,對網絡中心的規劃要求往往很高,為了提高網絡服務效率,企業網絡中心的服務器往往不安裝圖形桌面環境,服務器只運行在命令行界面,這樣做的好處是服務器的資源得到了極大利用,不用使寶貴的資源白白浪費在圖形界面。并且在網絡服務中心的機房內部不需要安裝顯示器,節省了成本。在日常的服務器維護中,運維人員是在另外的房間或者相距很遠的地方遠程維護服務器。對于使用Linux作為網絡中心服務器的防火墻的來說,對其管理也是遠程進行的,因為不提供圖形運行環境,使用 shell腳本進行遠程管理就顯得特別重要。腳本只是命令字符的集合,往往幾百條命令組成的 shell腳本才幾個KB大小,使用遠程命令行工具對Linux防火墻管理配置使得管理人員可以實現安全高效的遠程辦公,實現了網絡管理的遠程化。
在如圖1所示的網絡環境中,一臺安裝了Linux操作系統的內核的主機將網絡分割成內網和外網,在Linux主機上安裝了兩塊網卡,分別連接兩個網絡。在內部網絡中的服務器有ftp服務器、web服務器和郵件服務器。為了保護內部網絡安全,對Linux主機配置了防火墻設備,為提高網絡運維效率使用 shell腳本的方法對網絡Linux主機進行配置,使其充當企業服務器網絡的防火墻設備,擔負起保護內部服務器安全的角色。

圖1 實驗網絡拓撲
實驗證明,使用shell腳本能夠遠程對網絡進行瞬間化管理,提高了網絡維護的效率,節約了維護成本。實驗所用 shell腳本如下。


Linux操作系統作為一種開源操作系統,一直以性能穩定著稱,使用腳本對netfilter模塊進行高效管理遠不止這些,還可以將腳本管理方法擴展,用于Linux的各種服務配置和性能優化當中。