Snort をインストールする
Snort はオープンソースの NIDS (Network Intrusion Detection System) です。
ネットワーク上を流れるパケットを監視するとにより、
システムへの侵入を図ろうとする兆候を捉えるシステムです。
NIDS からのアラームに適切に対応することにより、
システムのセキュリティを向上することができます。
現在の最新安定版は、2.0.5 (2003/11/20 リリース) です。
2.0.6 が 2003/12/18 にリリースされています。 2.0系の最終版です。
2.2.0 が 2004/08/11 にリリースされています。
-
ソースを展開します。
% tar xzvf …/snort-2.0.5.tar.gz
% cd snort-2.0.5
-
configureを実行し、makeします。
% ./configure --prefix=/usr/local/snort
% make
-
グループIDを追加します。 /etc/group に以下のような設定を追加します。
snort:*:48:
-
ユーザIDを追加します。 vipw コマンドで以下のような設定を追加します。
snort:*:48:48::0:0:Network Intrusion Detection System:/usr/local/snort:/sbin/nologin
-
インストールします。 /usr/local/snort の下に格納されます。
% su
# make install
# mkdir /usr/local/snort/etc /usr/local/snort/rules
# cp etc/*.conf etc/*.config /usr/local/snort/etc
# cp rules/*.rules /usr/local/snort/rules
# mkdir /var/log/snort
# chmod 700 /var/log/snort
# chown snort:snort /var/log/snort
-
設定ファイル /usr/local/snort/etc/snort.conf を編集します。
説明がコメントとして書かれているので、それに従って設定します。
少なくとも、以下の項目を設定する必要があると思います。
なお、ここに挙げた値はサンプルであり、環境に合わせて調整が必要です。
var HOME_NET [192.168.0.0/24,192.168.1.0/24]
var DNS_SERVERS [192.168.1.10]
preprocessor portscan-ignorehosts: $HOME_NET ← この行は追加。
-
起動の設定を /etc/rc.local に記述します。
起動オプションの -i のパラメタ "rl1" は監視対象のネットワークインタフェースです。
環境に合わせて、適切なものを指定する必要があります。
echo -n ' snort'
/usr/local/snort/bin/snort -D -i rl1 \
-c /usr/local/snort/etc/snort.conf -t /var/log/snort -u snort -g snort
起動オプションの -t は chroot して実行することを指示します。
これを指定した場合のログの出力先ですが、man snort の説明と異なり、
-l オプションで指定されたパス(デフォルトは /var/log/snort)がそのまま使用されます。
ただし、そのパスは chroot した配下を指すものでなければなりません。
-
必要に応じて、シグネチャファイル(検出のルール定義)を調整します。
設定ファイル /usr/local/snort/etc/snort.conf を編集することで、
どのシグネチャファイルを使う/使わないを設定できます。
例えば、Windows の IIS を使っていない環境であれば、
web-iis.rules を include している箇所をコメントにすることにより、
IIS を狙った攻撃を検出しなくなり、無駄な警告を減らすことができます。
また、シグネチャファイルの内容を調整したり、
新たな定義を追加することもできます。
-
ログファイルを確実にチェックする手順を確立します。
snort は、標準の設定のままでは、侵入の兆候を検出しログファイルに書き込むことはしますが、
それ以上の対応はしないので、ログファイルをチェックしないと動かす意味がありません。
それぞれの環境に合わせて、ツールを利用するなどして確実に確認できる手順を構築するべきです。
ここでは取り上げませんが、コンパイル時オプションで通知機能を組み込むことも可能なようです。
-
必要に応じて、シグネチャファイル(検出のルール定義)を更新します。
新しいルールが、随時、追加されています。
定期的にチェックして、更新するようにしましょう。