ファイル改竄探知ソフトtripwire。これもやはり商用製品としてもリリースされているが、オープンソースのものももちろん健在だ。
セキュリティ関連だということもあり、今回はソースからビルドすることにしよう。
ということで、SourceForge.net: Open Source TripwireRから、最新版のソースをダウンロードして、コンパイル。
tripwire-2.4.1.2-src.tar.bz2
まず、展開して./configure。
$ bzcat -d tripwire-2.4.1.2-src.tar.bz2 |tar xvf -
$ ./configure --prefix=/usr --sysconfdir=/etc/tripwire
install/install.cfgが初期設定ファイルになる。
デフォルトでは、データベースを"$prefix/lib"に収納し、sendmailを使うようになっているので修正。
TWDB="/var/lib/tripwire"
#TWMAILMETHOD=SENDMAIL
TWMAILMETHOD=SMTP
TWSMTPHOST="mail.rally.or.jp"
TWSMTPPORT=25
そして、make、make install。
$ make
$ sudo make insatall
ライセンスに同意することを求められる。
Press ENTER to view the License Agreement.
Please type "accept" to indicate your acceptance of this
license agreement. [do not accept] accept
Continue with installation? [y/n] y
サイトキーファイルパスフレーズの入力。
Enter the site keyfile passphrase:
Verify the site keyfile passphrase:
ローカルキーファイルパスフレーズの入力。
Enter the local keyfile passphrase:
Verify the local keyfile passphrase:
この後、サイトキーファイルパスフレーズを2回入力してインストール完了。
----------------------------------------------
Generating Tripwire configuration file...
----------------------------------------------
Creating signed configuration file...
Please enter your site passphrase:
Wrote configuration file: /usr/etc/tw.cfg
----------------------------------------------
Customizing default policy file...
----------------------------------------------
Creating signed policy file...
Please enter your site passphrase:
Wrote policy file: /usr/etc/tw.pol
作成される設定ファイルは、
/etc/tripwire/tw.cfg <- configurationファイル
/etc/tripwire/twcfg.txt <- configurationファイルのプレーンテキスト版
/etc/tripwire/tw.pol <- policyファイル
/etc/tripwire/twpol.txt <- policyファイルのプレーンテキスト版
まずtw.cfgで、ファイルに変更があった場合ディレクトリに関する警告を報告しないようにする。
LOOSEDIRECTORYCHECKING =false
まずデフォルトのpolicyファイルを編集。そして、暗号化する。
デフォルトのポリシーファイルはあくまでもサンプルなので、編集しないとエラーと不要な告知が多数出ることになる。
# cp /etc/tripwire/tw.pol /etc/tripwire/tw.pol.org
# vi /etc/tripwire/tw.pol
# twadmin --create-polfile -S /etc/tripwire/site.key /etc/tripwire/twpol.txt
データベースの初期化をする。
# tripwire --init
エラーが出たら再度policyファイルの見直しをして、そして整合性のチェック。
# tripwire --check
これで、tripwire自体は動作するようになった。
メールによる通知がされるように、それぞれのルールに以下を付け加えておく。
emailto = $(MAILADRESS)
そして、cronに登録。
# vi /etc/crontab
0 4 * * * root /usr/sbin/tripwire --check --email-report