CentOS7 または AWS EC2 Amazon Linux AMI のマシンで tripwire を使う

2017-03-24 山田喜三郎 (@kisaburo_y) Tweet

  1. tripwire はフリーの IDS(侵入検知システム)
  2. オプションを付ければ yum でインストールできる
  3. 複数のページから集めた情報をもとに試行錯誤して最短の手順をまとめた
  4. 能書きを極力排除
  5. 設定ファイル修正用のスクリプト(php)付き
  6. 改竄チェック自動実行用スクリプト(bash)付き

インストール

# yum -y install epel-release   ← EPEL リポジトリをインストール
# yum -y install --enablerepo=epel tripwire
 

コンフィグ・ファイルの編集

# vim /etc/tripwire/twcfg.txt
LOOSEDIRECTORYCHECKING =true    ← ディレクトリとファイルの2重チェックをしない
 

キー・ファイルのセットアップ

あらかじめサイト・パスフレーズとローカル・パスフレーズを決めておき、

# tripwire-setup-keyfiles
 

ポリシー・ファイルの作成

# twadmin -m P -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key /etc/tripwire/twpol.txt
 

改竄チェック用データの作成

# tripwire --init
 

チェックを実行

# tripwire --check > tripwire.out 2>&1

大量のエラーメッセージが出る。それを tripwire.out に保存する。
 

「存在しない」と表示されるファイルのリストを取得

# grep '### Filename:' tripwire.out | awk '{print $3}' > tripwire_not_found.txt
 

存在しないファイルをチェック対象から外す

twpol.php を使って、存在しないファイルをチェック対象から外す

# php twpol.php > twpol.txt

/root, /var/log も、チェックされたら五月蝿いのでコメントアウト

# vim twpol.txt

diff を取ってみる

# diff /etc/tripwire/twpol.txt twpol.txt | less

その後、

# mv twpol.txt /etc/tripwire/.
 

ポリシー・ファイルの作り直し

# twadmin -m P -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key /etc/tripwire/twpol.txt
 

改竄チェック自動実行用スクリプトの削除

標準のスクリプトでは改竄を検出してもメールが来ないので、

# rm /etc/cron.daily/tripwire-check
 

改竄チェック用データの作り直し

# tripwire --init
 

改竄チェックスクリプト(bash)の作成

tripwire_check.sh という名前のファイルを作成し、実行許可を与える
tripwire_check.sh の中身
 
 

チェックを手動で実行してみる

# ./tripwire_check.sh

チェック対象ディレクトリ、ファイルに何らかの変化があれば「改竄!」と報告される。

問題のない変化なら tripwire --init を実行すれば報告は来なくなる。
 

改竄チェックの自動実行

# crontab -e
11 7 * * * /root/projects/tripwire/tripwire_check.sh    ← パスは適当に変更
 
 

不出世のプログラマー(不世出のプログラマーではない)
日本喫煙者党総裁
日本ガラケー保存会会長
花巻蕎麦振興会理事
板麩エヴァンジェリスト
巻き爪評論家
ダイエット(リバウンド)評論家
リバウンド王

— 山田喜三郎 (@kisaburo_y) 2016, 2月 10