如何用老式奔騰機和 Linux 構建防火牆

火星人 @ 2014-03-09 , reply:0


Rawn Shah
技術專家和自由撰稿人
1999年9月

內容:


ipchains 和防火牆
設置防火牆
配置防火牆
一些配置實例
應用協議
資料
關於作者


嘿,我在說您那台老舊的奔騰計算機呢!別因為老奔騰機不如現今花哨的新硬體動力十足就把它拋棄.它完全可以勝任小型商業或家庭辦公室的網路防火牆工作.ipchains 是 Linux 下的防火牆軟體,其源碼可以免費獲得,並能夠在老式奔騰機的 T-1 連網環境下工作.與其花上幾千美元從軟體提供商處購買定製的防火牆軟體,還不如試試這種最實惠的解決方案.下面,我將一步步地教您如何安裝和配置 ipchains 軟體.
老式奔騰機並不只是堵門擱腳的垃圾,它們仍可用來計算!實際上,一個裝有 32MB 內存和 200-400MB 硬碟的的小機器就可以勝任小型辦公網路防火牆的任務. Linux 的緊湊版本只含有重要的系統應用程序,而沒有圖形用戶介面和用戶應用程序.安裝了緊湊版本的 Linux 之後,您就可以漂亮地把老機器變成防火牆了.

完成這些只需要一個叫 ipchains 的公開源碼的軟體包,它是由 Paul "Rusty" Russell 提供的.這個軟體具備了許多商業防火牆產品的特徵:允許自定義網路通信量的流向,及哪些訪問者可以獲准進出.

早期的 ipfwadm (IP Firewall Administration) 可以運行在 2.0.X 及更低的版本的 Linux 上.後來 ipchains 取代了 ipfwadm,且能工作在所有 2.1.x 和 2.2.x 版本的 Linux 下.隨著內核升級,它還將升級到 2.3.x 下的 netfilter 或其他更高版本.這麼頻繁更新的原因在於,防火牆的數據包過濾是基於內核本身的,因此防火牆軟體就亦步亦趨地緊隨內核變動.本文討論了 ipchains 是什麼,它能做什麼以及如何應用於不同場合.



Ipchains 和防火牆
ipchains 本質上是包過濾器.它檢查到達網路介面的 IP 包,根據事先定義好的規則進行修改,然後再轉發給其它介面.

每個 IP 包都含有報頭 (header),裡面含有該包的目的地、及如何處理等控制信息(參見下圖).需要傳送的數據則放在有效段(或稱為包體)中.通常情況下,有效段可以包含更高一級的包.例如,一個 TCP 包就總是包含於 IP 包的有效段中,該 TCP 包擁有自己的報頭和有效段.我們將會看到,ipchains 軟體可以改變 IP 報頭、TCP 報頭、UDP 報頭(未顯示)和 ICMP 報頭內的一些域值.



ipchains 的名稱來自其工作特點.它能夠創建合理過濾步驟,根據用戶定義的規則來處理包.這些步驟被"鏈接"在一起來創建包處理的完整規則體系.這個處理"鏈條"可以與具體的 IP 地址,或者網路地址相結合.如下所示,系統中可以有很多這樣的"鏈條"來處理每個進入的 IP 包:



運行 ipchains 的機器可以擁有許多網路介面,每個介面都連接在不同的網路上.任何可用的防火牆至少應有兩個獨立的介面,一個連到內部網路,另一個連到外部網路.數據包從一個介面進入,經由過濾"鏈條" 傳給另一個介面.

最簡單的情況下,ipchains 只執行三種策略:接受、和拒絕.它能接受來自指定 IP 地址或網路的所有包,否決策略丟棄來自特定地方的所有包.拒絕策略則丟棄來自指定源頭的包,並且通知該源頭其請求的連接被拒絕.

有三類基本的鏈:輸入鏈、正向鏈和輸出鏈.輸入和輸出鏈分別處理對應於進入和流出介面的包的執行策略.正向鏈直接將通信量傳送給另一機器(在其執行了輸入鏈后).這裡的"另一"機器多數情況下是路由器.ipchains 本身並不希望成為完全的路由引擎,它把包轉交給本機上的真正的軟體路由器或者另一節點上的硬體路由器.完整的ipchains引擎處理流程圖如下所示:





防火牆是可以那些能夠操縱輸入數據流和選擇可流出數據流的設備的通稱.在執行過程中,它可能會改變輸入或輸入數據流的狀態,以此隱藏機器的具體信息或防止非法入侵.

