【第10回】tripwireの設定方法について

インターネットの世界では常に第三者に情報を盗まれたり、攻撃を受ける可能性があります。

もし自分のサーバに侵入されてファイルやディレクトリの情報を改ざんされてしまうと、システムが正常に動かなくなったり色々と問題が起きます。

tripwire(トリップワイヤ)を導入することで、ファイルやディレクトリの情報をデータベースに保存ささせ、現状動いているシステムとデータベースの情報を比較しながら改ざんされていないかを確認してくれる便利なソフトです。

これからWebサーバを構築する前にtripwireを設定し、データを勝手に書き換えられないようにセキュリティを上げていきましょう。



tripwireの設定方法について



1:
まずはTeraTermを立ち上げ、rootユーザで操作します。
TeraTermのログイン方法については【第8回】を参照してください。

【第9回】の設定が正常に完了していれば、IPアドレスの入力箇所を独自ドメインに変えてログインできるようになります。

2:
EPELリポジトリを設定します。
EPELリポジトリは簡単に一言でいうと”パッケージの保管場所”です。

今回導入するtripwireのパッケージソフトはこのEPELというリポジトリからサーバにダウンロードします。
yumコマンドを使ってインストールする場合、関連(依存関係)のあるパッケージソフトを自動で探して一緒にダウンロードしてくれるので、パッケージソフトをインストールする場合はyumコマンドでやるようにします。



このEPELリポジトリをインストールするには、以下のコマンドを入力します。


[root@vpsyarou ~]# rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm


3:
Tripwireをインストールします。


yum -y install tripwire

Tripwireの初期設定を実施します。
コマンド実行後、いくつかパスワードを設定する箇所があるので、忘れないパスワードを入力して[Enterキー]で進めていきましょう。

[root@vpsyarou ~]# tripwire-setup-keyfiles

下記の画像は設定する箇所の文言を抜粋したので、TeraTermの画面と見比べながら入力してみてください。

Enter the site keyfile passphrase: ← 任意のサイトパスフレーズ応答
Verify the site keyfile passphrase: ← 任意のサイトパスフレーズ応答(確認)

Enter the local keyfile passphrase: ← 任意のローカルパスフレーズ応答
Verify the local keyfile passphrase: ← 任意のローカルパスフレーズ応答(確認)

Please enter your site passphrase: ← サイトパスフレーズ応答

Please enter your site passphrase: ← サイトパスフレーズ応答

以下の文言が表示されると初期設定は完了となります。



4:
twcfg.txtという設定ファイルを編集します。
ファイルを編集するには、viコマンドを使います。

書式:
vi△設定ファイルのパス

viエディタは、コマンドモード挿入モードの2パターンあるので気お付けましょう。

テキストを開いた時点では、コマンドモード状態になっています。

文字を入力するには、iキーを押下します。

TeraTermの下記の画面のように— INSERT —という文字が表示されるので、この状態が挿入モードとなります。



それでは挿入モードでファイルを編集しましょう。

[root@vpsyarou ~]# vi /etc/tripwire/twcfg.txt ← Tripwire設定ファイル(テキスト版)作成
LOOSEDIRECTORYCHECKING =true ← ファイル変更時に所属ディレクトリの変更を通知しないようにする

REPORTLEVEL   =4 ← リポートレベルを変更する

[root@vpsyarou ~]# twadmin -m F -c /etc/tripwire/tw.cfg -S /etc/tripwire/site.key /etc/tripwire/twcfg.txt ← Tripwire設定ファイル(暗号署名版)作成
Please enter your site passphrase: ← サイトパスフレーズ応答
Wrote configuration file: /etc/tripwire/tw.cfg

[root@vpsyarou ~]# rm -f /etc/tripwire/twcfg.txt ← Tripwire設定ファイル(テキスト版)削除


※Tripwire設定ファイル(テキスト版)を復元する場合は以下のコマンドを実施する。
[root@vpsyarou ~]# twadmin -m f -c /etc/tripwire/tw.cfg > /etc/tripwire/twcfg.txt


