Як iptables поводиться на зміну часового поясу?


1

Я сумніваюся, як iptables продовжувати змінювати інформацію в iptables коли часовий пояс змінюється. Я використовую iptables s v 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 відстежує часовий пояс.

Будь ласка, поясніть мені.

Відповіді:


4

Це не відстежує нічого. Він перетворює рядки 2013-6-6T12:0:00 і 2013-6-6T13:0:00 до сировини time_t коли ви додали правило, використовуючи часовий пояс, який ви налаштували на той час. Потім пізніше, коли ви запустите -L, вона перетворює цю мітку назад у чистий рядок, використовуючи новий поточний часовий пояс.

Інформація про часову зону, яка була неявною у вашій початковій команді, була втрачена відразу після її виконання і кожного виконання iptables -L намагається відновити початкову часову рядок, застосувавши поточний часовий пояс до time_t.


Дякуємо за відповідь, я думаю, ви, безумовно, пройшли код iptables.What я отримав форму вашої відповіді кожен раз, коли ми даємо iptables -L він покаже час, як перетворений в місцевий часовий пояс. зберігається, як ви сказали "кожне виконання iptables -L намагається відновити початкову тимчасову рядок, застосувавши поточний часовий пояс до time_t", але де цей "початковий рядок часу" підходить до коду (якщо перезавантажується, то як воно зберігається Чи є буфер, де iptables зберігає дані або будь-який файл у linux.

The time_t зберігається в ядрі. Рядки не зберігаються ніде. iptables правила не зберігаються через перезавантаження. Команду потрібно запустити знову після кожної перезавантаження, щоб повернути правило до пам'яті ядра.

Дякуємо, це означає, що кожен раз, коли ми даємо будь-який часовий діапазон, він буде зберігатися в буфері ядра і коли ми даємо iptables -L, то цей час згадується, і він змінюється на рядок відносно місцевого часового поясу. я правильний?
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.