一、引言
隨著計算機網絡技術的不斷發展,組網成本不斷下降,很多企業為了充分合理地利用企業內部資源,提高管理水平和效益,都在建立自己的內部信息網絡,把企業內不同區域,不同部門的各種信息資源通過網絡技術有機地結合在一起,構成企業網,以便人們共享信息資源,同時企業網通過Internet外延,使它既可享用Internet上的資源,也可通過OA系統實現遠程辦公。但是,這也給企業網帶來了嚴重的安全問題,這是企業網建設中必須認真考慮的問題。近幾年,Linux操作系統越來越受到網絡管理員的喜愛,本文即借助Linux操作系統強大的網絡功能實現企業網防火墻,可以為企業節省一筆不菲的開支。
二、防火墻
防火墻是由一個或一組網絡設備(計算機或路由器等),可用來在兩個或多個網絡間加強訪問控制。
設立防火墻的主要目的是保護一個網絡不受來自另一個網絡的攻擊。
通常,被保護的網絡屬于我們自己,或者是我們負責管理的,而所要防備的網絡則是一個外部的網絡,該網絡是不可信賴的,因為可能有人會從該網絡上對我們的網絡發起攻擊,破壞網絡安全。
對網絡的保護包括下列工作:拒絕未經授權的用戶訪問,阻止未經授權的用戶存取敏感數據,同時允許合法用戶不受妨礙地訪問網絡資源。
如果某個網絡決定設定防火墻,那么首先需要由網絡決策人員及網絡專家共同決定本網絡的安全策略(security policy),即確定那些類型的信息允許通過防火墻,那些類型的信息不允許通過防火墻。
防火墻的職責就是根據本單位的安全策略,對外部網絡與內部網絡交流的數據進行檢查,符合的予以放行,不符合的拒之門外。
在設計防火墻時,除了安全策略以外,還要確定防火墻類型和拓撲結構。一般來說,防火墻被設置在可信賴的內部網絡和不可信賴的外部網絡之間。
防火墻相當于一個控流器,可用來監視或拒絕應用層的通信業務,防火墻也可以在網絡層和傳輸層運行,在這種情況下,防火墻檢查進入和離去的報文分組的IP和TCP頭部,根據預先設計的報文分組過濾規則來拒絕或允許報文分組通過。
防火墻是用來實現一個組織機構的網絡安全措施的主要設備。在許多情況下需要采用驗證安全和增強私有性技術來加強網絡的安全或實現網絡方面的安全措施。
三、Linux防火墻的安全機制
1、包過濾技術 Linux內核可以完成對IP包的IP地址過濾和協議端口過濾,系統可以對每一個進出局域網的IP包進行檢查,并可以進行計帳,獲取IP源地址、目標地址和所用的TCP端口,根據事先設定的過濾邏輯規則,拒絕或允許IP包通過,從而實現對進入局域網的IP包實現控制。
2、代理服務器技術 代理服務器防火墻是客戶訪問Internet遠程服務器的中間者,對客戶而言是服務器,對遠程服務器而言是客戶,內部客戶程序先向代理服務器發出連接請求,通過防止數據包在用戶網絡和Internet間直接傳送,有效地屏蔽了內部網絡,增強了安全性。用Linux構建代理服務器除了Linux內核及基本網絡套裝軟件還需要額外的軟件包,可以選擇的是:SOCKS和TIS防火墻工具箱。
SOCKS代理服務器的主要部件是Socket池,內部網絡客戶程序先向代理服務器發出Socket連接請求,代理服務器根據不同的協議分配一個或多個Socket與客戶程序連接;客戶程序將Internet請求報文發送到代理服務器,代理服務器分配Socket與遠程網絡服務器連接并轉發客戶機的請求,當目的地址的計算機響應后,代理服務器又將該響應返回給客戶機。
TIS系統中有一套程序用來為用戶提供防火墻功能程序與SOCKS基本相同,采用的策略不同,SOCKS是用一個程序來處理所有的Internet事務,TIS則為不同的應用開發不同的程序,具有比SOCKS更好的安全性。
3、IP偽裝 IP偽裝是Linux核心提供的一個用于防火墻解決方案的附加功能,IP偽裝無需在服務器運行任何代理服務程序,而是采用核心重寫由內部網的機器轉發的IP包的包頭,把包的源地址(不合法IP)改為合法的IP地址,再發送出去,接收時再去掉合法IP,轉發包給內部網主機。
包過濾防火墻實現相對容易,管理、維護簡單;利用Linux核心提供的IP偽裝功能可以增強安全性;代理服務器防火墻利用額外的軟件支持,可以提供較為強大的安全功能,但實現相對困難,管理、維護起來也相對麻煩。
四、Linux防火墻系統的一種實現方案
1、防火墻實現所用工具策略 這里提出的防火墻方案主要是利用IP包過濾來實現,只需Linux內核以及基本網絡套裝軟件,例如inetd,telnet和telnetd,ftp和ftpd等。使用Linux自帶的防火墻軟件ipchains,它作為Linux核心的一部分,當核心啟動時,IPchains即啟動鏈表。用它配置的4個鏈中,有3個在Linux內核啟動時進行定義,分別是:進入鏈(Input Chains)、外出鏈(Output Chains)和轉發鏈(Forward 網絡結構示意圖Chains),另外還有一個用戶自定義的鏈(User Defined Chains)。進入鏈定義了流入包的過濾規則,外出鏈定義了流出包的過濾規則,轉發鏈定義了轉發包的過濾規則。這些鏈決定怎樣處理進入和外出的IP包,即當一個包從網卡上進來的時候,內核用進入鏈的規則決定了這個包的流向; 如果允許通過,內核決定這個包下一步發往何處,如果是發往另一臺機器,內核用轉發鏈的規則決定了這個包的流向;當一個包發送出去之前,內核用外出鏈的規則決定了這個包的流向。某個特定的鏈中的每條規則都是用來判定IP包的,如果這個包與第一條規則不匹配,則接著檢查下一條規則,當找到一條匹配的規則后,規則指定包的目標,目標可能是用戶定義的鏈或者是Accept、Deny、Reject、Return、Masq和Redirect等。

