在 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 -
.
我怎样才能做到这一点?
我相信这就是你要找的:
: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
.