セキュリティ対策 - ネットワーク侵入検知/防止 Snort - snortsnarf 設定

クラウディア 
1. 概要
2. 変更
3. 出力先設定
4. 実行
5. 確認
6. フォント変更

1. 概要

 「snortsnarf」の設定を行います。  本ページは、下記のサイトを参考にさせていただきました。
不正侵入検知システム(snort)」
「Snort + SnortSnarf について」
「SnortSnarf で snort のログをチェックする

2. 変更

 「snortsnarf」は、「perl」のコードでできているのですが、これ、そのまま実行するとこけます(なんだかなぁ)。  2ファイルを1箇所ずつ、変更します。  「root」ユーザ権限で。

vi /usr/local/libdata/snortsnarf/SnortSnarf/HTMLMemStorage.pm

        return @arr->[($first-1)..$end];
 を下記へ変更します。

        return @arr[($first-1)..$end];
 次に

vi /usr/local/libdata/snortsnarf/SnortSnarf/HTMLAnomMemStorage.pm

        return @arr->[($first-1)..$end];
 を下記へ変更します。

        return @arr[($first-1)..$end];
 上記は、参考サイトの受け売りで、ありがたいことです。

3. 出力先の設定

 「snortsnarf」は、「html」形式で結果を出力します。  ウェブサーバ越しに、ブラウザで見ることにします。  「apache24」をウェブサーバとして

http://ドメイン/snortsnarf/
 でアクセスし、下記へコンテンツを配置するものとします。

/usr/local/www/snortsnarf/
 「root」ユーザ権限で。

vi /usr/local/etc/apache24/Includes/snortsnarf.conf
 下記のように記述します。

Alias /snortsnarf       "/usr/local/www/snortsnarf/"

<Directory "/usr/local/www/snortsnarf/">
    DirectoryIndex  index.html
    Options +ExecCGI
	AllowOverride None
	<RequireAll>
		<RequireAny>
			Require ip 192.168.0.0/16
		</RequireAny>
	</RequireAll>
</Directory>
 「LAN」アドレスが、「192.168.0.0/16」で、ローカルからのみアクセスするものとしていますが。  アクセス可能とするネットワークアドレスを、9行目に、スペースで区切って、追加することができます。  誤りがないことを確認して

service apache24 configtest
 問題がなければ、「apache」を再起動。

service apache24 restart

4. 実行

 実行は

snortsnarf -d 出力先パス /ログパス/ログファイル名
 「snort」のログは

/var/log/snort/
 に出力されています。  本サイトの例ですと。  「root」ユーザ権限で。

snortsnarf -d /usr/local/www/snortsnarf /var/log/snort/alert
 で出力します。

5. 確認

 出力したものを見てみます。  ブラウザで、設定した「URL」を見てみます。  アラートが発生したものを、種類別に表示しています。
「snortsnarf」-「トップページ」

 最上位の行の「Summery」をクリックすると。
 侵入元のアドレスごとに、表示されます。

「snortsnarf」-「Summery」

 アドレスをクリックすると。
 そのアドレスのプロファイルを表示してくれます。

「snortsnarf」-「アドレス」

 今んとこ(2023年6月3日)、理解しているのは、ここまでです。

6. フォント変更

 なんか、日本語化できるように書いてあるサイトも多いのですが、日付が古いせいか、どうも、同じようにやっても日本語化できない。  とりあえず、フォントが好みに合わないので、フォントだけは変更できそうなので、やってみます。  「root」ユーザ権限で。

vi /usr/local/libdata/snortsnarf/SnortSnarf/HTMLOutput.pm

    print "<title>$page_title</title>\n";
    print "<META HTTP-EQUIV=\"refresh\" CONTENT=\"$self->{'refreshsecs'}\">" if defined($self->{'refreshsecs'}     ) && $self->{'refreshsecs'} > 0;
 1578行と1579行との間に

    print "<style>\n"; print "body { font-family: \"Noto Sans Mono CJK JP\"; }\n"; print "</style>\n";
 てな行をいれます。  ちょっと、お行儀が悪いですが、1行で書いちゃいました。  「Noto Sans Mono CJK JP」の個所を、自分好みのフォントにすればよかです。  つ~か、「.css」書いて、ここでインクルードさせることもできますね。
ハイスピードプランTSUKUMOネットショップ健康サポート特集U-NEXT