カテゴリー
Linux

★4★自動でレポートをメールで送信【Tripwire】わたくしだって WordPress サーバの改ざん検知したい!【CentOS】

2014年1月4日追記 設定を見直し、本投稿の作業は不要になりました♪

追記終わり

前回、自動で定期的に Tripwire の改ざんチェックが行われるようになっていることを確認いたしました。

今回は、この自動の改ざんチェックを行った時に、自動でレポートをメール送信するように設定したいと思います。

1.Tripwire からメールを送信できるかどうかのチェック!

わたくし、Logwatch のレポートをすでにメール送信するように設定済みでございます。

ですので、メールを送るための設定はあまりする必要がないように思えます。

と、Tripwire からメール送信ができるかどうかをチェックするだけのコマンドがございました。これを試してみましょう!なお、コマンドでのメールは「test@example.com」となっておりますけれども、実際には普段レポートを送信したいアドレスにします。

[root@oki2a24 ~]# tripwire --test --email test@example.com
Sending a test message to: test@example.com
[root@oki2a24 ~]#

Tripwire からのテストメールが無事、届きました♪「If you receive this message, email notification from tripwire is working correctly.」とメッセージもついています。バッチリ♪

スクリーンショット 2013-07-28 13.45.59.png

2.Tripwire にレポート送信設定を!

Tripwire からメール送信できることを確認いたしました。これはつまり、設定ファイル tw.cfg のメール設定で大丈夫、ということを意味しています。今後問題が出てくるのかもしれませんが、設定ファイル tw.cfg はここまでにして、次に進めます。

次、そう、メールアドレスの指定です。わたくし、この指定は設定ファイル tw.cfg にするものだとばかり思っておりました。でも、違うのですね。

Tripwire のレポート送信先メールアドレスは、ポリシーファイル tw.pol に設定します。具体的には、ポリシーファイルのemailto属性です。

早速設定します。流れとしては、ポリシーのクリアテキストを編集し、その後サイトパスフレーズを使ってポリシーファイルの暗号署名(tw.pol)を作成します。

vim /etc/tripwire/twpol.txt.new

「emailto」でファイル内を検索して、コメントを外して、、、と修正すれば楽勝♪楽勝♪と思っておりましたが、そうでもないようです><。ポリシーファイルから引用します。

# Email support is not included and must be added to this file. Add the
# “emailto=” to the rule directive section of each rule (add a comma
# after the “severity=” line and add an “emailto=” and include the
# email addresses you want the violation reports to go to). Addresses
# are semi-colon delimited.

ルールディレクティブセクションの「severity=」の次の行に追加してくださいまし!とあります。探してみましょう。

…ありません><。「severity=」がポリシーファイルにありません><。あ、「severity」で検索してみましょうか!

ありました!30ヵ所近くも><。うう〜、これ、絶対一発で「severity」の次の行に「emailto=」を挿入するようなやり方、ございますわね。でも、地道に手作業で挿入していきます。ガンバロ!

  1. Vim でポリシーファイルを開く
  2. severity」で検索、ルール属性でヒットしたことを確認
  3. 行末を確認し、なければ「,」を追加
  4. 次の行としてに「emailto = test@example.com,」を追加

気になる点といたしましては、メールアドレスの後に「,」が必要かどうかが不明なことです。参考ページにはカンマありでしたので、残しておこうかと思います。おそらく、どちらでも大丈夫なのだと思います。(追記:行末に「,」あっても問題なく動作しました♪)

ここで全部修正しないようにいたしまして、1箇所だけ、ルール「Tripwire Binaries」の部分のみ修正し、レポートのメール送信ができることを確認してから他の場所も修正するようにしようと思います。

さて、ポリシーのクリアテキストの編集が終わりました。次は暗号化です。サイトパスフレーズの入力が求められますので用意しておきまして、次のコマンドを実行します。

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

3.Tripwire 改ざんチェックでメール送信されるかチェック!

実際に整合性チェックを行った時にメールが送信されるかどうか確認します。まずはおさらいも兼ねて、コマンドオプションです。

コマンドオプションの内容です。

  • -m c, –check → 整合性チェック時に指定
  • -c cfgfile, –cfgfile cfgfile → 暗号署名された設定ファイル名を指定
  • -M, –email-report → ポリシーファイルで指定されたアドレスにレポートを送信

では実行してみます。

tripwire -m c -c /etc/tripwire/tw.cfg -M

OK です!ルール「Tripwire Binaries」部分のみのレポートが、無事にメール送信されました♪

スクリーンショット 2013-07-28 14.58.26.png

それでは、ポリシーのクリアテキストを再び編集し、暗号化し、もう一度メール送信できるか確認します。

あら、ミスしました。985行目が誤っているとの事。指摘していただけるのは大変助かりますわ♪カンマが、ひとつ余分でしたの。

[root@oki2a24 ~]# twadmin -m P -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key /etc/tripwire/twpol.txt.new
### Error: Policy file parsing problem.
### Syntax error: Line number 985
### Exiting...
The policy file was not altered.
[root@oki2a24 ~]#

削除して今度は OK でした。改ざんチェックを再び行い、無事にメール送信できたことを確認いたしました♪

4.日々の Tripwire 改ざんチェックでメールを自動送信するように設定!

ファイル「/etc/cron.daily/tripwire-check」に書かれている内容を日々実行しておりますので、この中のチェックしている部分にメールも送信するよう加えれば良さそうです。

では編集していきます。

vim /etc/cron.daily/tripwire-check

メール送信するように「-M または –email-report 」オプションを追加します♪

#!/bin/sh
HOST_NAME=`uname -n`
if [ ! -e /var/lib/tripwire/${HOST_NAME}.twd ] ; then
        echo "****    Error: Tripwire database for ${HOST_NAME} not found.    ****"
        echo "**** Run "/etc/tripwire/twinstall.sh" and/or "tripwire --init". ****"
else
        test -f /etc/tripwire/tw.cfg &&  /usr/sbin/tripwire --check --email-report
fi

これで、どうでしょうか?

確認するために、修正したファイルを実際に実行いたします。

/etc/cron.daily/tripwire-check

改ざんチェックに引っかかった部分が増えました。たった今修正いたしました cron.daily ディレクトリ tripwire-check ファイルが検知されました♪ 問題なしですね♪そんな内容のメールを受け取ることができました!

おわりに

これで毎日チェックした結果を自動的にメールで受け取ることができるようになりました。次のページが大変参考になりました♪ありがとうございます!

これで残る大きな課題はあとひとつ!

  • ベースラインデータベースのアップデート方法

です。インストールの時から随分と CentOS のファイルを変更いたしました。どれも必要なことで、改ざんではないのですけれども、毎回レポートに「変更されたからチェックしてね!」と言われてしまいますのは、いざ本当に改ざんされた時に漏らしてしまう原因となります。

早く、習得しなければなりません。

以上です。

「★4★自動でレポートをメールで送信【Tripwire】わたくしだって WordPress サーバの改ざん検知したい!【CentOS】」への1件の返信

コメントを残す