前のページ « | 1 | » 次のページ

Tripwire、/backupディレクトリーのチェック対象外設定

2010, 01, 30

下記のようなTripwireのエラーメールが届いた。
### Warning: File system error.
### Filename: /backup/backup.tar.bz2
### Value too large for defined data type
### Continuing...


/backup/backup.tar.bz2のファイルサイズが2Gを超えてしまったため、2Gを超えるファイルに対応してないtripwireがエラーを出したようだ。なので、/backupのディレクトリーをチェック対象外にすることにした。
ポリシーファイル(テキスト版)の復活
[root@server ~]# twadmin -m p -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key > /etc/tripwire/twpol.txt

ポリシーファイル(テキスト版)の編集
[root@server ~]# vi /etc/tripwire/twpol.txt
  ################################################
 #                                              ##
################################################ #
#                                              # #
#  Monitor Filesystems                         # #
#                                              ##
################################################
(
  rulename = "Monitor Filesystems",
)
{
  /                             -> $(ReadOnly) ;
  /home                         -> $(ReadOnly) ;  # Modify as needed
  /usr                          -> $(ReadOnly) ;
  /var                          -> $(ReadOnly) ;
  !/backup; ← /backupをチェック対象外にするので追加
}

ポリシーファイル(暗号署名版)を作成
[root@server ~]# twadmin -m P -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key /etc/tripwire/twpol.txt

Please enter your site passphrase: ← サイトパスフレーズを入力
Wrote policy file: /etc/tripwire/tw.pol

ポリシーファイル(テキスト版)を削除
[root@server ~]# rm -f /etc/tripwire/twpol.txt

ポリシーファイルよりデータベースを作成
[root@server ~]# tripwire -m i -s -c /etc/tripwire/tw.cfg
Please enter your local passphrase: ← ローカルパスフレーズを入力
※データベースを作成するには結構時間がかかる

Tripwire エラー

2009, 08, 11

/root/tripwire.shを実行すると以下のようなエラーが出るようになった。

[root@server ~]# /root/tripwire.sh
### Warning: File system error.
### Filename: /var/lib/rpm/__db.001
### \xa4\xbd\xa4\xce\xa4\xe8\xa4\xa6\xa4\xca\xa5\xd5\xa5\xa1\xa5\xa4\xa5\xeb\xa4\xe4\xa5\xc7\xa5\xa3\xa5\xec\xa5\xaf\xa5\xc8\xa5\xea\xa4\xcf\xa4\xa2\xa4\xea\xa4\xde\xa4\xbb\xa4\xf3
### Continuing...
### Warning: File system error.
### Filename: /var/lib/rpm/__db.002
### \xa4\xbd\xa4\xce\xa4\xe8\xa4\xa6\xa4\xca\xa5\xd5\xa5\xa1\xa5\xa4\xa5\xeb\xa4\xe4\xa5\xc7\xa5\xa3\xa5\xec\xa5\xaf\xa5\xc8\xa5\xea\xa4\xcf\xa4\xa2\xa4\xea\xa4\xde\xa4\xbb\xa4\xf3
### Continuing...
### Warning: File system error.
### Filename: /var/lib/rpm/__db.003
### \xa4\xbd\xa4\xce\xa4\xe8\xa4\xa6\xa4\xca\xa5\xd5\xa5\xa1\xa5\xa4\xa5\xeb\xa4\xe4\xa5\xc7\xa5\xa3\xa5\xec\xa5\xaf\xa5\xc8\xa5\xea\xa4\xcf\xa4\xa2\xa4\xea\xa4\xde\xa4\xbb\xa4\xf3
### Continuing...


