不要在 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 條目

相關內容