【求助】請教iptables觀念



贊助商連結


chris691228
2005-06-05, 11:11 PM
各位好,小弟有幾個IPTABLES的觀念想請問一下
如果主機要開放HTTP服務
1.

管制封包是該連線的第1個封包
iptables -A INPUT -p tcp --dport 80 --syn -m state --state NEW -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
跟直接

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
這2種安全性差別在哪?謝謝

贊助商連結


linux_xp
2005-06-06, 01:31 AM
各位好,小弟有幾個IPTABLES的觀念想請問一下
如果主機要開放HTTP服務
1.

管制封包是該連線的第1個封包
iptables -A INPUT -p tcp --dport 80 --syn -m state --state NEW -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
跟直接

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
這2種安全性差別在哪?謝謝

TCP和 UDP 的差別
在於 TCP 會"保證"封包確實送達
而 UDP 是"不保證"封包是否送達
所以 UDP 的傳輸速度,會比 TCP 快,這是一般的常識

然而如果再進一步去了解的它的原理
TCP 之所以能保證封包送達,是因為它使用了「三段式交握」
1.client 端先送一個封包給 server 端,要求連線
2.當 server 端收到後,也回送一個封包,表示願意建立連線
3.然後 client 端收到後,與 server 端建立連線規則,開始 TCP 傳輸

這個1.2.3就是三段式交握的標準順序
它是由 TCP 封包檔頭資訊的旗標來控制的
藉由旗標可以辨認此 TCP 封包的用途
而第一個步驟就是送出含有 NEW 旗標的 TCP 封包,要求連線

如果 TCP 連線不是藉由這種三段式交握的標準順序方式建立
則可判斷為錯誤的連線,或是經過駭客修改過的危險封包
某些作業系統或未修正的核心,接收到錯誤旗標的TCP封包會引起當機

簡言之
如果第一個進入的TCP封包,不是 NEW 旗標的話
則可以認定為此封包必定有問題,此時就應該給予丟棄


這兩種的安全性差別?

第一種會檢查 TCP 旗標,並做紀錄
來自某個 IP的第一個連線要求,如果旗標是 NEW 才允許通過
通過後會做紀錄,往後連線視為可信任

第二種不會檢查旗標,只是單純的在擋 port 而已

chris691228
2005-06-06, 08:33 AM
感謝LINUX_XP學長詳細講解