天天看點

iptables 資料包在使用者空間的狀态

Table 4-1. 資料包在使用者空間的狀态
State(狀态) Explanation(注釋)
NEW 說明這個包是我們看到的第一個包。意思就是,這是conntrack子產品看到的某個連接配接第一個包,它即将被比對了。比如,我們看到一個SYN 包,是我們所留意的連接配接的第一個包,就要比對它。第一個包也可能不是SYN包,但它仍會被認為是 狀态。這樣做有時會導緻一些問題,但對某些情況是有非常大的幫助的。例如,在我們想恢複某條從其他的防火牆丢失的連接配接時,或者某個連接配接已經逾時,但實際上并未關閉時。
ESTABLISHED 已經注意到兩個方向上的資料傳輸,而且會繼續比對這個連接配接的包。處于 狀态的連接配接是非常容易了解的。隻要發送并接到應答,連接配接就是ESTABLISHED的了。一個連接配接要從 變為 ,隻需要接到應答包即可,不管這個包是發往防火牆的,還是要由防火牆轉發的。ICMP的錯誤和重定向等資訊包也被看作是 ,隻要它們是我們所發出的資訊的應答。
RELATED 是個比較麻煩的狀态。當一個連接配接和某個已處于ESTABLISHED狀态的連接配接有關系時,就被認為是RELATED的了。換句話說,一個連接配接要想是RELATED的,首先要有一個ESTABLISHED的連接配接。這個ESTABLISHED連接配接再産生一個主連接配接之外的連接配接,這個新的連接配接就是RELATED的了,當然前提是conntrack子產品要能了解RELATED。ftp是個很好的例子,FTP-data 連接配接就是和FTP-control有RELATED的。還有其他的例子,比如,通過IRC的DCC連接配接。有了這個狀态,ICMP應答、FTP傳輸、DCC等才能穿過防火牆正常工作。注意,大部分還有一些UDP協定都依賴這個機制。這些協定是很複雜的,它們把連接配接資訊放在資料包裡,并且要求這些資訊能被正确了解。
INVALID 說明資料包不能被識别屬于哪個連接配接或沒有任何狀态。有幾個原因可以産生這種情況,比如,記憶體溢出,收到不知屬于哪個連接配接的ICMP 錯誤資訊。一般地,我們DROP這個狀态的任何東西。

繼續閱讀