ipchains 有兩種運行方式:代理伺服器和網路地址轉換器.前者接收來自受防火牆保護的網路內部機器的數據流,使用用戶定義的規則對其進行過濾處理,然後發送給外部網路.總之,內部哪些機器可以訪問外部網路是由代理伺服器控制的,反之亦然.

當您沒有足夠的網路地址,或者不願對您的內部網路使用公共網際網路址時,可以採用網路地址轉換器 (NAT) 或是 IP 屏蔽 (Masqing) 的方法.它能把內部私有的地址轉換成合法的公共地址,即將多個內部地址映射成唯一的外部地址.這樣就不能從外部網路上直接訪問到內部網路的某個機器,從而達到保護內部機器的目的.

安裝防火牆
把一台 linux 機器配置成防火牆不是那麼容易的.您應該重新安裝穩定的 Linux 版本(即並非最新最強大的版本,可以試試 2.2.12),而不是轉變已有的 Linux 機器.在安裝過程中,最好只安裝那些最基本的系統組件.除非不得已的情況,一般不要安裝網路伺服器、NFS伺服器或者編譯程序等其他組件,甚至不能運行Telnet伺服器.如果您通過網路登錄到本機,那就安裝"SSH Secure Shell" (ssh) 遠程登錄系統吧.總之需要記住,防火牆永遠不應該執行除了處理包和網路安全之外的任務.

您使用的 Linux 中可能附帶著 ipchains 軟體.如果您是偏執狂,可以在確認主要的Linux提供商已經認證其合格后,才使用該版本.

要做的事情是確認您的機器上是否已經安裝了防火牆.請查看 /etc/rc.d/init.d 目錄下有沒有類似於 packetfilter、ipchains、pifwadm、firewall 或 proxy 等名字的"開始/關閉"腳本.如果存在這樣的文件,並且有來自 /etc/rc.d/rc2.d 或 /etc/rc.d/rc3.d 的符號連接,那麼該機器上很可能已安裝了防火牆,也許它還正運行在沒有任何具體防火牆策略的環境下呢.要驗證這一點,可以敲入如下命令:



# cat /proc/sys/net/ipv4/ip_forward
如果找不到這個文件,說明防火牆尚未安裝.如果返回值為0,則意味著防火牆已經安裝但沒有運行;返回值為1表示正在運行.

您也可以下載 ipchains 的源碼來自己編譯.這麼的時候,要運行校驗和程序來確認這份源碼是可靠的.(通常採用 md5sum 命令).ipchains 網站上列出了校驗和的有效值,您校驗的結果應該和它們完全匹配.當前的 ipchains 版本是 1.3.9.

如果這些值全部無法匹配,就得查查編譯內核時是否把 Masquerading 打開了.預設情況下,這些選項在編譯內核時是打開的.但如果您決定自己來編譯 Linux 2.2.x 版本的內核,就對如下選項說 YES :

CONFIG_EXPERIMENTAL
CONFIG_MODULES
CONFIG_NET
CONFIG_FIREWALL
CONFIG_INET
CONFIG_IP_FORWARD
CONFIG_IP_MASQUERADE
CONFIG_IP_MASQUERADE_IPPORTFW
CONFIG_IP_MASQUERADE_IPAUTOFW
CONFIG_IP_MASQUERADE_ICMP
CONFIG_IP_ALWAYS_DEFRAG
CONFIG_DUMMY
CONFIG_IP_MASQUERADE_MFW


內核編譯完畢,就要把防火牆安裝為系統服務的一項.這樣系統初始化時就會啟動它.系統服務是系統啟動過程中由系統初始進程執行的,不同的系統服務有不同的初始化優先順序別.級別 0 表示系統完全卸載可以關斷電源;級別 1 則表示沒有網路支持的單用戶模式;級別 2 和 3 一般用作網路支持的多用戶模式,也就是多數機器的運行模式.還有一些其他的級別,但都不常用.

為了創建防火牆服務的開始腳本並安裝在級別 2 和 3 下,要如下所示創建 ipchains 的系統"開始/關閉"腳本文件,並把它保存在 /etc/rc.d/init.d 或 /etc/init.d/ 目錄下(保存在哪個目錄據所使用 Linux 版本而定).

#!/bin/sh
# Firewalling with ipchains, startup/shutdown script

PATH=/sbin:/bin:/usr/sbin:/usr/bin



[ -f /etc/packetfiler.rules ] || exit 0

