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 ログを削除し、実際の「認証」イベントのみがそのファイルに記録されるようにしたいと思います。つまり、どのユーザーがシステムにログインしたか、または を実行したかを確認したいのです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 イベントと一致し、それらを削除します。次に、2 行目は、以前に削除された行を除いて、ルールに従ってログに記録します。

答え3

私の場合、これが不正行為の原因でした。https://languor.us/cron-pam-unix-cron-session-session-opened-closed-user-root-uid0

ここに述べられている通り:https://askubuntu.com/a/280255/366528 この1行を追加する

session [success=1 default=ignore] pam_succeed_if.so service in cron quiet use_uid

ダミーのcronエントリを削除しました

関連情報