
В моем случае для входа в систему /etc/rsyslog.conf
есть следующая строка :auth
/var/log/auth.log
auth,authpriv.* /var/log/auth.log
но файл переполнен журналами cron, например такими:
CRON[18620]: pam_unix(cron:session): session opened for user root by (uid=0)
CRON[18620]: pam_unix(cron:session): session closed for user root
Я хотел бы избавиться от журналов cron и записывать в этот файл только реальные события "auth". Под этим я подразумеваю, что я хочу видеть, какие пользователи вошли в систему или сделали su -
.
Как мне этого добиться?
решение1
Если злоумышленник может контролировать часть зарегистрированного сообщения, он может маскировать события, фильтруя содержимое сообщения.
Кроме того, вы можете отфильтровать сообщения из процесса CRON с помощью:
#Continue logging CRON to syslog
*.*;auth,authpriv.none -/var/log/syslog
#Filter events from the process CRON out of auth.log
:programname, isequal, "CRON" ~
auth,authpriv.* /var/log/auth.log
Если вы не хотите, чтобы регистрировались какие-либо события CRON, вы можете поместить строку фильтра первой в файле rsyslog.conf
.
решение2
Я думаю, это то, что вы ищете:
:msg, contains, "pam_unix(cron:session)" ~
auth,authpriv.* /var/log/auth.log
первая строка соответствует событиям аутентификации cron и удаляет их. Вторая строка затем регистрирует согласно вашему правилу, за вычетом ранее удаленных строк.
решение3
Для меня это было причиной плохого поведения:https://languor.us/cron-pam-unix-cron-session-session-opened-closed-user-root-uid0
как указано здесь:https://askubuntu.com/a/280255/366528 добавив эту одну строку
session [success=1 default=ignore] pam_succeed_if.so service in cron quiet use_uid
удалил эти фиктивные записи cron