Tag: tripwire

目次

関連ページ

参考情報

基本情報

  • サイトキー、ローカルキーの入力が必要。
  • 設定ファイルを暗号化する必要がある。

インストール

  • Debian/Ubuntuの場合
    apt install tripwire
  • サイトキーとローカルキーの入力が求められるので適当に入力する。

設定

設定ファイルの作成(tw.cfg)

  • twcfg.txtを編集する(今回は特に変更なし)。
  • 以下のコマンドでtw.cfgを作成
    twadmin -m F -c /etc/tripwire/tw.cfg -S /etc/tripwire/site.key /etc/tripwire/twcfg.txt
  • 次でも同様らしい
    twadmin --create-cfgfile --site-keyfile /etc/tripwire/site.key  /etc/tripwire/twcfg.txt
  • サイトパスフレーズはコマンドラインで指定することも可能。

設定ファイルの最適化(tw.pl)

  • ファイル改竄検知システム導入(Tripwire) - CentOSで自宅サーバー構築が出典のtwpolmake.plを/etc/tripwireに作成。
    #!/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;
        # HOSTNAME=hogeを検索してhostnameの結果で置き換え
        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) ;
    
  • 以下のコマンドで実行。
    perl /etc/tripwire/twpolmake.pl /etc/tripwire/twpol.txt > /etc/tripwire/twpol.txt.new
  • tw.plの作成。twpol.txt.newをtwpol.txtにリネームするか、直接以下のコマンドでポリシーファイルを作成する。
    twadmin -m P -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key  /etc/tripwire/twpol.txt.new
  • 以下のコマンドでも同様
    twadmin --create-polfile --cfgfile /etc/tripwire/tw.cfg  /etc/tripwire/twpol.txt

データベースの作成

  • 以下のコマンドでデータベースを作成する。
    tripwire -m i -s -c /etc/tripwire/tw.cfg

監視実行

  • 以下のコマンドでチェックする  tripwire -m c -s -c /etc/tripwire/tw.cfg
  • ファイルを追加
    cd /root
    echo test > test.txt
  • 再度チェックして検出されればOK。(-m cでチェック。-sでサイレントモード)  tripwire -m c -s -c /etc/tripwire/tw.cfg
  • 以下でも同様
    tripwire --check

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-02-08 (月) 14:25:02