Fedora Core 4 SnortSnaf



SnortSnafとは・・・

Snortの検知ログをWeb上で確認できるユーティリティーです。
日本語化ユーティリティーもあるので同時にインストールします。

cpan2rpmの入手・インストール

SnortSnafのインストールに必要な cpan2rpm をインストールします。
これはPerlモジュールをRPMパッケージでインストール可能にするためのモジュールです。
span2rpmの公式サイト http://perl.arix.com/cpan2rpm/ から最新版を確認してダウンロードします。

# wget ftp://arix.com/cpan2rpm-2.028-1.noarch.rpm
# rpm -ivh cpan2rpm-2.028-1.noarch.rpm

Perlモジュール Time-modulesのインストール

SnortSnafに必要な PerlモジュールのTime-modules をインストールします。

# cpan2rpm --install Time-modules

yumの自動UpdateからTime-modulesを除外する設定を追加します。

# vi /etc/yum.conf

下記を追記します。

exclude=snort perl-Time-modules

※2つ以上列記する場合は半角スペースで区切って記述します。

SnortSnafのインストール

SnortSnafの公式サイト http://www.snort.org/dl/contrib/data_analysis/snortsnarf/ から最新版を確認してダウンロードします。

# wget http://www.snort.org/dl/contrib/data_analysis/snortsnarf/SnortSnarf-050314.1.tar.gz

入手したファイルを展開します。

# tar xzf SnortSnarf-050314.1.tar.gz

インストール先ディレクトリを作成

# mkdir /usr/local/snortsnarf

SnortSnafの関連ファイルをコピー

# cp SnortSnarf-050314.1/snortsnarf.pl /usr/local/snortsnarf/
# cp -r SnortSnarf-050314.1/include/ /usr/local/snortsnarf/

SnortSnafの設定

SnortSnafで特定のエラーメッセージが出力されることがあります。
その対処を設定ファイルに記述します。 テキストエディタで /usr/local/snortsnarf/include/SnortSnarf/HTMLMemStorage.pm を開きます。

# vi /usr/local/snortsnarf/include/SnortSnarf/HTMLMemStorage.pm

下記の内容を修正します。

    return @arr->[($first-1)..$end];
     ↓
    return @arr[($first-1)..$end];

次にテキストエディタで /usr/local/snortsnarf/include/SnortSnarf/HTMLAnomMemStorage.pm を開きます。

# vi /usr/local/snortsnarf/include/SnortSnarf/HTMLAnomMemStorage.pm

下記の内容を修正します。

   return @arr->[($first-1)..$end];
     ↓
   return @arr[($first-1)..$end];

Webサーバー側の設定

SnortSnafによるHTML出力先を作成します。
これは各自運営されているディレクトリに合わせて変更してください。

# mkdir /var/www/snort

SnortSnaf用のWeb設定ファイルを作成します。
テキストエディタで 新規に /etc/httpd/conf.d/snort.conf を作成します。

# vi /etc/httpd/conf.d/snort.conf

下記の内容を記載します。

Alias /snort /var/www/snort
<Location /snort>
  Order deny,allow
  Deny from all
  Allow from 127.0.0.1
  Allow from 192.168.1
  Allow from ::1
</Location>

<Location /snort>~</Location>の記述は内部(ローカルネットワーク)からのみアクセスさせる場合のみ記述してください。

Webサーバーに設定を反映させます。

# /etc/rc.d/init.d/httpd reload

SnortSnaf 実行スクリプト作成

テキストエディタで実行スクリプトを作成します。

# vi snortsnarf.sh

下記の内容を記述します。

#!/bin/sh

cd /usr/local/snortsnarf
if [ -s /var/log/snort/alert ]; then
    if [ -s /var/log/snort/portscan.log ]; then
        ./snortsnarf.pl -dns -d /var/www/snort /var/log/snort/alert /var/log/snort/portscan.log
    else
        ./snortsnarf.pl -dns -d /var/www/snort /var/log/snort/alert
    fi
fi

実行パーミションの変更

# hmod 700 snortsnarf.sh

SnortSnafの実行確認

作成した実行スクリプトを起動させて動作を確認します。

# ./snortsnarf.sh

ブラウザで http://サーバーURL/snort/ にアクセスして Start page が表示されることを確認してください。
下記の画面が表示されれば、ここまでの作業はOKです。 &ref(): File not found: "snort-web.gif" at page "Fedora Core 4 SnortSnaf";

SnortSnafの日本語化

現在のSnortSnaf HTML出力用スクリプトを退避させます。

# cd /usr/local/snortsnarf/include/SnortSnarf/
# mv HTMLOutput.pm HTMLOutput.pm.back

http://mt-fuji.ddo.jp/~fujito/Linux/secu_soft/snarf_2.html から最新の日本語化ファイルを入手します。

# wget http://mt-fuji.ddo.jp/~fujito/Linux/secu_soft/s2/HTMLOutput.pm

文字化け対策

このままでは文字コードの関係で文字化けするので Shift-JIS 出力するようにタグを追記します。 テキストエディタで HTMLOutput.pm を開きます。

# vi HTMLOutput.pm

meta タグを追記します。

sub print_page_head {
    my($self,$page_title,$page_type,$page_h2) = @_;

    print "<html>\n<head>\n";
    print "<title>$page_title</title>\n";
    print "<meta http-equiv=\"Content-type\" content=\"text/html; charset=Shift_JIS\">\n";

エラー対策

実行時に特定のエラーが出力されるため対策をします。
先と同様に HTMLOutput.pm を修正します。
テキストエディタで HTMLOutput.pm を開きます。

# vi HTMLOutput.pm

下記のように修正します。

sub ip_to_num {
    #下記を追記し一部をコメント化します
    if ($_[0] ne '*undef*') {
        my @byte= split(/\./,$_[0]);
        return $byte[0]*256*256*256 + $byte[1]*256*256 + $byte[2]*256 + $byte[3];
    }
    #my @byte= split(/\./,$_[0]);
    #return $byte[0]*256*256*256 + $byte[1]*256*256 + $byte[2]*256 + $byte[3];
}

SnortSnaf実行

SnortSnafを再度実行し動作を確認します。

# ./snortsnarf.sh

ブラウザで http://サーバーURL/snort/ にアクセスして 日本語化されたStart page が表示されることを確認してください。

作成したスクリプトをcrontabへ登録します。

# crontab -e

下記の内容を追記します。
(毎時 00分 にスクリプトを起動し、最新ログ結果を更新するようにしています。)

00 * * * * /root/snortsnarf.sh


Last-modified: 2015-04-23 (木) 15:20:35 (964d)