case "$1" in
start)
echo -n "Starting ipchains firewall:"
/sbin/depmod -a
# Comment the following line if you do not intend to support
# using FTP through the firewall
/sbin/modprobe ip_masq_ftp
# Insert lines to support other application protocols here

/sbin/ipchains-restore < /etc/firewall.rules || exit 1

echo "1" > /proc/sys/net/ipv4/ip_forward

# If you do NOT use PPP, SLIP or DHCP for any of your network
# interfaces on this machine, comment the following line
echo "1" > /proc/sys/net/ipv4/ip_dynaddr

echo "."
;;
stop)
echo -n "Shutting down ipchains firewall:"

echo "0" > /proc/sys/net/ipv4/ip_forward

# Comment the following line if you do NOT use PPP, SLIP or DHCP
echo "0" > /proc/sys/net/ipv4/ip_dynaddr

/sbin/ipchains -X
/sbin/ipchains -F
/sbin/ipchains -P input ACCEPT
/sbin/ipchains -P output ACCEPT
/sbin/ipchains -P forward ACCEPT
echo "."
;;
*)
echo "Usage: /etc/rc.d/init.d/packetfilter {start|stop}"
exit 1
;;
esac

exit 0


在要從不同級別執行包過濾服務之前,您得建立符號鏈接.網路已經啟動的情況下,確認包過濾器已運行在初始級別2和3下.

# ln -s /etc/rc.d/init.d/packetfilter /etc/rc.d/rc2.d/S09packetfilter
# ln -s /etc/rc.d/init.d/packetfilter /etc/rc.d/rc3.d/S09packetfilter
以上兩條命令建立了符號鏈接,從而保證在 Red Hat Linux 的網路有效前啟動包過濾器.某種網路服務的名稱應該類似於 SXXnetwork,其中的 "XX" 指定了該服務的啟動次序.請選擇一個其他啟動腳本內未指定的,比所有網路服務啟動次序號都低的"XX".上面的例子中,網路啟動腳本命名為 "S10network" .



類似的,在網路服務關閉后也應該停止包過濾器的符號連接.該例子中,網路介面關閉位於腳本 K90network,因此包過濾器腳本鏈接為 K91packetfilter.

# ln -s /etc/rc.d/init.d/packetfilter /etc/rc.d/rc0.d/K91packetfilter
# ln -s /etc/rc.d/init.d/packetfilter /etc/rc.d/rc1.d/K91packetfilter
,在 Red Hat 系統中,您務必確保文件 /etc/sysconfig/network 中含有下列條目:

FORWARD_IPV4="yes"
一旦重新啟動機器,包過濾器就啟動了.到目前為止,您還沒有制定任何過濾規則.下面我們將繼續這個規則設置步驟.

配置防火牆
如果您用了防火牆,就可以使用公共網際網路上無效的某段網址,或者用 NAT .這樣,主幹網的主要路由器將視那些來自私人地址的包為非法而予以丟棄.這些段址已經定義並在文獻 RFC 1918 列舉出來(參看錶 1).這樣的段址共有三套,但對於絕大多數公司來說,192.168.0.0 就足夠了.在下面的例子中我們也將採用這套段址.

表 1: 分配給私有網路的 IP 地址
起始地址
結束地址
CIDR 段址前綴
地址數目

10.0.0.0
10.255.255.255
10.0.0.0/8
~ 16,000,000

172.16.0.0
172.31.255.255
172.16.0.0/12
~ 4,000,000

192.168.0.0
192.168.255.255
192.168.0.0/16
~ 65,000



您的內部網的全部機器都應該用這些給定地址範圍來標識.比如 192.168.1.22 防火牆的內部介面應佔用第一個地址 192.168.0.1.以 .0.0、.0、.255 和 .255.255 結尾的是系統保留地址,不要把他們分配給任何機器.在起始地址和結束地址範圍之內的其他 IP 地址可按個人喜好分配.

下面的例子包括四個台式機和四個伺服器.名為 stranger 的台式機禁止進入防火牆保護的內部網路,而 familiar 則可以.名為 Freedom 的伺服器位於公司內部網路,但不受防火牆保護,這對向公開的網站來說是常見的.分配給這些機器的網路地址是隨便給定的,但是它們被劃分成不同的網路地址集合 (192.168.x.x 分配給防火牆內部網, 216.19.15.x 分配給防火牆外部但仍處於公司內部的網路, 198.102.x.x 指的是公共網際網路址).



表 2: 鏈操作命令
命令
陳述

ipchains -N
創建一個新鏈

ipchains -X
刪除已有鏈

