觀看單篇文章
舊 2005-04-08, 12:26 AM   #28
linux_xp
等級:25 | 上線時間:752小時 | 離升級還需:28小時等級:25 | 上線時間:752小時 | 升級還需:28小時等級:25 | 上線時間:752小時 | 升級還需:28小時等級:25 | 上線時間:752小時 | 升級還需:28小時
Kree
 
linux_xp 的大頭照
 
註冊日期: 2002-01-19
文章: 2,663
精華: 0
哈哈,又來到分享研究心得的時間

這次要分享的是:簡易防火牆設定

前言:
Coyote Linux 使用的防火牆是 Linux核心內建的 iptables
iptables 是一種的封包過濾式的防火牆
以使用者訂定的「規則」來過濾封包
其性能不輸給市面上一台幾十萬的硬體防火牆

規則的判斷順序,為「由上而下」,逐列逐條的來判斷

1.前面如果讓某個封包通過了,即使後面才封鎖它
那就來不及了,封包已經通過了,沒得救

2.前面如果封鎖了某個封包,後面卻又讓它通過
那這個封包,還是會通過

這兩點,是設定上需要注意的...


防火牆設定鐵則:允許特定,封鎖全部

意思就是
前面讓一些特定服務需要的封包通過
最後一條,再來個全部封鎖
仍可錯殺一萬,也絕不讓任何一條漏網之魚通過


設定範例如圖所示:
http://home.pchome.com.tw/art/linux2005/images/web/pczone/coyote/040.gif

http://home.pchome.com.tw/art/linux2005/images/web/pczone/coyote/041.gif

說明:

在這個範例裡,總共讓以下服務通過:
22 (ssh) Linux 遠端控制服務
25 (smtp) 發信 e-mail 服務,有架設e-mail server 需打開
53 (dns) 名稱伺服器服務,dns 需要 tcp / udp 兩個協定
80 (http) 網頁伺服器服務
最後一條,拒絕 (deny) 全部,封鎖全部!

激活 = 啟動 (yes 或 no),yes 生效,no 無效
源 = 封包來源
目的地 = 封包目的地

permit = 允許通過
deny = 拒絕通過 (路由器會直接丟棄封包)

internet = 表示來源為 internet (網際網路,互聯網,外部網路)
Local Network = 表示目的地為內部區網 (也就是你的伺服器啦)

edit = 編輯規則
delete = 刪除規則


什麼是 ICMP 協定:

ICMP (Internet Control Message Protocol)
網際網路控制管理協定

舉個最簡單的例子:PING ,就是 ICMP協定

ping 這個指令,常用來測試某個網站是否還存活
理論上很好用,為什麼要拒絕它通過呢?

駭客攻擊的手法,有一種叫做「阻斷服務式攻擊」

DoS (阻斷服務式攻擊):
藉由固定幾台的電腦,對某一站台連續發送ICMP封包
若該站台回應此 ICMP 封包
則有可能因為頻寬用盡,或著CPU疲於處理回應
而導致其它網站服務中斷,例如:web網頁服務中斷
此稱之為「阻斷服務式攻擊」

DDoS (廣域式阻斷服務攻擊):
散發病毒,使網路上電腦感染
並於一特定時間,或特定方法使其發作
病毒發作後的電腦,也許有幾萬台,同時對某一站台發送ICMP封包
該站台即使處理器再強,頻寬再大
也會因為無法應付,而導致其它服務中斷
此稱之為「DDoS 廣域式阻斷服務攻擊」


範例中的第一條
即防止回應ICMP封包,包括最常見的PING封包
但其實最後一條的封鎖All,亦有同樣功效

若要允許 ICMP 封包,可將規則更改為 permit (允許)
以方便從外部網路,測試內部伺服器是否仍然運作
但亦代表對於DoS攻擊,無招架之力

較高階的設定法,可以偵測流量
一開始允許ICMP
而當某一 來源IP 發送之 ICMP 封包流量異常時
則對其封鎖全部
由於是這是較高階的設定法,須寫script,此篇不做討論



http://img441.imageshack.us/img441/4310/077xt1gae960bqziu2.gif
linux_xp 目前未上線  
回覆時引用此文章