タイムゾーンが変更されたときに、iptables が iptables 内の情報をどのように変更し続けるのか疑問に思います。私は iptables sv 1.4.8 を使用しています。
以下の詳細で1つの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
。