2007年12月01日(土)
Mac OS XにLogSentryを入れた際のメモ [Mac&あぽー]
Mac OS X Serverでログを定期的にチェックする必要があって適当なソフトがないか探してみたところ,LogSentry(旧称Logcheck)なるツールが見つかったのでゴニョゴニョと入れてみました。ログ監視ツールには他にもLogwatchやswatchといったソフトも有名なようですが,リアルタイムでの監視は不要なのでswatchはとりあえず除外し,あとは気分の問題でLogsentyを選んだ次第(ログのフィルタリングの設定がしやすそうだったからという理由^ ^;)。Mac環境下でのLogSentryの設定方法をまとめたページが(日本語では)あまり見つからなかったので,簡単にメモっておきます。なお,検証はMac OS X Server 10.4でしか行っていないのであしからず〜(10.5でも動くと思うけどね)。
1. XcodeToolsが入っていない場合は,予めインストールしておく(gccのコンパイラがないと後述するMacPortが動かないため)。XcodeToolsはOSのインストールCDに入っています
2. パッケージ管理システム (オープンソースソフトウェアのダウンローダ&インストーラ)“MacPort”をここからダウンロードし,ターゲットマシンにインストールする。いやー,MacPortは実に便利なツールです。オープンソースのソフトをコンパイルからインストールまでコマンド一発でやってくれるからねー。ただ,網羅されていないソフトもあるので,そのあたりは適宜使い分けるということで〜
3. 環境変数設定ファイルにMacPortのパスを通しておく
【bashの例】 $ vi ~/.bash_profile export PATH=~/bin:/opt/local/bin:/opt/local/sbin/:$PATH 《保存:shift+z+z》
4. MacPort本体のソフトウェア・アップデートをかける
$ sudo port -d selfupdate
5. ダウンロード可能なソフトウェアリストを更新する
$ sudo port -d sync
6. “LogSentry”をインストールする
$ sudo port install logsentry
7. 設定ファイル兼実行ファイル(/opt/local/bin/logcheck.sh)を開き,ログチェックに必要な設定を行う
$ sudo vi /opt/local/bin/logcheck.sh 【変更箇所】 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/ucb:/usr/local/bin ↓ PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/ucb:/usr/local/bin:/opt/local/bin SYSADMIN=root ↓ SYSADMIN=<自分のメールアドレス> LOGTAIL=/usr/local/bin/logtail ↓ LOGTAIL=/opt/local/bin/logtail TMPDIR=/usr/local/etc/tmp ↓ TMPDIR=/tmp HACKING_FILE=/usr/local/etc/logcheck.hacking ↓ HACKING_FILE=/opt/local/etc/logsentry/logcheck.hacking VIOLATIONS_FILE=/usr/local/etc/logcheck.violations ↓ VIOLATIONS_FILE=/opt/local/etc/logsentry/logcheck.violations VIOLATIONS_IGNORE_FILE=/usr/local/etc/logcheck.violations.ignore ↓ VIOLATIONS_IGNORE_FILE=/opt/local/etc/logsentry/logcheck.violations.ignore IGNORE_FILE=/usr/local/etc/logcheck.ignore ↓ IGNORE_FILE=/opt/local/etc/logsentry/logcheck.ignore # Generic and Linux Slackware 3.x $LOGTAIL /var/log/messages > $TMPDIR/check.$$ ↓ # Mac OS X 10.x $LOGTAIL /var/log/secure.log > $TMPDIR/check.$$ # Generic and Linux Slackware 3.x #$LOGTAIL /var/log/messages > $TMPDIR/check.$$ 《保存:shift+z+z》
8. logcheck.shをroot権限で動かし,指定した宛先に監視結果が送信されることを確認する
※事前にターゲットマシン上でMTA(Mac OS X ServerだとPostfix)を動かしておく。なお,ログチェッカが動作すると,/var/log/secure.log.offset というファイルが生成されるので,こちらも確認する
$ su $ /opt/local/bin/logcheck.sh
9. 適当な間隔(1日1回とか)でログチェック(logcheck.sh)が動くようにcronを設定する。コマンドラインで設定するのが面倒な場合は,“CronniX”というGUIフロントエンドを使うのも手。なお,実行スケジュールはユーザではなくシステムのcrontabに設定すること
大した設定は行っていないのだけど,標準ではMac OS Xのログファイル(secure.log)をチェックするようになっていないので,そのあたりは変更しないといけないみたい。また,MacPort経由でLogSentryを入れると/opt/local/以下にインストールされるため,フィルタリングのキーワードを記述したファイル(logcheck.*)のパスも修正する必要あり。とりあえずこれで私の環境下では一通り動くようになったものの,セキュリティ上あまり重要ではない情報もフィルタされて通知されるので,フィルタリング対象のキーワードも別途絞り込むかな。
※At your own riskでよろしゅうです〜。
Posted by 神海 螢 / コウミ ケイ at 2007年12月01日(土) 15時09分 コメント ( 0 )