Linux讓486成為內部網防火牆(轉)

BSDLite發表於2007-08-12
Linux讓486成為內部網防火牆(轉)[@more@]應用原理
在Linux系統裡,如果網路上的某臺機器連線到了Internet上,那麼可以配置網路上的其它系統透過這個連線訪問Internet。使用這種方式,僅僅透過一個IP地址,幾個不同的系統就可以同時連線到Internet上。這種方法稱為IP偽裝。

在Linux上的IP偽裝是用ipchains防火牆工具實現的。實際上,配置防火牆也就是配置IP偽裝。目前的IP偽裝和ipchains防火牆一樣,支援所有通用的網路服務,如Web瀏覽、telnet、ping和gopher。

在Linux系統上實現的IP偽裝,具有Internet地址的那臺機器同時也作為區域網上的防火牆和閘道器。本地的機器使用防火牆的Internet地址連線到Internet上。實現了IP偽裝的防火牆有時也被稱為MASQ gates。使用IP偽裝,連線到Internet的系統(防火牆)可監聽到來自本地網路上主機的Internet請求。接到請求後,它把發出請求的本地主機上的IP地址替換為防火牆Internet上的IP地址,然後將這些請求傳送到Internet上,就如同自己的請求一樣。來自Internet上的響應會送到防火牆系統上。防火牆所接收到的響應是透過自己的Internet地址來定位的。防火牆接著判斷該響應對應於本地系統上的哪一個請求,然後它刪除該響應的IP地址並透過本地網將其傳送給本地主機。對本地機器來說,連線是透明的,就如同直接連線到Internet上一樣。

防火牆的實現
1. 硬體配置
一臺舊的AST 486DX/66的計算機,有8M記憶體和500M的硬碟,裝有兩塊網路卡,分別接到內部區域網和主幹網,同時主幹網透過一個路由器連到中國地震局和Internet。
2.安裝Linux系統
先對Linux系統來一次的安裝(我使用的版本是Redhat 6.0,所有例項都基於該版本)。因為所裝的元件越少,系統的後門、安全漏洞就越少,所以只裝一個最小的系統就夠了。選擇一個穩定的核心,本例使用Linux 2.2.5-15 kernel。
Linux核心包括對防火牆的支援,其中實現防火牆的工具稱為ipchains。我們可以利用這個工具實現IP偽裝和代理。在使用ipchains之前,需要將它編譯成為核心的一部分。Redhat 6.0已經實現了這一部分。
3.配置兩塊網路卡
由於AST 486DX/66機器中只有EISA、ISA擴充套件槽,因此專門到市場上購得兩塊3C509(10M)乙太網卡。透過該網路卡的配置軟體(3c5x9cfg.exe)進行中斷號和I/O地址的設定。注意不要與機器內已佔用地址發生衝突。
4. 配置網路地址
我們將eth0的IP地址配置為210.72.114.141(連線主幹網的有效IP地址),eth1的IP地址配置為10.3.15.2(連線內部網的IP地址)。

為了能在啟動時進行網路配置,我在/etc/sysconfig/network-scripts 目錄中加入了ifcfg-eth0和ifcfg-eth1兩個檔案(具體內容略)。這兩個檔案在啟動時由系統讀取,配置網路和路由表。
5. 測試
用ifconfig 和route對系統進行測試,具體測試過程略。

安裝IP MASQ gates
要實現IP偽裝,需要用ipchains來指定轉發規則。在開始之前,要開啟核心的IP forwarding,使系統能夠轉發所有要發出的資料,再配好路由表,保證內部網和外部網之間暢通無阻了,在我們控制任意之下才能任意訪問。

實現方法:在/etc/rc.d/目錄下建立一個script,叫作ipchains.rules(執行#chmod u+x ipchains.rules確保為可執行檔案,具體內容略)。然後加一行/etc/rc.d/ipchains.rules到/etc/rc.d/rc.local中,以確保每次機器重新啟動後即執行所設定的各項防火牆規則。這樣基於ipchains和IP masquerading的包過濾防火牆就建立起來了。

安全事項
上面的設定啟動了一個基本的防火牆系統,禁止IP欺騙、廣播包,但建立一個完整的防火牆系統,仍然要注意下面四點。

1.設定/etc/inetd.conf,禁止所有不需要的服務,像所有的R命令、finger、talk等。一般而言,僅保留ftp、telnet服務,便於內部維護用途。同時設定/etc/hosts.allow和/etc/hosts.deny,僅允許內部某些管理使用者可以telnet/ftp到該防火牆。當然,更安全的辦法是禁止所有的inetd服務。例如對於ftp、telnet,我們可以安裝SSH,用SSH/scp代替telnet和ftp。

2.啟用影子口令(shadow password),使遠端使用者獲得根密碼更為困難。

3.執行ntsysv檢查,看是否啟動了不需要的後臺程式。

4.建立儘可能少的使用者賬號,不斷升級有安全漏洞的軟體包。

應用體會
我局利用Redhat 版的Linux作業系統,在AST 486計算機上建立起來的包過濾防火牆系統,有效地利用了硬體資源,使得建立在Windows NT Server 4.0系統上的省局內部區域網系統平滑地接入到江西省地震資訊網路平臺上。在使用者上網不受影響的前提下,有效地保護了內部網路系統的安全。同時,還發揮了衛星通訊通道的作用,為地震資訊的快速傳遞起了很好的作用。

目前,不少單位和家庭都有淘汰下來的486或586(奔騰一代)計算機。雖然這些計算機已經不適合日益複雜的桌面應用,但是透過安裝Linux系統卻能搭建一個功能不錯的防火牆,足以負擔2M以下的Internet接入。如果系統硬體資源允許的話,還可以透過配置透明代理服務來實現Internet緩衝功能,從而節省Internet頻寬資源,提高上網效率。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-948679/,如需轉載,請註明出處,否則將追究法律責任。

相關文章