ipchains -L
列出鏈中的所有規則

ipchains -F
刪除鏈中的所有規則,但仍保留該鏈

ipchains -Z
刪除與鏈相關的統計數據

ipchains -P
設置鏈的全部策略(接受 ACCEPT, 否決 DENY, 拒絕 REJECT, 屏蔽 MASQ, 改向 REDIRECT, 返回 RETURN 等)

ipchains -M -L
列出所有使用屏蔽的鏈

ipchains -M -S
對所有使用屏蔽的鏈,根據協議不同而分配若干超時限制



表 3: 定義過濾規則的命令
命令
陳述

ipchains -A
將規則添加到鏈中

ipchains -D
根據規則在鏈中的位置,刪除該規則

ipchains -R
根據規則在鏈中的位置,用新規則取代它

ipchains -I
將新規則插入到鏈中的指定位置

ipchains -C
使用鏈中的規則來過濾 protocol-info 中的內容,從而測試該鏈



表 3 中的過濾規則命令需要指定源和目的地址、協議類型和相關的埠號、其他IP協議的標誌、以及所施行於它們的規則.這些規則條目可以逐一列出,以便或含糊或準確的描述被過濾掉的包的類型.

源地址 (-s) 和目的地址 (-d) 具有相同的格式.您可以具體指定單個主機地址或某網路的一組主機地址.前一種情況,只需要插入主機地址;后一種情況則需要指定網路地址和網路地址掩碼或比特掩碼.比特掩碼和網路掩碼的作用是一樣的,不同於網路掩碼給定四組十進位數,它從網路掩碼的左端開始計入比特數.例如,網路掩碼 255.255.255.0 等效於比特掩碼 24,255.255.224.0 等效於 19.不方便的是,您不能指定任意範圍的網路地址,比如從 192.168.1.1 到 192.168.1.133 —— 因為您無法用合適的網路掩碼來表示它們.這個軟體不得不這麼工作,因為想要使它有效地過濾任意一段網路地址實在是太困難了.



規則
陳述

-d 192.168.1.24 -j ACCEPT
接受所有發送到 192.16.1.24 (Jane) 的包

-d 192.168.0.0/255.255.224.0 -j DENY
拒絕所有試圖到達 192.168.1.0 到 192.168.31.255 範圍中某個地址的數據包,這就意味著 Bob, Fred 和 Jane 的主機都被保護起來,而 Olivia 則沒有.

-d 192.168.0.0/19 -j DENY
和上一命令相同,只是用比特掩碼來表示範圍的結束地址.


上面的例子展示了目的地址的細節(用 -d ),但和源地址的用法是相同的(只是代之以 -s ).下一個策略組件是協議類型.ipchains 支持三種常用的傳輸協議類型:TCP、UDP 和 ICMP.其他協議仍處於試用階段,這裡略過不談.

-p TCP -s 192.168.1.24 -j ACCEPT
接受所有來自 Jane (192.168.1.24) 的包

-p TCP -d 192.168.0.0/19 -j DENY
否決所有到達 Bob, Fred 和 Jane 的 TCP 包

-p TCP -d 192.168.1.24 80 -j ACCEPT
接受到達 Jane 機器80埠的所有 TCP 包

-p TCP -d 192.168.1.24 www -j ACCEPT
和上一命令類似,但用 www 來表示預設的 Web 伺服器埠.在 /etc/services 文件中定義了此埠.

-p TCP -d 192.168.1.24 0:1024 -j DENY
否決所有要到 Jane 的0到1024範圍中任何一個埠的 TCP 包.

-p TCP -d 192.168.1.24 www -j ACCEPT
接收要到 Jane 機器上 www 埠(預設情況下即80埠)的所有 TCP 包.

-p TCP -d 192.168.1.24 ! www -j DENY
D 否決要到 Jane 機器上 www 之外任何埠的 TCP 包.命令中的感嘆后(!)表示對它後面的值取非,這裡即用 ! www 來表示除了 www 之外的所有埠值.

-p TCP -d ! 192.168.1.24 www -j DENY
否決要到除了 Jane 之外的其他機器 www 埠的所有 TCP 包.注意這條命令與上一條並不相同.

-p TCP -d ! 192.168.1.24 ! www -j DENY
否決所有要到 Jane 之外的其他機器,並且非 www 埠的 TCP 包.也就是說,它允許那些到達 Jane 的 www 埠的 TCP 包.盡量不要用這樣的規則,以免引起混亂.



