sudoを使ってると、使うたびに /var/log/messages へ
ログが吐き出されます。これでいいっちゃーいいのですが
1) sudoのログを別にとって、監査証跡にしたい
(auditでもいい気がするが)
2) 実は /var/log/messages にsudoのログが吐かれるのは生理的にウザい
というわけで、sudoのログを分離することにします。
■■ sudoのログを取る
ここを見て、このとーりにやればできます。ただし、これだけだと、 /var/log/sudo.log にsudoに関するログが出力されるのはいいのですが、 /var/log/messages の出力がなくなるわけではありません。
■■ syslog.conf でsudoのログに関する設定
前の項では、local1でsudo.logをとる設定をしました(お手本サイトではlocal3と書いてありましたが、local0からlocal7まで、あいているものなら何でもよいです)。今度は、syslog.confで
1) /var/log/messagesにlocal1のログを吐かない
2) local1のログを /var/log/sudologとして吐き出す
という設定をします。
■ visudoコマンドでログに関する記述をする
sh-3.00# visudo
### 末尾に以下を追記
Defaults syslog=local1
■ syslog.conf修正
sh-3.00# cd /etc/
sh-3.00# cp -p syslog.conf syslog.conf.orig
sh-3.00# vi syslog.conf
ここを
local7.* /var/log/boot.log
こうする
local1.* /var/log/sudolog
local7.* /var/log/boot.log
ここを
*.info;mail.none;authpriv.none;cron.none /var/log/messages
こうする
#*.info;mail.none;authpriv.none;cron.none /var/log/messages
*.info;mail.none;authpriv.none;cron.none;local1.none /var/log/messages
■■ 反映
sh-3.00# /etc/init.d/syslog restart
Shutting down kernel logger: [ OK ]
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
Starting kernel logger: [ OK ]
■■ 確認
sh-3.00$ sudo tail /var/log/sudolog
Jan 8 23:39:54 intra1 sudo: shasta : TTY=pts/1 ; PWD=/home/shasta ; USER=root ; COMMAND=/usr/bin/tail /var/log/sudolog
sh-3.00# grep sudo /var/log/messages
※ 何も出力されていないこと
以上で設定は完了です。
※ 余談ですが・・・
以前、誤って syslog.conf で
*.info;mail.none;authpriv.none;cron.none;local1.none /var/log/messages
とするべきところを
*.info;mail.none;authpriv.none;cron.none;sudo.none /var/log/messages
としてしまい、一切のsyslog(/var/log/messages)が出力されなかったことがあります。。。その他のアプリケーションでエラーログが出て「あー俺バカだなー。こんな凡ミスしてらー」と気が付くことはあっても、そもそものsyslogが出力されないと、全く気が付く術がありません。この時は、コンソールに流れるメッセージで気が付きましたが、手元にないサーバだったら、きっとハマってたかもです。。。