設定ファイル(twcfg.txt)

 では、設定ファイル「twcfg.txt」の中身を見てみよう。

ROOT=/usr/sbin:※1
POLFILE=/etc/tripwire/tw.pol:※2
DBFILE=/var/lib/tripwire/$(HOSTNAME).twd:※3
REPORTFILE=/var/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr:※4
SITEKEYFILE=/etc/tripwire/site.key:※5
LOCALKEYFILE=/etc/tripwire/$(HOSTNAME)-local.key:※6
EDITOR=/bin/vi:※7
LATEPROMPTING=false:※8
LOOSEDIRECTORYCHECKING =false:※9
MAILNOVIOLATIONS=true:※10
EMAILREPORTLEVEL=3:※11
REPORTLEVEL=3:※12
MAILMETHOD=SENDMAIL:※13
SYSLOGREPORTING=false:※14
MAILPROGRAM=/usr/sbin/sendmail -oi -t:※15
※1 tripwireへのパス
※2 ポリシーファイルへのパス
※3 データベースへのパス
※4 レポートのファイル名の指定
※5 サイトキーへのパス
※6 ローカルキーへのパス
※7 エディタの指定(デフォルトはvi)
※8 メモリーにパスワードが保管される時間を短くする(パスフレーズのプロンプトを遅く表示する)場合はtureにする
※9 ディレクトリへファイルが追加・削除された際に、ファイルとディレクトリの両方をレポートとして報告する。tureにするとファイル追加・削除時のディレクトリの変更を無視する。
※10 違反が無くてもリポートをメールで送信する。falseにすると違反が無い場合にはメールで送信しない。
※11 メール送信されるリポートのレベルを指定
※12 レポートのレベルを指定
※13 メールで送信するプロトコル、SMTPかSENDMAILを選択、SMTPを指定する場合には※の設定を参照
※14 データベースの初期化、整合性のチェックなどを、Syslogにuser.noticeレベルで出力する。
※15 メール送信に利用するプログラムへのパス

 なお、デフォルトのtwcfg.txtに記載されていないメール送信に関する設定項目もある。それは以下の通りだ。

SMTPHOST=(SMTPサーバアドレス)
メール送信に利用するSMTPサーバのドメイン名、またはIPアドレス(例 SMTPHOST=192.168.1.1)
SMTPPORT=(SMTPサーバポート番号)
SMTPサーバのポート番号、通常は25(例 SMTPPORT=25)

サンプルポリシーファイルを利用する

 インストール作業が完了したら、次に「ポリシーファイルを使用しているシステム環境に合わせて作成」することになるわけだが、前述したように、Tripwireをインストールすると、/etc/tripwire以下にtwpol.txtというサンプルポリシーファイルが用意されている。もちろん、名前の通りこのポリシーファイルはサンプルであり、すべてのシステムに対応しているわけではない。実際には、これを参考に新規にポリシーファイルを記述するか、改変するなどして利用するべきものである。しかし今回は、とりあえずポリシーファイルの作成は考えず、このサンプルポリシーファイルを利用してTripwireを使用してみることにしよう。

○Tripwireのデータベースの構築−データベースの初期化

 まずはTripwireデータベースの初期化を行う。以下のコマンドを入力する。

# /usr/sbin/tripwire --init(または /usr/sbin/tripwire -m i)

Please enter your local passphrase: ローカルパスフレーズを入力する
Parsing policy file: /etc/tripwire/tw.pol
Generating the database...
*** Processing Unix File System ***
### Warning: File system error.
### Filename: /usr/sbin/fixrmtab
### そのようなファイルやディレクトリはありません
### Continuing...
### Warning: File system error.
### Filename: /sbin/accton
### そのようなファイルやディレクトリはありません
### Continuing...
### Warning: File system error.
### Filename: /sbin/busybox
### そのようなファイルやディレクトリはありません
### Continuing...
### Warning: File system error.
### Filename: /sbin/busybox.anaconda
### そのようなファイルやディレクトリはありません
### Continuing...

〜省略〜

 サンプルポリシーファイルを使用してデータベースの初期化を行うと、このように、「そのようなファイルやディレクトリはありません(No such file or directory)」というエラーがたくさん出る。この状態でもデータベースの構築は完了しているが、整合性のチェックを行うと、リポートには「No such file or directory」というエラーが、これもまた大量に出力されることになる。

 これは、付属のサンプルポリシーファイルをエディタで見てみると分かるが、サンプルポリシーファイルは、RedHatLinux 7.0をインストールする際に、「everything」を選択した場合を想定して作成されている。そのため、現在使用しているシステムに存在しないファイルもチェック対象のファイルとして記述されているので、「No such file or directory」、つまりエラーとなるわけだ。逆にチェックしたい項目がコメントアウトされている場合もある。

 そこで、エラーとなるチェック対象ファイルを、サンプルポリシーファイルから外す作業が必要になる。これはポリシーファイルの該当箇所をコメントアウト、もしくは削除すればよい。

エラーログからたどってコメントアウトする方法
 まずは単純な方法だが、

# /usr/sbin/tripwire -m c | grep Filename >> error.txt

エラーをログとして出力させておき、そのログを参考に手作業でコメントアウトを行う。

(例):#をつけてコメントアウト
/var/lock/subsys/yppasswdd -> $(SEC_CONFIG) ;

#/var/lock/subsys/yppasswdd -> $(SEC_CONFIG) ;

 では、付属のサンプルポリシーファイルを

# cp twpol.txt sample.txt

 などとして適当な名前でコピーし、それをサンプルとして編集しよう。サンプルポリシーファイルの編集が完了したら、暗号署名付きファイルとし、再度データベースの初期化を行う。

 Tripwireはそのままのポリシーファイル(クリアテキスト)ではなく、暗号署名されたポリシーファイルを利用する。そのため、ここではコピーした新規のポリシーファイルを暗号署名してから、データベースの初期化を行うようになる。暗号署名には「/usr/sbin/twadmin」コマンドを利用する。同様にテキスト形式の設定ファイルのtwcfg.txtを変更した場合も署名が必要になる。

・ポリシーファイルの署名
# /usr/sbin/twadmin --create-polfile -S /etc/tripwire/site.key /etc/tripwire/twpol.txt

・設定ファイルへの署名
# /usr/sbin/twadmin --create-cfgfile -S /etc/tripwire/site.key /etc/tripwire/twcfg.txt

○暗号署名化とデータベースの初期化

 ポリシーファイルを暗号署名付きファイルとし、データベースの初期化を行う

・署名
# /usr/sbin/twadmin --create-polfile -S /etc/tripwire/site.key /etc/tripwire/sample.txt ←編集したポリシーファイル(すべて1行で入れる)

Please enter your site passphrase: サイトパスフレーズを入力する
Wrote policy file: /etc/tripwire/tw.pol

・データベースの初期化
# /usr/sbin/tripwire --init

Please enter your local passphrase: ローカルパスフレーズを入力する
Parsing policy file: /etc/tripwire/tw.pol
Generating the database...
*** Processing Unix File System ***
Wrote database file: /var/lib/tripwire/hoge.twd
The database was successfully generated.

 これでデータベースが/var/lib/tripwire/以下に「ホスト名.twd」というファイルで構築される。

PREV 3/4 NEXT