一、iptables的規則鏈
規則鏈的作用在於對資料報進行過濾或處理,根據處理時機的不同,各種規則鏈被組織在不同的鏈中
規則鏈是防火牆規則/策略的集合
預設的五種規則鏈:
input 處理入站資料報
output 處理出站資料報
forward 處理**資料報
postrouting 在進行路由選擇後處理資料報
prerouting 在進行路由選擇前處理資料報
二、iptables的規則表
具有某一類相似用途的防火牆規則,按照不同處理時機區分到不同的規則鏈以後,被歸置到不同的表中
規則表是規則鏈的集合
預設的四個規則表
raw表:確定是否對該資料報進行狀態跟蹤
mangle表:為資料報設定標記
filter表:確定是否放行該資料報(過濾)
三、iptables的語法格式
iptables [-t 表名] 管理選項 [鏈名] [條件匹配] [-j 目標動作或跳轉]
不指定表名時,預設表示filter表
不指定鏈名時,預設表示該錶內所有鏈
除非設定規則的預設策略,否則需要指定匹配條件
四、規則內容
-a 在鏈尾追加一條新的規則
-i 在指定位置插入一條新的規則
-r 修改、替換指定位置或內容的規則
-p 設定指定鏈的預設規則
列表檢視規則
-l 列表檢視各規則資訊
-line-numbers 檢視規則資訊時顯示規則的行號
-n 以數字形式顯示ip位址、埠等資訊
-v 顯示資料報個數、位元組數等詳細資訊
清除規則
-d 刪除指定位置或內容的規則
-f 清空規則鏈內的所有規則
自定義規則鏈
-n 建立一條新的規則
-x 刪除自定義的規則鏈
五、設定匹配資料報的條件
通用條件匹配
可直接使用,不依賴於其他的條件或擴充套件模組
包括網路協議、ip位址、網路介面等匹配方式
隱含條件匹配
一般需要以特定的協議匹配作為前提
包括埠、tcp標記、icmp型別等匹配方式
顯式條件匹配
需要使用"-m 擴充套件模組"的形式明確指定匹配方式
包括多埠、mac位址、ip位址範圍、資料報狀態等匹配方式
協議匹配
使用「-p 協議名」的形式
協議名可使用在「/etc/protocols」檔案中定義的名稱
常用的協議包括tcp、udp、icmp等
位址匹配
使用「-s 源位址」、「-d 目標位址」的形式
位址可以使單個ip位址、網路位址(帶掩碼長度)
介面匹配
使用「-i 網路介面名」、「-o 網路介面名」的形式,分別對應接收、傳送資料報的網路介面(例:eth1)
埠匹配
使用「-sport 源埠」、「-dport目標埠」的形式
採用「埠1:埠2」的形式可以指定乙個範圍的埠
icmp型別匹配
使用「-icmp-type icmp」的形式
icmp型別可以使用型別字串或者對應的數值,例如echo-request、echo-reply
tcp標記匹配
使用「-tcp-flags 檢查範圍 被設定的標記」的形式
如「--tcp-flags syn,rst,ack syn」表示檢查syn、rst、ack這3個標記,只有syn為1時滿足條件
mac位址匹配
使用「-m mac」 結合 「-mac-source mac位址」的形式
多埠匹配
使用「-m multiport」 結合 「-sport 源埠列表」 或者「-dports 目標埠列表」的形式
多個埠之間使用逗號「,」分割,連續的埠也可以使用冒號「:」分割
ip位址範圍匹配
使用「-m iprange」結合「-src-range 源ip範圍」或者「-dst-range 目標ip範圍」的形式
以「-」符號連線起始ip位址、結束ip位址
資料報狀態匹配
使用「-m state」結合「-state 狀態型別」的形式
同時表示多種狀態時以逗號「,」分割
常見的資料報狀態包括:new、established、related、invalid
常見的資料報處理方式
accept:放行資料報
drop:丟棄資料報
reject:拒絕資料報
linux下iptables的使用
1.首先介紹一下指令和相關配置檔案 啟動指令 service iptables start 重啟指令 service iptables restart 關閉指令 service iptables stop 相關配置 etc sysconfig iptables 如何操作該配置呢?2.下面介紹一些指令...
linux安全 iptables的基本語法
1基本語法及引數解釋 iptables t filter a input p tcp s ip net d ip net j accept nat output udp drop mangle forward icmp reject prerouting postrouting i d f l s ...
Linux的iptables匹配包狀態
invalid意味著這個包沒有已知的流或連線與之關聯,也可能是它包含的資料或包頭有問題。established意思是包是完全有效的,而且屬於乙個已建立的連線,這個連線的兩端都已經有資料傳送。new表示包將要或已經開始建立乙個新的連線,或者是這個包和乙個還沒有在兩端都有資料傳送的連線有關。relate...