
在我的中/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 條目