iptables 常用處理動作


在iptables中,-j 參數用來指定要進行的處理動作,常用的處理動作包括:ACCEPT、REJECT、DROP、REDIRECT、MASQUERADE、LOG、DNAT、SNAT、MIRROR、QUEUE、RETURN、MARK

分別說明如下:

ACCEPT 將數據包放行,進行完此處理動作后,將不再比對其它規則,直接跳往下一個規則鏈。

REJECT 攔阻該數據包,並傳送數據包通知對方,可以傳送的數據包有幾個選擇:ICMP port-unreachable、ICMP echo-reply 或是tcp-reset(這個數據包會要求對方關閉聯機),進行完此處理動作后,將不再比對其它規則,直接 中斷過濾程序。

范例如下:

iptables -A FORWARD -p TCP --dport 22 -j REJECT --reject-with tcp-reset

DROP 丟棄包不予處理,進行完此處理動作后,將不再比對其它規則,直接中斷過濾程序。

REDIRECT 將包重新導向到另一個端口(PNAT),進行完此處理動作后,將會繼續比對其它規則。 這個功能可以用來實作通透式porxy 或用來保護 web 服務器。

例如:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080

MASQUERADE 改寫數據包來源 IP為防火牆 NIC IP,可以指定 port 對應的范圍,進行完此處理動作后,直接跳往下一個規則。這個功能與 SNAT 略有不同,當進行 IP 偽裝時,不需指定要偽裝成哪個 IP,IP 會從網卡直接讀取,當使用撥號連接時,IP 通常是由 ISP 公司的 DHCP 服務器指派的,這個時候 MASQUERADE 特別有用。

范例如下:

iptables -t nat -A POSTROUTING -p TCP -j MASQUERADE --to-ports 1024-31000

LOG 將封包相關訊息紀錄在 /var/log 中,詳細位置請查閱 /etc/syslog.conf 配置文件,進行完此處理動作后,將會繼續比對其規則。

例如:

iptables -A INPUT -p tcp -j LOG --log-prefix "INPUT packets"

SNAT 改寫封包來源 IP 為某特定 IP 或 IP 范圍,可以指定 port 對應的范圍,進行完此處理動作后,將直接跳往下一個規則(mangleostrouting)。

范例如下:

iptables -t nat -A POSTROUTING -p tcp-o eth0 -j SNAT --to-source 194.236.50.155-194.236.50.160:1024-32000

DNAT 改寫封包目的地 IP 為某特定 IP 或 IP 范圍,可以指定 port 對應的范圍,進行完此處理動作后,將會直接跳往下一個規煉(filter:input 或 filter:forward)。

范例如下:

iptables -t nat -A PREROUTING -p tcp -d 15.45.23.67 --dport 80 -j DNAT --to-destination 192.168.1.1-192.168.1.10:80-100

MIRROR 鏡像數據包,也就是將來源 IP 與目的地 IP 對調后,將數據包送回,進行完此處理動作后,將會中斷過濾程序。

QUEUE 中斷過濾程序,將數據包放入隊列,交給其它程序處理。透過自行開發的處理程序,可以進行其它應用,例如:計算聯機費.......等。

RETURN 結束在目前規則鏈中的過濾程序,返回主規則鏈繼續過濾,如果把自訂規則鏈看成是一個子程序,那么這個動作,就相當提早結束子程序並返回到主程序中。

MARK 將數據包標上某個代號,以便提供作為后續過濾的條件判斷依據,進行完此處理動作后,將會繼續比對其它規則。

范例如下:

iptables -t mangle -A PREROUTING -p tcp --dport 22 -j MARK --set-mark 2


免責聲明!

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



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