
私の では、施設を に/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エントリを削除しました