iptables 經典設置(二)

6SYN的使用

不能關閉所有端口,也不能只指定某些端口處於打開狀態,那麼怎樣才能設置一個有效的規則,既可以允許普通用戶正常通過,又可以阻止惡意***者訪問網絡呢?

剛開始使用iptables的人可以充分利用syn標識來阻止那些未經授權的訪問。iptables只檢測數據包的報頭,事實上,除iptables以外,很多其它有用的數據包分析都是基於報頭的。比如,在進行Web衝浪時,一個請求從你的PC發送至其它地方的Web服務器上,該服務器會響應請求併發回一個數據包,同時得到你係統上的一個臨時端口。與響應請求不同的是,服務器並不關心所傳送的內容。可以利用這種特點來設置規則,讓它阻止所有沒有經過你係統授權的TCP連接:

# iptables -t filter -A INPUT -i eth0 -p tcp --syn -j DROP

 

這裏的-i指的是網卡,-p則是指協議,--syn則表示帶有syn標識設置的TCP數據包。SYN用於初始化一個TCP連接,如果自己機器上沒有運行任何服務器,別人也就不會向你發送SYN數據包。

7.有狀態的數據包的檢測

前邊的例子把每一個數據包看成是獨立的,而不是相互關聯的,依靠的是數據包的頭信息。iptables會檢查數據包的源和目的IP地址、源和目的端口、流入數據包的順序號、TCP先後順序的信息及頭標記(SYNACKFINRST等)的狀態,即它會跟蹤整個連接會話,從而使整個過濾過程是相互關聯的。

8.共享一個Internet連接

網絡地址翻譯和IP僞裝都可以實現多臺主機共享一個Internet連接,這個局域網可以是LinuxWindows系統組成的多系統局域網。假設現在有一臺機器,配有兩個網卡,其中eth0公共網卡,eth1私有網卡,即eth0被分配了一個靜態的、可路由的IP地址,而eth1被分配了一個私有的、不能路由的IP,該IP是屬於該局域網子網的。要實現上述功能,需要向natfilter表中添加一些鏈:

# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# iptables -t filter -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -t filter -A FORWARD -i eth1 -o eth0 -j ACCEPT

 

這顯示了有狀態的數據包檢測的價值。請注意,這裏是如何實現流入數據包只有在屬於一個已經存在的連接時才被允許,而所有來自局域網內流向外的數據包則都允許通過。第一條規則讓所有

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章