iptables----sport、dport解釋


以前一直對iptables的sport、dport不清楚,所以這里記錄一下。

(1)清理防火牆:

iptables -F iptables -X iptables -Z

(2)iptables命令選項輸入順序:

iptables -t 表名 <-A/I/D/R> 規則鏈名 [規則號] <-i/o 網卡名> -p 協議名 <-s 源IP/源子網> --sport 源端口 <-d 目標IP/目標子網> --dport 目標端口 -j 動作

表名包括:

  • raw:高級功能,如:網址過濾。
  • mangle:數據包修改(QOS),用於實現服務質量。
  • net:地址轉換,用於網關路由器。
  • filter:包過濾,用於防火牆規則。

規則鏈名包括:

  • INPUT鏈:處理輸入數據包。
  • OUTPUT鏈:處理輸出數據包。
  • PORWARD鏈:處理轉發數據包。
  • PREROUTING鏈:用於目標地址轉換(DNAT),路由前。
  • POSTOUTING鏈:用於源地址轉換(SNAT),路由后。
  •  

動作包括:

  • accept:接收數據包。
  • DROP:丟棄數據包。
  • REDIRECT:重定向、映射、透明代理。
  • SNAT:源地址轉換。
  • DNAT:目標地址轉換。
  • MASQUERADE:IP偽裝(NAT),用於ADSL。
  • LOG:日志記錄。

iptables里面的dport和sport

首先先來翻譯一下dport和sport的意思:

dport:目的端口 
sport:來源端口 
初學iptables比較容易迷糊,但是我盡量用通俗的語言給你講解。

dport 和sport字面意思來說很好理解,一個是數據要到達的目的端口,一個是數據來源的端口。

但是在使用的時候要分具體情況來對待,這個具體情況就是你的數據包的流動行為方式。(INPUT還是OUTPUT)

比如你的例子:/sbin/iptables -A INPUT -p tcp –dport 80 -j ACCEPT 
注意里面的INPUT參數,這個代表你的這條數據包的進行的 “進入” 操作! 
那么你的這條數據包可以這么描述: 
1.這是一條從外部進入內部本地服務器的數據。 
2.數據包的目的(dport)地址是80,就是要訪問我本地的80端口。 
3.允許以上的數據行為通過。 
總和:允許外部數據訪問我的本地服務器80端口。

再看第2條列子:/sbin/iptables -A INPUT -p tcp –sport 80 -j ACCEPT 
1.這是一條從外部進入內部本地服務器的數據。 
2.數據包的來源端口是(sport)80,就是對方的數據包是80端口發送過來的。 
3.允許以上數據行為。 
總結:允許外部的來自80端口的數據訪問我的本地服務器。

input方式總結: dport指本地,sport指外部。

如果你的數據包是(OUTPUT)行為,那么就是另外一種理解方式: 
比如: 
/sbin/iptables -A OUTPUT -p tcp –dport 80 -j ACCEPT 
1.這是一條從內部出去的數據。 
2.出去的目的(dport)端口是80。 
3.允許以上數據行為。

output行為總結:dport只外部,sport指本地。

 

推薦博客:

http://www.zsythink.net/archives/1199


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM