Как записывать только сообщения iptables в мой /var/log/iptables.log?

Последняя минута 2016 года (в соответствии с часовым поясом UTC) будет иметь 61 секунду, поэтому в часовом поясе UTC последняя секунда 2016 года будет 23:59:60. См. Високосную секунду в Википедии.

Системный вызов time () не учитывает дополнительных секунд (это требование POSIX), и, следовательно, для приложений, которые рассчитывают дату и время на основе time () будет одна секунда, которая будет отсчитана дважды, , если система не будет игнорировать дополнительную секунду и вместо выполнения шаговой регулировки будет вносить крошечные корректировки в течение следующих нескольких часов или дней.

Плохо написанные (или просто слишком старые) приложения могут некорректно вести себя при столкновении с минутами длиной 61 секунда. Параметр -x (ссылка на статью HPE) отключает коррекцию ядра для дополнительных секунд и, таким образом, позволяет обычному протоколу NTP сглаживать выигрыш в одну секунду, используя обычные механизмы синхронизации времени. См. Пять различных способов обработки дополнительных секунд с помощью NTP для более подробного обсуждения способов сглаживания дополнительных секунд.

2
19.11.2017, 08:43
1 ответ

В примере с rsyslog.conf вы отправляете оба kern.*И :msg, startswith, "NETFILTER"в iptables.log, где kern.*уже включает сообщения iptables.

В вашем примере исправьте kern. *назначение в rsyslog.conf файлу kern.log по умолчанию:

kern.*                          -/var/log/kern.log

Поместите это в /etc/rsyslog.d/iptables.conf и перезагрузите/перезапустите rsyslog:

:msg, regex, "NETFILTER" -/var/log/iptables.log
& ~

Обратите внимание на «regex» вместо «startswith». Уточните строку регулярного выражения, если это работает.

Пожалуйста, примите любой из полученных ответов, чтобы закрыть вопрос.

2
27.01.2020, 22:34

Теги

Похожие вопросы