iptables詳解(5)iptables的icmp擴展


ICMP(Internet Control Message Protocol)Internet控制報文協議。它是TCP/IP協議簇的一個子協議,用於在IP主機路由器之間傳遞控制消息。控制消息是指網絡通不通、主機是否可達、路由是否可用等網絡本身的消息。這些控制消息雖然並不傳輸用戶數據,但是對於用戶數據的傳遞起着重要的作用。

根據應用場景的不同,icmp報文被細分為如下的各種類型

 

 從圖中可以看出 所有目標不可達的報文的type碼為3 而目標不可達又分為多種情況多種code

0網絡不可達 1 主機不可達  2 協議不可達...... 

所以type/code可以具體匹配對應的回應報文 3/1表示為主機不可達的icmp報文

type 0 code 0表示回應報文 屬於查詢類的ICMP報文 ,從大類早上分 ICMP的報文分為查詢類和錯誤類2個類別

目標不可達屬於錯誤類報文

我們發出的ping請求報文 對應的type為8 code為0

例1:想要禁止所有的icmp報文進入本機

iptables -t filter -I INPUT -p icmp -j REJECT  

--icmp

例2:別人ping不到我們 我們可以ping別人(不考慮禁ping情況)

因為type為8的類型下只有1個code為0的類型 所以我們可以省略對應的code

ptables -t filter -I INPUT -p icmp -m icmp --icmp-type 8/0 -j REJECT
iptables -t filter -I INPUT -p icmp --icmp-type 8 -j REJECT
iptables -t filter -I OUTPUT -p icmp -m icmp --icmp-type 0/0 -j REJECT
iptables -t filter -I OUTPUT -p icmp --icmp-type 0 -j REJECT

 

例3:在不知道type和code的情況下 我們可以用icmp報文的描述名稱去匹配對應類型的報文與例2的類型一樣

iptables -t filter -I INPUT -p icmp --icmp-type "echo-request" -j REJECT

  

 


免責聲明!

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



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