Webコンテンツの改ざんやコマンドの置き換えなどのセキュリティ対策としてTripwireを導入しました。
下記サイトを参考にして構築しました。
ゼロから始めるLinuxセキュリティ(8):Tripwireによるホスト型IDSの構築
1)Tripwireのインストール
Tripwireのオープンソース版のrpmを入手し、インストールします。
# rpm -i tripwire-2.4.2.1-1.el6.x86_64
2)キーファイル作成
tripwireの設定ファイル、ポリシーファイルを暗号化するためのキーファイルを作成します。
下記コマンドを実行します。
# /usr/sbin/tripwire-setup-keyfiles
→何度かパスフレーズの入力を求められます。
→/etc/tripwireディレクトリに、”site.key”と”ホスト名-local.key”という名前のキーファイルが作成されます。
3)設定ファイル
/etc/tripwireディレクトリに下記設定ファイルがありますので、適宜変更します。
①twcfg.txt:設定ファイル
②twpol.txt:ポリシーファイル
4)動作確認
ポリシーファイルに簡単な設定を追加し、動作確認します。
①ポリシーファイルに下記設定を追加
/var/www/html -> $(SEC_CONFIG) ;
→apacheのコンテンツが変更されたら、その変更ファイルを検知するようにします。
②設定ファイルを暗号化
上記設定ファイルの内容が読まれるのを防ぐため暗号化します。
# twadmin -m P -S site.key twpol.txt
③ベースラインデータベースを作成
改ざん又は変更を検知する際の比較対象とするベースラインデータベースを作成します。
# tripwire -m i
④整合性チェック
ベースラインデータベースと比較して整合性をチェックします。
ここでは、動作確認のため、/var/www/htmlディレクトリにファイルを追加してから実行します。
改ざん又は変更があったか調べるため、整合性チェックを行います。
# tripwire -m c
→結果抜粋
Rule Name Severity Level Added Removed Modified --------- -------------- ----- ------- -------- Invariant Directories 66 0 0 0 Tripwire Data Files 100 0 0 0 Critical devices 100 0 0 0 User binaries 66 0 0 0 Tripwire Binaries 100 0 0 0 Critical configuration files 100 0 0 0 Libraries 66 0 0 0 Operating System Utilities 100 0 0 0 * Temporary directories 33 1 0 0 Critical system boot files 100 0 0 0 ------------------------------------------------------------------------------- Rule Name: Temporary directories (/var/www/html) Severity Level: 33 ------------------------------------------------------------------------------- Added: "/var/www/html/httpd.conf"
上記のように追加されたファイルが”Added:・・・”とレポートされました。
関連記事の目次-
OpenSSH
- レンタルサーバー(VPS)にSSHでログイン
- VPS(レンタル)サーバー上のssh初期設定確認
- SSH接続の仕組み
- OpenSSHの設定ファイル
- OpenSSHの設定をよりセキュアに
- CentOS Stream9のSSH設定(OpenSSH)
- WinSCPを使ってファイル転送
ネットワーク、ポート番号
rpmパッケージ、サービス
パーミッション
ログイン、認証、パスワード、アカウント制御
auditdでシステム監査
ツール
トラブルシューティング
-
ネットワーク、ポート番号
- iptablesを使ってCentOSのファイアウォール設定
- CentOS6のTCPラッパーの概要と設定方法
- nmapでオープンしているポート番号とバージョンを確認
- yumコマンドで最新のパッケージにアップデート
- 更新可能なRPMパッケージのリストをメールで送信する
- CentOSで不要なサービスは起動しないようにする
- RPMパッケージのインテグリティチェック
- cronで使用するファイルのパーミッション設定
- CentOSのumaskの設定
- ユーザーホームディレクトリ内の権限設定をセキュアにする
- CentOSのパスワードファイルのパーミッション設定
- findコマンドでファイル書込権限をいっせいにチェック
- findコマンドでセットユーザ(グループ)IDが不要にセットされていないかチェック
- findコマンドで所有者、グループが存在しないファイルを抽出
- ログイン時などに表示されるシステムバナーを変更するには?
- CentOSのユーザーアカウントのパスワードポリシーを設定
- pam_cracklibモジュールでパスワードポリシーを設定
- pam_unix.soモジュールを使って過去のパスワード再使用を制限する
- システムコンソールでのrootログインを制限する方法
- suコマンドによるrootへのスイッチを制限する
- root権限でのコマンド実行、sudoだと監査ログが取得できる
- デーモン用アカウントなどに対しシェルを使用を無効にする
- パスワード認証を失敗時にアカウントをロックアウトする設定
- rootアカウントのPATH環境変数のセキュリティについて
- NTPのセキュリティを考慮した設定
- セキュリティを考慮してX Windowsを設定または削除する方法
- ファイルの改ざん対策用にTripwireを導入
- CentOSにホスト型侵入検知ソフトAIDE(Advanced Intrusion Detection Environment)を導入
- アイドルのシェルを自動で強制終了させるには?
- CentOSでコアダンプを無効にする方法
- Linuxのbash脆弱性CVE-2014-6271、Shellshockを修整
- CentOSでバッファーオーバーフロー脆弱性に対する防御機能が有効になっているか確認する
yum、rpmパッケージ、サービス
パーミッション
ログイン、認証、パスワード、アカウント制御
ツール
トラブルシューティング