Tripwireによるファイル改竄検知

スポンサーリンク
RockyLinux
この記事は約9分で読めます。
ランキングに参加しています。応援よろしくお願いします。
ブログランキング・にほんブログ村へ 人気ブログランキングへ FC2ブログランキングへ
スポンサーリンク
この記事が気に入ったら
フォローしよう
最新情報をお届けします。

前回の「ホスト名(FQDN)設定、SSHサーバ及びNTPサーバ」に引き続き、Rocky Linux 9 サーバ構築手順次のステップは、「セキュリティ強化編」として「Tripwireによるファイル改竄検知」について設定を行います。

当ブログサイトを運用しているサーバは、「KAGOYA JAPAN」で提供されている「KAGOYA CLOUD VPS」を利用しています。

Tripwireは、ファイルの変更や改ざんを検知し、管理者に通知するセキュリティツールです。
サーバ構築時のファイルやディレクトリ情報をデータベース化し、現在の状態との差異を検知します。

EPELリポジトリから最新パッケージをインストールします

# dnf install -y epel-release
# dnf install -y tripwire perl-interpreter

サイトキーのパスフレーズは空のまま作成(任意で可)

# twadmin --generate-keys --site-keyfile /etc/tripwire/site.key

'~ 中略 ~'

Enter the site keyfile passphrase:
Verify the site keyfile passphrase:
Generating key (this may take several minutes)...Key generation complete.

作成されたキーファイルの確認

# ll /etc/tripwire/
total 56
-rw-r--r-- 1 root root   931 Sep 11 11:42 site.key
-rw-r--r-- 1 root root   603 Nov  5  2023 twcfg.txt
-rw-r--r-- 1 root root 46658 Sep 11 11:34 twpol.txt

ローカルキーのパスフレーズは空のまま作成(任意で可)

# twadmin --generate-keys --local-keyfile /etc/tripwire/`hostname`-local.key

'~ 中略 ~'

Enter the local keyfile passphrase:
Verify the local keyfile passphrase:
Generating key (this may take several minutes)...Key generation complete.

Tripwireの警告レベルを変更する

# vi /etc/tripwire/twcfg.txt

'~ 中略 ~'

LOOSEDIRECTORYCHECKING =true

'~ 中略 ~'

REPORTLEVEL            =4

'~ 略 ~'
REPORTLEVEL説明
0変更があった場合に、何のレポートも生成しません。
デバッグ目的や、変更を一切記録したくない場合に利用されます。
1変更があったファイルのリストのみを出力します。
変更されたファイル名、ファイルサイズ、タイムスタンプなどの基本的な情報が得られます。
2変更されたファイルの内容に関する詳細な情報を表示します。
ファイルの内容の差分、変更された部分などが表示されます。
侵入者がファイルの内容を改ざんした場合など、より詳細な分析に役立ちます。
3レベル2に加えて、システム全体の状態に関する情報を表示します。
システムの負荷、ネットワーク接続、プロセス情報など、より広範囲な情報が得られます。
4レベル3に加えて、詳細な監査証跡情報を生成します。
システムの変更履歴を詳細に記録し、フォレンジック調査に役立ちます。

テキスト形式の設定ファイル(twcfg.txt)から署名付きの暗号化バイナリ設定ファイル(tw.cfg)を生成します

# twadmin -m F -c /etc/tripwire/tw.cfg -S /etc/tripwire/site.key /etc/tripwire/twcfg.txt
Please enter your site passphrase:
Wrote configuration file: /etc/tripwire/tw.cfg

ポリシー最適化スクリプトをダウンロードし、実行します

# curl -LO https://raw.githubusercontent.com/Tripwire/tripwire-open-source/master/contrib/twpolmake.pl
# perl ./twpolmake.pl /etc/tripwire/twpol.txt | tee /etc/tripwire/twpol.txt.new

生成したファイルを確認します

# ll /etc/tripwire/
total 116
-rw-r--r-- 1 root root   931 Sep 11 11:52 marusrv.maruweb.jp.net-local.key
-rw-r--r-- 1 root root   931 Sep 11 11:42 site.key
-rw-r--r-- 1 root root  4586 Sep 11 15:05 tw.cfg
-rw-r--r-- 1 root root   602 Sep 11 14:27 twcfg.txt
-rw-r--r-- 1 root root 46658 Sep 11 11:34 twpol.txt
-rw-r--r-- 1 root root 46908 Sep 11 16:06 twpol.txt.new

生成したテキスト形式ポリシーファイル(twpol.txt.new)から、署名付き暗号化のバイナリ形式ポリシーファイル(tw.pol)を生成します

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

ローカルキーを使用してデータベースを初期化します

# 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/marusrv.maruweb.jp.net.twd
The database was successfully generated.
Parsing policy file: /etc/tripwire/tw.pol
*** Processing Unix File System ***
Performing integrity check...
Wrote report file: /var/lib/tripwire/report/marusrv.maruweb.jp.net-20240911-230319.twr

'~ 略 ~'

/usr/local/bin/ディレクトリにファイルを作成して確認します

# touch /usr/local/bin/newfile
# tripwire --check

'~ 中略 ~'

  Rule Name                       Severity Level    Added    Removed  Modified
  ---------                       --------------    -----    -------  --------
* User binaries                   66                1        0        0

ファイルが追加されたことを検知できます

過去のレポートファイルを確認する場合、/var/lib/tripwire/reportディレクトリに格納されています

# twprint --print-report --twrfile /var/lib/tripwire/report/marusrv.maruweb.jp.net-20240911-231335.twr

改ざん検知後、現在のファイルシステム状態を正常としてベースラインを更新します

# tripwire --update --accept-all --twrfile /var/lib/tripwire/report/marusrv.maruweb.jp.net-20241210-040303.twr
Please enter your local passphrase:
Wrote database file: /var/lib/tripwire/marusrv.maruweb.jp.net.twd

運用中に改ざん検知ポリシーを更新する場合は、元となるポリシーファイルで編集を行った後、ポリシー設定ファイルの再生成とベースラインの更新を行います。

# vi twpol.txt.new

# twadmin --create-polfile /etc/tripwire/twpol.txt.new
Please enter your site passphrase:
Wrote policy file: /etc/tripwire/tw.pol

# twadmin --print-polfile

# 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/marusrv.maruweb.jp.net.twd
The database was successfully generated.

# tripwire --check
Parsing policy file: /etc/tripwire/tw.pol
*** Processing Unix File System ***
Performing integrity check...

次回以降も引き続き「セキュリティ強化偏」として、以下の手順を実施します。

  1. セキュリティ強化
    • KHunterによるrootkit検知
    • ClamAVアンチウィルスソフト
  2. メール転送設定
    • rootメール転送設定

これらの手順により、安全で管理しやすいLinuxサーバ環境を構築できます。

コメント

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