Tripwire †Tripwire最新バージョン
2004/12/10
Tripwire 2.3-47
TripwireRPM 2.3.1-20.fdr.1.2
目次 †インストール †ソースから入れようと思ったのだが、FC3等の最新OSではCライブラリが対応できないらしく導入が難しい。 ということでRPMで配られているものを使うことにした。 まず、TripwireのRPMを入手し、インストール。 wget http://download.fedora.us/fedora/fedora/2/i386/RPMS.testing/tripwire-2.3.1-20.fdr.1.2.i386.rpm rpm -ihv compat-libstdc++-8-3.3.4.2.i386.rpm rpm -ihv tripwire-2.3.1-20.fdr.1.2.i386.rpm これでインストール完了。 楽チンでいいね! SourceForgeでTripwireが入手できるようになっており、現OSでもコンパイルができるようになっていました。 これを使ってもいいですね。 wget http://jaist.dl.sourceforge.net/sourceforge/tripwire/tripwire-2.4.0.1-src.tar.bz2 bunzip2 tripwire-2.4.0.1-src.tar.bz2 tar xvf tripwire-2.4.0.1-src.tar cd tar tripwire-2.4.0.1 ./configure make make install これでインストール完了・・・と行きたかったんですけどなぜかエラー! 「install.sh」が見つからないと文句を言われる。 in -s contrib install make install とりあえずこれでインストール完了できる。
インストールの最中にsiteキーとlocalキーのパスフレーズを聞かれるので、別々のパスワードを登録しましょう。 RPMでインストールした場合、設定ファイルは"/etc/tripwire"に格納される。
コンフィグファイルの作成 †twcfg.txtの編集
コンフィグファイルへの署名 /usr/sbin/twadmin -m F -c /etc/tripwire/tw.cfg -S /etc/tripwire/site.key /etc/tripwire/twcfg.txt ポリシーファイルの作成 †twpol.txtの編集 @@section GLOBAL TWDOCS="/usr/doc/tripwire"; TWBIN="/usr/sbin"; TWPOL="/etc/tripwire"; TWDB="/var/lib/tripwire"; TWSKEY="/etc/tripwire"; TWLKEY="/etc/tripwire"; TWREPORT="/var/lib/tripwire/report"; HOSTNAME="hostname"; @@section FS SEC_CRIT = $(IgnoreNone)-SHa ; # Critical files that cannot change SEC_SUID = $(IgnoreNone)-SHa ; # Binaries with the SUID or SGID flags set SEC_BIN = $(ReadOnly) ; # Binaries that should not change SEC_CONFIG = $(Dynamic) ; # Config files that are changed infrequently but accessed often SEC_LOG = $(Growing) ; # Files that grow, but that should never change ownership SEC_INVARIANT = +tpug ; # Directories that should never change permission or ownership SIG_LOW = 33 ; # Non-critical files that are of minimal security impact SIG_MED = 66 ; # Non-critical files that are of significant security impact SIG_HI = 100 ; # Critical files that are significant points of vulnerability # Tripwire Binaries ( rulename = "Tripwire Binaries", severity = $(SIG_HI) ) { $(TWBIN)/siggen -> $(SEC_BIN) ; $(TWBIN)/tripwire -> $(SEC_BIN) ; $(TWBIN)/twadmin -> $(SEC_BIN) ; $(TWBIN)/twprint -> $(SEC_BIN) ; } ポリシーファイルへの署名 /usr/sbin/twadmin -m P -S /etc/tripwire/site.key /etc/tripwire/twpol.txt 整合性チェック †ポリシーデータベースの作成 †整合性チェックの前にポリシーデータベースの作成する。 つまり、正常値を保存しておくということである。 Tripwireでは正常値と整合性チェックとの比較を行い、違いを検出する。 /usr/sbin/tripwire -m i -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol アップデート †コンフィグのアップデート(もう一度コンフィグファイルを作り直す) /usr/sbin/twadmin -m F -c /etc/tripwire/tw.cfg -S /etc/tripwire/site.key /etc/tripwire/twcfg.txt ポリシーのアップデート /usr/sbin/tripwire -m P -S /etc/tripwire/site.key /etc/tripwire/twpol.txt ポリシーデータベースのアップデート /usr/sbin/tripwire -m u 整合性チェック †ポリシーデータベースが作成できたらいよいよ整合性チェックを行う。 /usr/sbin/tripwire -m c 結果はディスプレイに表示されるが、"/var/lib/tripwire/report"ディレクトリにも保存される。 レポートの閲覧 †保存されたレポートは暗号化されているため普通に見ることは出来ない。 以下のコマンドを使用してファイルを診ることが出来る。 /usr/sbin/twprint -m r -c tw.cfg -r "レポートファイル名" -L /etc/tripwire "hostname"-local.key よりセキュアな運用 †Tripwireでのファイル指定・コマンド指定をすべて絶対パスで記述していうることに気づいただろうか? 指定しなかった場合、誤ってカレントディレクトリのコマンドやファイルが指定されてしまうことがあるかもしれない。 セキュリティ関連ソフトを扱う場合には、このように最新の注意を払ったほうがよい。 すべての処理が正常に行えて、エラーが出なくなったようであれば、テキスト形式で保存されているコンフィグファイルやポリシーファイルは削除したほうがよい。
どのようなコンフィグが書かれていて、どのファイルに対してチェックを行っているかがわかってしまうからである。
もし、コンフィグファイルやポリシーファイルに対して変更を加えたい場合は、署名したファイルから元のファイルを復元すればよい。 /usr/sbin/twadmin -m f > twcfg.txt ポリシーファイルの復元 /usr/sbin/twadmin -m p > twpol.txt ファイルへの編集が終わったら、再びファイルへ署名し、データをアップデートすればよい。 レポートをメールで受け取る †twpol.txtに以下の内容を記述 ( rulename = "Test Policy1" emailto = test@test.jp ) ここに記述されたメールアドレスにレポートが送信される。 後はTripwireの実行オプションに"--email-report"を付け加えればよい。 cronを用いた自動処理 †基本的にRPMで導入した場合には自動的に動いてチェックをしてくれます。 cron.dailyにセットされるので、毎日チェックします。 かなりの負荷がかかるので、それほど重要でない場合にはcron.weeklyにでも移しましょう crontab -e ---------------------------------------------------- 0 5 * * 0 /usr/sbin/tripwire --check --email-report ---------------------------------------------------- これで毎週日曜日の午前5時に実行されることになる。(と思う) 参考リンク † |