iptables 常用處理動作

2022-06-30 23:21:15 字數 2154 閱讀 2797

在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

時間常用處理

以下的毫秒都採用最大997,而不是999 因為sql server的精度為3毫秒 本月的天數 intdaysinmonth datetime.daysinmonth datetime.now.year,datetime.now.month 本年的天數 是否是閏年 intdaysinyear date...

字元常用處理

字串.charcodeat 字串索引 可以把字串的單個字元,轉變成字元編碼 string.fromcharcode 字元編碼 可以把乙個或多個字元編碼 轉變成字串。str cc愛tt charcodeat 能把字串轉換為字元編碼 console.log str.charcodeat 0 數字代表字串...

虛擬鍵盤常用處理

1.1 完成輸入後關閉鍵盤 比方說,輸入 name後要實現鍵盤的 done,就要呼叫下面的函式 ibaction textfielddoneediting id sender 與此同時,必須將兩個 textfield連線到這個函式,並且使用的是 did end on exit。1.2觸控背景關閉鍵盤...