iptables 在時區更改時的行為如何?

iptables 在時區更改時的行為如何?

我懷疑當時區改變時 iptables 如何不斷改變 iptables 中的資訊。我正在使用 iptables sv 1.4.8

我已封鎖一個 IP,詳細資訊如下

 # date
    Thu Jun 6 12:46:42 IST 2013

#iptables -A INPUT -s 10.0.3.128 -m time --datestart 2013-6-6T12:0:00 --datestop 2013-6-6T13:0:00 -j DROP

# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all -- 10.0.3.128 anywhere TIME starting from 2013-06-06 12:00:00 until date 2013-06-06 13:00:00

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

但是在我更改時區後,以下事情會自動發生。

時區更改後 +++++++++++++++++++++++++

#date
Thu Jun 6 15:17:48 HKT 2013

# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all -- 10.0.3.128 anywhere TIME starting from 2013-06-06 14:30:00 until date 2013-06-06 15:30:00

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
#

規則中的時間值已變更。它會隨著時區的變化而改變。 iptables 追蹤時區的地方。

請解釋一下。

答案1

它不跟踪任何東西。它將字串2013-6-6T12:0:00和轉換2013-6-6T13:0:00為原始time_t當您新增規則時,請使用您當時設定的時區。然後,當您執行 時-L,它會使用新的目前時區將該時間戳記轉換回可讀字串。

初始命令中隱含的時區資訊在執行完成後立即丟失,並且每次執行都會iptables -L嘗試透過將當前時區應用於time_t.

相關內容