share facebook facebook2 twitter menu hatena pocket slack

2013.02.12 TUE

BashのHistoryをSyslogに出力(CentOS6)

鈴木 宏康

WRITTEN BY鈴木 宏康

セキュリティ要件において、表記を実現しないといけないことは多々有り、調査してみると
いろいろな方法が見つかりましたが、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
...

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。