-p ! TCP -d 192.168.1.24 -j DENY
否決所有要到 Jane 機器上的 TCP 之外的數據包.


對於 UDP 協議,其工作情況類似.而對於支持 ping 和 traceroute 的 ICMP 協議則需要指定埠.

-p ICMP -d 192.168.1.24 0 -j ACCEPT

-p ICMP -d 192.168.1.24 8 -j ACCEPT
接受對 Jane 的 ping 包.為了讓 ping 正常工作,這兩條規則(ICMP 埠0 和 8)分開寫.

-p ICMP -d 192.168.1.24 3 -j ACCEPT
如果 Jane 機器上的用戶試圖訪問一個遠程站點,所返回的「無法到達」 ICMP 消息允許通過.訪問一些遠程機器的 telnet 或其他服務時,常有這種沒有回應的情況發生,因此通常都會使用這條規則.

-p ICMP -d 192.168.1.24 11 -j DENY
否決來自防火牆外部 traceroute 命令的數據包.


除了地址和協議信息,您還可以指定通過包的網路介面驅動程序.如果要加入考慮數據包的來源,是比較容易的,在指定過濾規則應用的網路埠時也很有用.

-i eth0 -s 192.168.1.24 -j ACCEPT
使用第一塊乙太網卡 (eth0) 來接受所有來自 Jane 的數據包.

-i eth -s 192.168.1.24 -j ACCEPT
可以用任何一塊網卡 (eth ) 來接受來自 Jane 的數據包.

-i ppp0 -p TCP -s 198.102.68.2 1025:65535 -j ACCEPT
通過 ppp 介面,來接受所有來自 familiar (198.102.68.2) 1025 到 65535 埠之間的 TCP 包.


有兩種特殊的策略組件指定 TCP_SYN 標誌 (-y) 和碎片包 (-f).當 TCP 客戶端第一次試圖連接遠程 TCP 伺服器時,TCP_SYN 標誌被設置.不幸的是,黑客會利用它攻擊遠程伺服器,其做法是發送大量 TCP_SYN 消息而不真正連接伺服器,從而鎖住所有伺服器進程,使其速度變慢或使伺服器崩潰.只要為該組件指定 TCP 組件 -p,就可以阻止外部的 TCP_SYN 攻擊.

碎片包過濾規則組件是必要的,因為 IP 包常常通過不同容量的的網路連接.有時他們不得不分成一些名為碎片的更小的包以便順利通過小容量的連接通道.在 PPP 協議下用數據機連接網路時常發生這種情況.例如,乙太網可以傳送長為 1500 位元組的 IP 包,而數據機(串列線)的包通常是 256 位元組;乙太網量級的包不得不分成六份以符合數據機量級的碎片包.到達目的機器后,這些碎片包就被組合起來.因此,在 PPP 或 SLIP 協議下使用數據機連接網路時,您應該指定這個規則組件,這樣防火牆才會把包視作一體.也只有如此它才能正確辨識傳輸層協議( TCP, UDP, ICMP) 信息,從而實施其他規則.



在命令行下運行以上規則,並用 /sbin/ipchains -L 命令檢查其順序是否正確.接著還要按照"開始/關閉"腳本指定的文件名來保存這些規則(我們的例子中,該文件是 /etc/firewall.rules ).下次系統啟動時就會使用這些規則了.需要注意的是,每次您定義新規則都運行以下命令:

# /sbin/ipchains-save > /etc/firewall.rules
接下來給出一些配置實例,您可以看到如何為防火牆制定規則.

一些配置實例
這個例子是最簡單的防火牆模型,只允許位於保護範圍內的機器訪問外部網路,但禁止任何外部機器進入內部網路.您要攔截由任何介面流出的所有包,然後只讓那些具有轉換過的地址信息的包通過.

# /sbin/ipchains -P forward DENY
# /sbin/ipchains -A forward -f -i ppp0 -j MASQ
採用以上兩個規則,則在包流出之前,所有安裝了防火牆的機器(Bob,Fred,Jane 和 Olivia)都被屏蔽了.同時禁止防火牆外部的機器接觸任何內部設備.這裡並沒有涉及路由器,實際上本例中的防火牆是通過數據機建立到網際網路 PPP 連接的.

嵌入路由器的防火牆代碼並不少見.很多時候,防火牆和路由器可能位於同一機器.另一方面,利用 PPP 的數據機方案,防火牆就成為路由器,路由指令把所有非本地數據流轉發到 PPP 埠.