設定が完了したら、コマンドモードに戻して保存します。

コマンドモード
に戻すには[Escキー]を入力します。
入力すると先ほど表示されていた— INSERT —という表示が消えているのを確認します。

コマンドモード状態で「:wq」というコマンドを入力して編集を終了させます。
このコマンドの意味は単純で、「:w(保存して)q(終了する)」という意味です。



編集前の画面に戻れば、保存が完了となります。



5:
ポリシーファイル設定を実施します。
ポリシーファイル(twpolmake.pl)を元に作成したデータベースと、現在のファイル状態を比較してファイルが変更されたかどうかを検知してくれます。

デフォルトのポリシーファイルでは存在しないはずのファイルのチェックが有効になっていたり、存在するファイルのチェックが無効になっていたりもします。存在しないファイルのチェックは無効にして、存在するファイルのチェックを有効にするスクリプトを新規に作成します。

先ほどと一緒でviコマンドでファイル名を指定します。


[root@vpsyarou ~]# vi /etc/tripwire/twpolmake.pl ← ポリシーファイル最適化スクリプト作成

こちらについては、以下の内容をそのままコピペして貼り付けます。
貼りつける際は必ず挿入モードにした状態で右クリックからコピーか、TeraTermでは[Altキー]+vで貼りつけられます。


#!/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) ;

貼りつけ後は、コマンドモードに戻して「:wq」で保存します。


次に以下のコマンドを実行しましょう。

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

[root@vpsyarou ~]# echo ! "/var/lib/tripwire/`hostname`.twd ;" >> /etc/tripwire/twpol.txt.new ← Tripwireデータベース自体をチェック対象外にする

[root@vpsyarou ~]# echo ! "/tmp/tripwire.log ;" >> /etc/tripwire/twpol.txt.new ← Tripwireログをチェック対象外にする※後述のTripwire定期自動実行スクリプトで使用

[root@vpsyarou ~]# 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@centos ~]# rm -f /etc/tripwire/twpol.txt* ← ポリシーファイル(テキスト版)削除

[root@vpsyarou ~]# tripwire -m i -s -c /etc/tripwire/tw.cfg ← Tripwireデータベース作成

Please enter your local passphrase: ← ローカルパスフレーズ応答


6:
それでは実際にtripwireのチェックを実行して改ざんされていないかをチェックします。

[root@vpsyarou ~]# tripwire -m c -s -c /etc/tripwire/tw.cfg ← Tripwireチェック実行
Open Source Tripwire(R) 2.4.3.1 Integrity Check Report

Report generated by:          root
Report created on:            2017年01月26日 10時33分26秒
Database last updated on:     Never

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

Host name:                    vpsyarou.vpsyarou.com
Host IP address:              xxx.xxx.xxx.xxx
Host ID:                      None
Policy file used:             /etc/tripwire/tw.pol
Configuration file used:      /etc/tripwire/tw.cfg
Database file used:           /var/lib/tripwire/centos.centossrv.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
  ---------                       --------------    -----    -------  --------
  User binaries                   66                0        0        0
  Tripwire Binaries               100               0        0        0
  Libraries                       66                0        0        0
  Operating System Utilities      100               0        0        0
  File System and Disk Administraton Programs
                                  100               0        0        0
  Kernel Administration Programs  100               0        0        0
  Networking Programs             100               0        0        0
  System Administration Programs  100               0        0        0
  Hardware and Device Control Programs
                                  100               0        0        0
  System Information Programs     100               0        0        0
  Application Information Programs
                                  100               0        0        0
  (/sbin/rtmon)
  Critical Utility Sym-Links      100               0        0        0
  Shell Binaries                  100               0        0        0
  Critical system boot files      100               0        0        0
  Tripwire Data Files             100               0        0        0
  System boot changes             100               0        0        0
  OS executables and libraries    100               0        0        0
  Critical configuration files    100               0        0        0
  Security Control                100               0        0        0
  Login Scripts                   100               0        0        0
  Root config files               100               0        0        0
  Invariant Directories           66                0        0        0
  Temporary directories           33                0        0        0
  Critical devices                100               0        0        0
  (/proc/kcore)