2、防火墻實現方案 此方案實現是在一臺主機上完成,主要是保護內部的局域網,認為主要的攻擊來自于Internet的訪問,而內部網絡認為是可信任的。防火墻有兩種默認策略:默認接受訪問(ACCEPT)和默認拒絕訪問(DENY)。本方案選擇默認拒絕訪問,并采用IP偽裝實現局域網主機與Internet通信。
3、防火墻的實現 防火墻主機安裝雙網卡,如圖所示網卡1
(eth0的IP為192.168.1.1)和網卡2(eth1的IP為60.23.35.
221)。
(1)設置IP偽裝:/sbin/ipchains -A forward -s
192.168.1.0/24 -i eth0 -j MASQ
(2)設置的主要過濾規則:#默認規則
/sbin/ipchains -P input DENY
/sbin/ipchains -P forward DENY
/sbin/ipchains -P output DENY
#協議過濾規則
/sbin/ipchains -a input -p TCP -j ACCEPT
允許TCP包通過。
/sbin/ipchains -a input -p UDP -j ACCEPT
允許UDP包通過。
#服務過濾規則:
/sbin/ipchains -a input -p TCP -s 0.0.0.0/0 -d
60.23.35.221/24 telnet -j REJECT
禁止Internet主機訪問防火墻計算機的Telnet服務。
/sbin/ipchains -a input -p TCP -s 0.0.0.0/0 -d
60.23.35.221/24 www -j REJECT
禁止Internet主機訪問防火墻計算機的www服務。
五、結束語
防火墻技術作為目前用來實現網絡安全的一種手段,主要是用來拒絕未經授權的用戶訪問,阻止未經授權的用戶存取敏感數據,同時允許合法用戶不受妨礙地訪問網絡資源,如果使用得當,可以在很大程度上提高網絡安全性能,但是并不能百分之百解決網絡上的信息安全問題,比如防火墻雖然能對外部網絡的攻擊進行有效的防護,但對來自內部網絡的攻擊卻無能為力。因此網絡安全僅靠防火墻是不夠的,還需要結合其他安全技術,才能更好地實現網絡安全。