您可能希望防火牆的功能複雜些,例如所有保護範圍內的機器都可連到外部去,而只有指定的外部機器才能連接進來.下面的例子准許名為 familiar 的機器 (198.102.68.2) 連接到防火牆內部機器的某些指定埠 (telnet、FTP 和 WWW 等服務的公共埠).

# /sbin/ipchains -P forward DENY
# /sbin/ipchains -A forward -f -i eth0 -j MASQ
# /sbin/ipchains -A input -i eth0 -s 198.102.68.2 -j ACCEPT
# /sbin/ipchains -A output -i eth1 -s 198.102.68.2 -d 0/0 -j DENY


# /sbin/ipchains -A output -i eth1 -s 198.102.68.2 -d 0/0 telnet -j MASQ
# /sbin/ipchains -A output -i eth1 -s 198.102.68.2 -d 0/0 ftp -j MASQ
# /sbin/ipchains -A output -i eth1 -s 198.102.68.2 -d 0/0 ftp-data -j MASQ
# /sbin/ipchains -A output --i eth1 s 198.102.68.2 -d 0/0 www -j MASQ
在我們的例子中,有台名為 Freedom 的伺服器位於防火牆網路外但處於公司網路內部.這是一台任何機器都可達的公共網頁伺服器,它和互聯網上其他計算機一樣,可能遭受外部世界的攻擊和破壞.不過我們可以假定它足夠安全,並允許其連接到防火牆內部網路.這就需要添加下列規則:

# /sbin/ipchains -A input -i eth0 -s 216.19.15.32 -j ACCEPT
# /sbin/ipchains -A output -i eth1 -s 216.19.15.32 -d 0/0 -j MASQ
應用協議
有些應用要求協議包含正確的主機地址信息,否則無法工作.這些應用可能會將網路或主機地址信息嵌入到 TCP 或 UDP 包里,但包過濾器一般不深入探究這些包中的內容.

如此一來,為了過濾這些應用協議內核還需要載入另外的模塊.這些模塊包含某些協議,能夠支持 FTP、RealAudio、IRC、VDO Live、CU SeeMe 甚至某些流行的遊戲 Quake 等.

為了載入這些模塊,可以在先前的"開始/關閉"腳本中加入以下用於特殊協議的代碼行:

/sbin/modprobe ip_masq_raudio
/sbin/modprobe ip_masq_irc
/sbin/modprobe ip_masq_cuseeme
/sbin/modprobe ip_masq_vdolive
/sbin/modprobe ip_masq_quake
/sbin/modprobe ports=ip_masq_quake 26000,27000,27910
ipchains 具有十分強大的功能,可以把幾組規則一次"鏈接".當您需要面對許多內部節點,並為它們分別定義網路數據包策略時,這種建立多鏈條的能力就更加重要.這些鏈條被指派給特定的網路介面,改變介面開關的安全規則(例如網路連接接通或斷開).

ipchains 將繼續升級.隨著下一內核版本 (2.3.x 和 2.4.x) 一起發布 ipchains 新版本,名為netfilter.新版本軟體將能執行一些設計精巧的組件,例如逆向網路地址轉換 (reverse NATs),用於使一組內部網機器為某個地址進行負載平衡.



一般情況下,有效使用 ipchains 可以讓您的內部網路細節受到防火牆良好的保護.它賦予您那台"慢吞吞"的老機器以嶄新的使命,變成網路里相當有用的一員.

資料


ipchains 主頁和下載站點
Rusty Russell 的 ipchains 指南(寫得稍有些複雜)
Rusty Russell 的一些防火牆項目
"Securing Your Linux Box," Linux Gazette, 1998年11月
"Securing Linux, Part 1," in LinuxWorld 雜誌,1999年5月
"Securing Linux, Part 2," in LinuxWorld 雜誌,1999年7月

關於作者
Rawn Shah,是一名網路管理員、系統程序員、網路架構專家和網際網路服務提供商.從 1993 年起他就為十來家以英語及其他語言發行的網際網路雜誌撰寫文章.最近剛寫完名為《UNIX和Windows 2000集成的套裝工具包》(UNIX and Windows 2000 Integration Toolkit, John-Wiley &Sons,1999) 的書籍.現在他是亞利桑那州 Tucson 的一名技術專家,負責撰寫有關網路和交叉平台集成的專題文章.您可以通過 rawn@rtd.com 與他聯繫.




[火星人 via ] 如何用老式奔騰機和 Linux 構建防火牆已經有172次圍觀

http://www.coctec.com/docs/linux/show-post-56384.html