Total objects scanned:  47479
Total violations found:  0 ← 変更なし

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

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

No violations.

===============================================================================
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.

[root@vpsyarou ~]# echo test > test.txt ← 試しにテストファイルを作成する

[root@vpsyarou ~]# tripwire -m c -s -c /etc/tripwire/tw.cfg ← Tripwireチェック再実行
Open Source Tripwire(R) 2.4.3.1 Integrity Check Report

Report generated by:          root
Report created on:            2017年01月26日 10時37分34秒
Database last updated on:     Never

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

Host name:                    vpsyarou.vpsyarou.com
Host IP address:              xxx.xxx.xxx.xxx
Host ID:                      None
Policy file used:             /etc/tripwire/tw.pol
Configuration file used:      /etc/tripwire/tw.cfg
Database file used:           /var/lib/tripwire/vpsyarou.vpsyarou.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
  ---------                       --------------    -----    -------  --------
  User binaries                   66                0        0        0
  Tripwire Binaries               100               0        0        0
  Libraries                       66                0        0        0
  Operating System Utilities      100               0        0        0
  File System and Disk Administraton Programs
                                  100               0        0        0
  Kernel Administration Programs  100               0        0        0
  Networking Programs             100               0        0        0
  System Administration Programs  100               0        0        0
  Hardware and Device Control Programs
                                  100               0        0        0
  System Information Programs     100               0        0        0
  Application Information Programs
                                  100               0        0        0
  (/sbin/rtmon)
  Critical Utility Sym-Links      100               0        0        0
  Shell Binaries                  100               0        0        0
  Critical system boot files      100               0        0        0
  Tripwire Data Files             100               0        0        0
  System boot changes             100               0        0        0
  OS executables and libraries    100               0        0        0
  Critical configuration files    100               0        0        0
  Security Control                100               0        0        0
  Login Scripts                   100               0        0        0
* Root config files               100               1        0        0
  Invariant Directories           66                0        0        0
  Temporary directories           33                0        0        0
  Critical devices                100               0        0        0
  (/proc/kcore)

Total objects scanned:  47480
Total violations found:  1 ← 1件の変更を検知した

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

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

-------------------------------------------------------------------------------
Rule Name: Root config files (/root)
Severity Level: 100
-------------------------------------------------------------------------------

===============================================================================
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.

[root@vpsyarou ~]# cd /var/lib/tripwire/report/
[root@vpsyarou report]# ls -l ←下記で表示されたファイル名を確認しておく。

-rw-r--r-- 1 root root  8598  2月 24 07:46 vpsyarou.com-20200224-074645.twr

[root@vpsyarou report]# cd
[root@vpsyarou ~]# ← /root配下に移動していることを確認する。

[root@vpsyarou ~]# twprint -m r --report-level 1 -c /etc/tripwire/tw.cfg -r /var/lib/tripwire/report/vpsyarou.vpsyarou.com-20200224-074645.twr ← チェック結果サマリの参照。ファイル名は、ls -l コマンドで作成されていたファイル名に置き換えてください。

Note: Report is not encrypted.
Added:  "/root/test.txt" ← /root/test.txtの追加を検知した

[root@vpsyarou ~]# rm -f test.txt ← テストファイル削除(後始末)

実行した内容としては、/rootディレクトリ配下にtext.txtを新規に作成し、Tripwireを実行した結果、「added: “/root/test.txt”」と表示され、ファイルが新規に作成されたことが検知されているので、tripwireが正常に動作していることを確認できましたね。

Tripwireの設定は以上となります。

【第11回】ではウイルス対策ソフトを導入します。
Windowsパソコンでいうと、ウイルスバスターのLinux版みたいな感じでイメージしていただければ分かりやすいかなと。(実際は違うかもですが…)

本日もお疲れ様でした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)