tripwireで除外ディレクトリを設定しようとすると「Error: Rule already defined as a start or stop point of another rule.」と出る

tripwireの運用で、ほぼ毎日更新があるディレクトリがいつも検知されてしまいます
そのため、除外設定を実施することにしたのですがtripwireデータベースを更新しようとするとエラーが出てしまい更新ができませんでした

やりたかったこと

/var/logをtripwireのチェック除外ディレクトリに設定する

エラー内容

日本語で言うと、「ルールは別のルールの開始点または終了点として既に定義されています。」といったエラーの内容です

# twadmin -m P -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/twpol.txt
### Error: Rule already defined as a start or stop point of another rule.
### /var/log: Line number 1043
### Exiting...
The policy file was not altered.

解決策

/var/logはポリシーファイルでチェックディレクトリとして設定されているため
設定してあるディレクトリが除外にも入っているので矛盾していることが原因だったっぽいです

# Critical configuration files.

(略)

(
  rulename = "Critical configuration files",
  severity = $(SIG_HI)
)
{
     /var/log                          -> $(SEC_CONFIG) ; ← ここが競合
}

(略)

!/var/log/ ;  ← ここが競合

なので対策としては/var/logを除外するのではなく、その下のディレクトリを除外指定することで対処しました
今回はもともと/var/log/rspamdがローテーションで頻繁にファイル作成されるため毎日のようにtripwireチェックに引っかかっておりました
/var/log以下は今後他も同様になるかもしれないな~と思って/var/logごと除外してしまおうと思いましたが、さすがに設定範囲が大雑把すぎたようですね
そのため、/var/log/rspamdを除外ディレクトリとして設定します

まだ作成していない場合は、ポリシーファイルのテキスト版を作成します

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

/var/logで指定した箇所を/var/log/rspamdに書き換えます

# vi /etc/tripwire/twpol.txt
!/var/log/ ; 
↓ 変更
!/var/log/rspamd ;

暗号署名版のポリシーファイルを作成します

# twadmin -m P -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /e                                  tc/tripwire/site.key /etc/tripwire/twpol.txt
Please enter your site passphrase:

テキスト版ポリシーファイルを削除します

# rm /etc/tripwire/twpol.txt

tripwireデータベースを更新します

# rm -f /var/lib/tripwire/*.twd* ; tripwire -m i -s -c /etc/tripwire/tw.cfg
Please enter your local passphrase:

今後/var/log以下で他のディレクトリも引っかかるようであれば、その都度そのディレクトリを除外設定していこうと思います

余談ですが、自分が使用しているポリシーファイルは/var/logや/etcなど様々なディレクトリをチェック対象にしていますが、公開webサーバーを運用している場合は下記サイトのようにwebのルートディレクトリのみチェックするポリシーも良いかもなと思いました

Tripwire で Web公開用ディレクトリの変更をチェックする
Tripwireは、指定したファイルやディレクトリ等の変更を検知して、レポートに出力したり、管理者にメールで通知してくれるソフトウェアです。侵入者により、不正な改ざんが行われた事を検知することが Tripwire の目的であるため、ホスト型

参考

オープンソースのTripwire® / バグ / #46 ポリシーファイル tw.pol の生成に失敗する (sourceforge.net)

ファイル改竄検知システム導入(Tripwire) – AlmaLinuxで自宅サーバー構築 (centossrv.com)

コメント

タイトルとURLをコピーしました