rsyslogd: Как предотвратить вход в файл /var/kern.log и перенаправление в другой файл?

602
Sunny

Я пытаюсь перенаправить журнал iptables в другой файл. Основываясь на моем чтении в сети, я сделал следующее:

В моем правиле iptables у меня есть такие правила:

iptables -A INPUT -s ... -j LOG --log-prefix "iptables@@" 

Затем в папке /etc/rsyslog.d я создал файл с записями:

 :msg,contains,"iptables@@" /var/log/iptables.log & ~ 

Я также попытался сделать пустую строку между двумя вышеупомянутыми строками. Я получаю записи журнала iptables, теперь идущие в файл iptables.log. Но они также идут в файл /var/log/kern.log. Я хочу подавить позже. Как мне это сделать. Я использую Ubuntu 14.04 LTS.

1
Если вы используете ** - j NFLOG --nflog-group 1 --nflog-prefix "INext-EOF" ** Вы можете перенаправить iptables через ulogd2. Вы можете направить его в текстовый файл или даже в базу данных mysql. cybernard 8 лет назад 1
Вы добавили свое правило в верхней части файла конфигурации над записью для /var/log/kern.log? cybernard 8 лет назад 1
@cybernard Спасибо. Я попробовал первое предложение как есть, и оно не сработало. Теперь он не входит ни в /var/log/kern.log, ни в указанный файл журнала. Я думаю, мне нужно установить ulogd2 и сделать некоторые другие настройки / изменения? Нужно будет прочитать, но прямая регистрация в MySQL может быть полезна. Что касается второго предложения, на какую «верхнюю часть конфигурационного файла» вы ссылаетесь? Записи, указанные выше, сделанные мной, ссылаются на отдельный файл в /etc/rsyslog.d. В этом файле нет других записей. Это предлагается [здесь] (http://askubuntu.com/questions/348439/iptables-log-file-and-how-change-it). Sunny 8 лет назад 0
Для ulog вам нужно ** stack = log1: NFLOG, base1: BASE, ifi1: IFINDEX, ip2bin1: IP2BIN, mac2str1: HWHDR, mysql1: MYSQL ** и вам необходимо установить в ulogd crendentials, db, table и т. Д. конф. И создать правильно структурированную таблицу. Больше позже. cybernard 8 лет назад 1
@cybernard А пока я просто хочу избежать дублирования журнала iptables в файле журнала ядра. Sunny 8 лет назад 0
Есть ли у вас rsyslog.conf в папке / etc, а не в папке /etc/rsyslog.d? cybernard 8 лет назад 1
Кстати, правильная структура базы данных mysql находится в этом файле ./doc/mysql-ulogd2.sql. mysql -u root -p <./ DOC / MySQL-ulogd2.sql cybernard 8 лет назад 0
@cybernard Да. У меня есть rsyslog.conf в папке / etc, а НЕ в папке /etc/rsyslog.d. Также я не трогал файл rsyslog.conf. Sunny 8 лет назад 0
Вам нужно открыть этот файл и найти запись, указывающую на ** / var / log / kern.log **. Переместите свое правило выше этого правила. cybernard 8 лет назад 1
@cybernard Я переименовал файл в /etc/rsyslog.d, связанный с отображением магической строки в имя файла. У меня есть это в алфавитном порядке перед другими файлами в этом каталоге. Это сработало. Получил подсказку от вашего предложения «Подвиньте свое правило выше этого правила». Благодарю. Я предлагаю вам опубликовать это как ответ со всеми вашими другими предложениями. Это, безусловно, будет полезно для других. Я приму его, поскольку теперь он регистрируется только в лог-файле iptables, а НЕ в kern.log. Спасибо за терпеливый ответ на все вопросы по пути. Sunny 8 лет назад 0
@cybernard Другие файлы в /etc/rsyslog.d: 20-ufw.conf и 50-default.conf. Переименование файла в 10-iptables.conf сделало это. Это было ранее 70-iptables.conf. Sunny 8 лет назад 0

0 ответов на вопрос

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