セキュリティ要件的に、表記を実現しないといけないことは多々有り、ネットを調べると
いろいろな方法が見つかりましたが、そもそもBashが対応してました。
特に、下記のブログが大変参考になります。
bash 4.1はヒストリーをsyslogにも記録する”SUZ-LAB AMI”(CentOS6)でも同様のことをやってみました。
必要パッケージのインストール
ソースからビルドをするので"gcc"と"make"が必要です。
# yum -y install gcc # yum -y install make
Bashソースのダウンロードと展開
いつものやつです。
# cd /usr/local/src # curl -OL http://ftp.gnu.org/gnu/bash/bash-4.2.tar.gz # tar xvzf bash-4.2.tar.gz # cd bash-4.2
"config-top.h"の修正
ダウンロード&展開したときに下記だった部分を
/* #define SYSLOG_HISTORY */ #if defined (SYSLOG_HISTORY) # define SYSLOG_FACILITY LOG_USER # define SYSLOG_LEVEL LOG_INFO #endif次のように修正します。(SYSLOG_HISTORYを有効にします。)
/* #define SYSLOG_HISTORY */ #define SYSLOG_HISTORY #if defined (SYSLOG_HISTORY) # define SYSLOG_FACILITY LOG_USER # define SYSLOG_LEVEL LOG_INFO #endif
ビルドとインストール
これも、いつものやつです。
# ./configure # make # make install
ログインシェルの変更
"/bin/bash"から"/usr/local/bin/bash"に変更しています。
# vipw root:x:0:0:root:/root:/usr/local/bin/bash ...
Syslogの確認
ログインしなおして、上記の設定を有効にし、Syslogを確認してみると、下記のように
実行コマンドに関するログが出力されていることがわかります。
# /var/log/messages ... Dec 28 11:44:42 ip-10-0-0-51 -bash: HISTORY: PID=19221 UID=0 ls Dec 28 11:44:47 ip-10-0-0-51 -bash: HISTORY: PID=19221 UID=0 less /var/log/messages ...
あとは、"Fluentd → S3 → Glacier"、... (何回言ってるんだろう...)
RPMにでもしておくか。
--------
http://www.suz-lab.com
0 コメント:
コメントを投稿