Snort
その他のめも
いわゆる IDS と呼ばれるものです。
IDS とは侵入検知システム(Intrusion Detection System)の略で、不正アクセスや不正パケットを検知するシステムのことです。
IDS を装備することにより、セキュリティレベルを上げることが期待できます。
インストール
snort-2.0.0 の例です。
まず、Snort 公式サイト からアーカイブを取得し、解凍、展開します。
% gzip -dc snort-2.0.0.tar.gz | tar xvf - % cd snort-2.0.0
あとはお決まりのパターン。
% ./configure % make % su # make install
設定
まず、snort の設定ファイル類を置くディレクトリを作成します。(例えば /var/snort)
そこに snort.conf *.rules classification.config sid-msg.map reference,config を全てコピーします。(*.rules は rules ディレクトリ以下にあります)
次に snort.conf を編集します。
コメントが書かれている(英語ですが)ので読めばだいたい分かると思います。
主な設定内容は以下のとおり。
項目 | 内容 | |
---|---|---|
HOME_NET | "監視対象となる自ネットワークの設定。 ここで指定したネットワーク宛のパケットを監視対象とします。 設定例: var HOME_NET [192.168.0.0/24 | 192.168.1.0/24] var HOME_NET 192.168.0.1/32 var HOME_NET any # 監視対象は全て" |
EXTERNAL_NET | 監視対象となるの外部ネットワークの設定。 ここで指定したネットワークからのパケットを監視対象とします。 通常は any でしょう。 | |
?????_SERVERS | 各サーバの監視対象となるネットワークの設定。$HOME_NET でいいのでは? | |
?????_PORTS | 各サービスの監視対象となるポートの指定。 | |
RULE_PATH | ルールファイルのあるディレクトリ。相対指定OK。 | |
include ??? | 設定ファイルのインクルード |
起動方法
以下のような感じ。
# /usr/local/bin/snort -u snort -g snort -de -k none -A full -c /var/snort/snort.conf -l /var/snort/logs
-u, -g は実行時のユーザ・グループ。
-k none はチェックサムモードの使用を行わない指定。つまり高速。
-c で設定ファイルの指定、-l でログの出力先の指定。
上記オプションでは /var/snort/logs 以下に alert ファイルと snort のログが出力されます。
ちなみに、-D でデーモンで動きます。
SnortSnarf
Snort の出力は単なるログの出力なので、通常は出力を加工して人間の見やすい形にします。
SnortSnarf はそのためのツールで Snort の出力を集計し、結果を HTML として出力します。
インストールはとても簡単。
Snort公式サイトのsnortsnarfよりアーカイブをダウンロードして、解凍し、その中にある snortsnarf.pl と inclede を適当な場所へ配置すれば終了です。
実行方法は以下のような感じ。
% snortsnarf.pl -d Html /var/snort/log/alert
上記の例だと、/var/snort/log/alert を解析し、Html 以下のディレクトリに結果 HTML を出力します。
ちなみに alert ファイルは複数指定可能です。
ルールセットの更新
セキュリティ情報は絶えず更新されていますので snort ではルールセットを常に最新にしておかなければあまり意味がありません。
もちろん自力でルールセットを書いてもいいんですが、それはあまりにも大変。
そこで Oinkmaster というツールを使用します。
インストールは簡単。
Oinkmaster の公式サイトよりアーカイブをダウンロードして、解凍し、その中にある oinkmaster.pl と oinkmaster.conf を適当なディレクトリに配置すれば完了です。
実行方法は以下のような感じ。
% oinkmaster.pl -o /Project/snort/rules -C oinkmaster.conf
-b を指定するとバックアップ先のディレクトリを指定することができます。