不要在 auth.log 中记录 cron 事件

不要在 auth.log 中记录 cron 事件

在我的中/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 auth 事件,并删除它们。然后,第二行根据您的规则进行记录,减去之前删除的行。

答案3

对我来说,这是不当行为的原因:https://languor.us/cron-pam-unix-cron-session-session-opened-close-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 条目

相关内容