Tripwire(トリップワイヤ)は、主にLinuxで活用されている、ファイルの変更・改竄検知をしてくれるソフトウェアです。

無償で公開されているオープンソース版と、Tripwire社が販売している商用版があります。

IDS(Intrusion Detection System)とは不正侵入検知システムのことである。ネットワーク型IDS(NIDS)とホスト型IDS(HIDS)がある

Tripwireはこれ。
ファイル改竄検知システムにホスト型IDS(IDS=Intrusion Detection System)

IPSとは不正侵入予防システムのこと。不正と判断したパケットを遮断する

前準備

既にインストールされている場合はアンインストールしておきます。

その他tripwireのごみファイルが存在しないか確認し、存在していたらrmコマンドで消しておきます。

Tripwireのインストール

今回は、rpm版をyumでインストールします。(もちろんソースからインストールも可能です。)

ソースからインストールする場合

任意のディレクトリで、ソースファイルを取得します。

最新版はこちらより確認して落としてください。
https://sourceforge.net/projects/tripwire/files/tripwire-src/

ソースを落としたら展開して以下のようにインストールします。

yumでインストールする場合

Tripwireの初期設定

インストールが完了したら、Tripwireの初期設定を行います。
★★の箇所で任意のサイトパスフレーズ・ローカルパスフレーズを入力します。

Tripwireの初期設定その2

以下のディレクトリに設定ファイルが生成されていますので、
そちらに設定を記載していきます。

LOOSEDIRECTORYCHECKING=true は変更があった場合に、ファイルとディレクトリの2重検知を纏めます。

REPORTLEVEL は(0~4)が指定できます。数字の大きい方がより詳細レポート。

tripwireはレポートレベルを上げるとCPU・メモリを結構食います。
逆にレベルを下げると、必要な情報が取得できない場合がありますのでチェック内容は
用途に合わせて設定する必要があります。

一昔前にはtripwireが1時間くらいかかってた時期もあったそうですが、
昨今はマシンスペックの向上により、(対象量や用途にもよりますが)1分以内で終わることが多いので、
レポートレベルを上げても夜中にやってしまえば大丈夫。

Tripwire設定ファイル(暗号署名版)を作成

ここがtripwireの少し分かりにくい部分ですが、先ほど用いたサイトパスフレーズを使って、ファイルを暗号化します。

暗号化コマンドを打ち込むとサイトパスフレーズを聞かれますので、
入力するとファイルが生成されます。

暗号署名版が出来たら、元のテキスト版は削除しておきます。(セキュリティ確保のため)

もしテキスト版の設定ファイルを復活させる場合は、以下のコマンド復活します。

ポリシーファイルの設定

Tripwireでは、ポリシーファイルをもとに生成したDBと現在のファイルを比較して、改竄検知を行いますが、
初期設定のポリシーファイルでは存在しないファイルのチェックが有効になっていたり、
存在するファイルのチェックが無効になっていたりする為、最適化するためのPerlスクリプトを作成して対処します。

下記のPerlスクリプトは以下のサイトで紹介されているものです。
http://centossrv.com/tripwire.shtml

ポリシーファイルの最適化

最適化済ポリシーファイルを元にポリシーファイル(暗号署名版)作成
再度、サイトパスフレーズの入力を求められます。

ポリシーファイル(テキスト版)削除

データベース作成

ローカルパスフレーズの入力を求められます。
データベースの作成には少し時間が掛かります。
これで設定は一通り完了です。

Tripwireの動作確認

以下のコマンドでTripwireを実行してみます。

私の環境では、およそ40秒ほどで動作が完了しました。
初回の確認だと、Tripwire Data Files で1ファイルのAddとなります。

Cronによる定期自動実行設定

こちらも先述のサイトにて紹介されているスクリプトです。

後はスクリプトに実行権限を付与し、任意の時間に起動するように仕込めば作業完了です。
以下の設定は毎日午前4時に起動する設定です。