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

Mar*_*ter 7 cron logs rsyslog

在 my 中/etc/rsyslog.conf,我有以下行可以将auth设施登录到/var/log/auth.log

auth,authpriv.*           /var/log/auth.log
Run Code Online (Sandbox Code Playgroud)

但是该文件充斥着 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
Run Code Online (Sandbox Code Playgroud)

我想摆脱 cron 日志,并且只有真正的“身份验证”事件被记录到该文件中。我的意思是,我想查看哪些用户已登录系统,或创建了su -.

我怎样才能做到这一点?

Rob*_*yek 6

我相信这就是你要找的:

:msg, contains, "pam_unix(cron:session)" ~
auth,authpriv.* /var/log/auth.log
Run Code Online (Sandbox Code Playgroud)

第一行匹配 cron auth 事件,并删除它们。然后第二行根据您的规则记录,减去先前删除的行。


小智 6

如果攻击者可以控制记录的部分消息,他们就可以通过过滤消息内容来掩盖事件。

或者,您可以使用以下命令过滤掉来自进程 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
Run Code Online (Sandbox Code Playgroud)

如果您不想记录任何 CRON 事件,您可以将过滤器行放在您的rsyslog.conf.