rpmのデータベース/var/lib/rpm/__db.001〜/var/lib/rpm/__db.003を念のため移動してから再構築する。
[root@server ~]# ls -l /var/lib/rpm/
合計 46964
-rw-r--r-- 1 rpm  rpm    196608  8月 11 17:17 Requireversion
-rw-r--r-- 1 rpm  rpm     81920  8月 11 17:17 Sha1header
-rw-r--r-- 1 rpm  rpm     49152  8月 11 17:17 Sigmd5
-rw-r--r-- 1 rpm  rpm     12288  7月 15 06:01 Triggername
-rw-r--r-- 1 root root    24576  8月 11 18:46 __db.001
-rw-r--r-- 1 root root  1318912  8月 11 18:46 __db.002
-rw-r--r-- 1 root root   450560  8月 11 18:46 __db.003

[root@server ~]# mv /var/lib/rpm/__db.00? /tmp

[root@server ~]# rpm --rebuilddb


再構築が終了したら正常に動作するか確認する。
[root@server ~]# rpm -qa

[root@server ~]# yum list

再度/root/tripwire.shを実行
[root@server ~]# /root/tripwire.sh

エラーは出ないようになった。

ファイル改竄検知システム(Tripwire)

2009, 02, 16

Tripwireはサーバーのファイルの改竄を検知するシステム。 Tripwireを使用すると、重要なシステムファイルとディレクトリに対する変更をすべて検出することで、それらの保全性を確保することができる。セキュリティを万全にするために、ファイルが改竄される前に、Tripwireをインストールして基準データベースを作成しておく。基準データベースが作成されると、Tripwireは現在のファイルをこれと比較し、変更、追加、削除のいずれかがあれば報告するようにする。

