天天看點

iptables 狀态機制

       下面我們就說說我一直在上面提到的關于那個ESTABLISHED,RELATED的規則是怎麼回事,到底有

什麼用處。

       說這個東西就要簡單說一下網絡的資料通訊的方式,我們知道,網絡的通路是雙向的,也就是說一個

Client與Server之間完成資料交換需要雙方的發包與收包。在netfilter中,有幾種狀态,也就是new, 

established,related,invalid。

       當一個用戶端,在本文例一中,内網的一台機器通路外網,我們設定了規則允許他出去,但是沒有設定允許回來的規則阿,怎麼完成通路呢?這就是netfilter的 狀态機制 ,當一個lan使用者通過這個linux通路外網的時候,它發送了一個請求包,這個包的狀态是new,當外網回包的時候他的狀态就是established,是以,linux知道,哦,這個包是我的内網的一台機器發出去的應答包,他就放行了。

       而外網試圖對内發起一個新的連接配接的時候,他的狀态是new,是以linux壓根不去理會它。這就是我們為什麼要加這一句的原因。

       還有那個related,他是一個關聯狀态,什麼會用到呢?tftp,ftp都會用到,因為他們的傳輸機制決定了,它不像http通路那樣,Client_IP: port-->server:80然後server:80-->Client_IP:port,ftp使用tcp21建立連接配接,使用20端口發送資料,其中又有兩種方式,一種主動active mode,一種被動passive mode。主動模式下,client使用port指令告訴server我用哪一個端口接受資料,然後server主動發起對這個端口的請求。被動模式下,server使用port指令告訴用戶端,它用那個端口監聽,然後用戶端發起對他的資料傳輸,是以這對于一個防火牆來說就是比較麻煩的事情,因為有可能會有new狀态的資料包,但是它又是合理的請求,這個時候就用到這個related狀态了,他就是一種關聯,在linux中,有個叫 

ftp_conntrack的子產品,它能識别port指令,然後對相應的端口進行放行。

文章出處:

原文:http://wwdhks.blog.51cto.com/839773/1154032

本文轉自奇迹的少年部落格51CTO部落格,原文連結http://blog.51cto.com/raffaelexr/1710596如需轉載請自行聯系原作者

liliangchun

繼續閱讀