■Tripwireのインストール
Tripwireをダウンロード(最新版 をダウンロード
[root@linux ~]# wget http://downloads.sourceforge.net/tripwire/tripwire-2.4.1.2-src.tar.bz2

ダウンロードしたtripwireを展開
[root@linux ~]# tar jxvf tripwire-2.4.1.2-src.tar.bz2

Tripwireの展開先ディレクトリへ移動
[root@linux ~]# cd tripwire-2.4.1.2-src

tripwireのインストール
[root@linux tripwire-2.4.1.2-src]# ./configure --prefix=/usr/local/tripwire sysconfdir=/etc/tripwire && make && make install

Press ENTER to view the License Agreement. ← 空ENTER

SPACEキー押下でライセンス表示を流す

Please type "accept" to indicate your acceptance of this
license agreement. [do not accept] accept ← acceptを入力

Continue with installation? [y/n] y ← y

Enter the site keyfile passphrase: ← サイトパスフレーズを設定
Verify the site keyfile passphrase: ← サイトパスフレーズを再度入力

Enter the local keyfile passphrase: ← ローカルパスフレーズを設定
Verify the local keyfile passphrase: ← ローカルパスフレーズを再度入力

Creating signed configuration file...
Please enter your site passphrase: ← サイトパスフレーズを入力

Creating signed policy file...
Please enter your site passphrase: ← サイトパスフレーズを入力

The installation succeeded.

[root@linux tripwire-2.4.1.2-src]# cd ← tripwire展開先ディレクトリを抜ける

[root@linux ~]# rm -rf tripwire-2.4.1.2-src ← tripwire展開先ディレクトリを削除

[root@linux ~]# rm -f tripwire-2.4.1.2-src.tar.bz2 ← tripwireを削除

[root@linux ~]# echo PATH=$PATH:/usr/local/tripwire/sbin >> .bashrc ; source .bashrc ← tripwire実行ファイル格納ディレクトリへパスを通す


■Tripwireの設定
設定ファイル(テキスト版)を編集
[root@linux ~]# vi /etc/tripwire/twcfg.txt
ROOT                   =/usr/sbin
POLFILE                =/etc/tripwire/tw.pol
DBFILE                 =/var/lib/tripwire/$(HOSTNAME).twd
REPORTFILE             =/var/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr
SITEKEYFILE            =/etc/tripwire/site.key
LOCALKEYFILE           =/etc/tripwire/$(HOSTNAME)-local.key
EDITOR                 =/bin/vi
LATEPROMPTING          =false
LOOSEDIRECTORYCHECKING =false
↓
LOOSEDIRECTORYCHECKING =true
MAILNOVIOLATIONS       =true
EMAILREPORTLEVEL       =3
REPORTLEVEL            =3
↓
REPORTLEVEL            =4
MAILMETHOD             =SENDMAIL
SYSLOGREPORTING        =false
MAILPROGRAM            =/usr/sbin/sendmail -oi -t

設定ファイル(テキスト版⇒暗号署名版)を作成
[root@linux ~]# 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

セキュリティ確保のため設定ファイル(テキスト版)を削除
[root@linux ~]# rm -f /etc/tripwire/twcfg.txt

設定ファイル(テキスト版)を復活させる場合は以下のコマンドで復活できる
[root@linux ~]# twadmin --print-cfgfile > /etc/tripwire/twcfg.txt


■ポリシーファイルの設定
ポリシーファイルの最適化スクリプトを作成
[root@linux ~]# vi /etc/tripwire/twpolmake.pl
#!/usr/bin/perl
# Tripwire Policy File customize tool
# ----------------------------------------------------------------------
# Copyright (C) 2003 Hiroaki Izumi
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
# ----------------------------------------------------------------------
# Usage:
#    perl twpolmake.pl {Pol file}
# ----------------------------------------------------------------------
#
$POLFILE=$ARGV[0];

open(POL,"$POLFILE") or die "open error: $POLFILE" ;
my($myhost,$thost) ;
my($sharp,$tpath,$cond) ;
my($INRULE) = 0 ;

while (<POL>) {
    chomp;
    if (($thost) = /^HOSTNAME\s*=\s*(.*)\s*;/) {
        $myhost = `hostname` ; chomp($myhost) ;
        if ($thost ne $myhost) {
            $_="HOSTNAME=\"$myhost\";" ;
        }
    }
    elsif ( /^{/ ) {
        $INRULE=1 ;
    }
    elsif ( /^}/ ) {
        $INRULE=0 ;
    }
    elsif ($INRULE == 1 and ($sharp,$tpath,$cond) = /^(\s*\#?\s*)(\/\S+)\b(\s+->\s+.+)$/) {
        $ret = ($sharp =~ s/\#//g) ;
        if ($tpath eq '/sbin/e2fsadm' ) {
            $cond =~ s/;\s+(tune2fs.*)$/; \#$1/ ;
        }
        if (! -s $tpath) {
            $_ = "$sharp#$tpath$cond" if ($ret == 0) ;
        }
        else {
            $_ = "$sharp$tpath$cond" ;
        }
    }
    print "$_\n" ;
}
close(POL) ;

ポリシーファイルの最適化
[root@linux ~]# perl /etc/tripwire/twpolmake.pl /etc/tripwire/twpol.txt > /etc/tripwire/twpol.txt.new

ポリシーファイル(暗号署名版)を作成
[root@linux ~]# 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

ポリシーファイル(テキスト版)を削除
[root@linux ~]# rm -f /etc/tripwire/twpol.txt*

ポリシーファイル(テキスト版)を復活させる場合は以下のコマンドで復活できる
[root@linux ~]# twadmin -m p -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key > /etc/tripwire/twpol.txt


■Tripwireのデータベース作成
ポリシーファイルよりデータベースを作成
[root@linux ~]# tripwire -m i -s -c /etc/tripwire/tw.cfg
Please enter your local passphrase: ← ローカルパスフレーズを入力
※データベースを作成するには結構時間かかる


■Tripwireの確認
ファイル変更をチェック ※結構時間かかる
[root@linux ~]# tripwire -m c -s -c /etc/tripwire/tw.cfg
Open Source Tripwire(R) 2.4.1 Integrity Check Report

Report generated by:          root
Report created on:            2008年06月29日 21時51分09秒
Database last updated on:     Never

===============================================================================
Report Summary:
===============================================================================

Host name:                    linux.yokensaka.com
Host IP address:              192.168.1.4
Host ID:                      None
Policy file used:             /etc/tripwire/tw.pol
Configuration file used:      /etc/tripwire/tw.cfg
Database file used:           /usr/local/tripwire/lib/tripwire/linux.yokensaka.com.twd
Command line used:            tripwire -m c -s -c /etc/tripwire/tw.cfg

===============================================================================
Rule Summary:
===============================================================================

-------------------------------------------------------------------------------
  Section: Unix File System
-------------------------------------------------------------------------------

  Rule Name                       Severity Level    Added    Removed  Modified
  ---------                       --------------    -----    -------  --------
* Tripwire Data Files             0                 1        0        0
* Monitor Filesystems             0                 0        0        3
  User Binaries and Libraries     0                 0        0        0
  Tripwire Binaries               0                 0        0        0
  OS Binaries and Libraries       0                 0        0        0
  Temporary Directories           0                 0        0        0
  Global Configuration Files      0                 0        0        0
  System Boot Changes             0                 0        0        0
  RPM Checksum Files              0                 0        0        0
  OS Boot Files and Mount Points  0                 0        0        0
  OS Devices and Misc Directories 0                 0        0        0
  Root Directory and Files        0                 0        0        0

Total objects scanned:  148758
Total violations found:  4

===============================================================================
Object Summary:
===============================================================================

-------------------------------------------------------------------------------
# Section: Unix File System
-------------------------------------------------------------------------------

-------------------------------------------------------------------------------
Rule Name: Monitor Filesystems (/usr)
Severity Level: 0
-------------------------------------------------------------------------------

Modified:
"/usr/ddns/NEW_IP.dat"

-------------------------------------------------------------------------------
Rule Name: Tripwire Data Files (/usr/local/tripwire/lib/tripwire)
Severity Level: 0
-------------------------------------------------------------------------------

Added:
"/usr/local/tripwire/lib/tripwire/linux.yokensaka.com.twd"

-------------------------------------------------------------------------------
Rule Name: Monitor Filesystems (/var)
Severity Level: 0
-------------------------------------------------------------------------------

Modified:
"/var/spool/postfix/public/pickup"
"/var/spool/postfix/public/qmgr"

===============================================================================
Error Report:
===============================================================================

No Errors

-------------------------------------------------------------------------------
*** End of report ***

Open Source Tripwire 2.4 Portions copyright 2000 Tripwire, Inc. Tripwire is a registered
trademark of Tripwire, Inc. This software comes with ABSOLUTELY NO WARRANTY;
for details use --version. This is free software which may be redistributed
or modified only under certain conditions; see COPYING for details.
All rights reserved.


■Tripwireの定期自動実行設定
Tripwireの定期実行スクリプトを作成
[root@linux ~]# vi tripwire.sh
#!/bin/bash

PATH=/usr/sbin:/usr/bin:/bin:/usr/local/tripwire/sbin

# パスフレーズ設定
LOCALPASS=xxxxxxxx # ローカルパスフレーズ
SITEPASS=xxxxxxxx  # サイトパスフレーズ

cd /etc/tripwire

# Tripwireチェック実行
tripwire -m c -s -c tw.cfg|mail -s "Tripwire(R) Integrity Check Report in `hostname`" root

# ポリシーファイル最新化
twadmin -m p -c tw.cfg -p tw.pol -S site.key > twpol.txt
perl twpolmake.pl twpol.txt > twpol.txt.new
twadmin -m P -c tw.cfg -p tw.pol -S site.key -Q $SITEPASS twpol.txt.new > /dev/null
rm -f twpol.txt* *.bak

# データベース最新化
rm -f /usr/local/tripwire/lib/tripwire/*.twd*
tripwire -m i -s -c tw.cfg -P $LOCALPASS

実行スクリプトに実行権を与える
[root@linux ~]# chmod 700 tripwire.sh

cronを編集
[root@linux ~]# crontab -e
00 01 * * * /root/tripwire.sh
毎日1:00にTripwireの定期実行スクリプトを実行


前のページ « | 1 | » 次のページ