Snort が監視対象とするネットワークの設定を行います。
どこに設置するか、つまりネットワーク構成やハードウェア構成によって適切な設定は異なります。また、Snort は結構リソースを消費します。(特にメモり) WAN / LAN 双方に監視する場合は、それぞれ snort デーモンが起動しますので更に多くのメモリを必要とします。
自分に届くパケット以外を監視する必要がない場合、NIC はプロミスキャスモードで動作する必要がありませんし、自分宛に届く不正パケットの検出といった目的によっても変わってきます。また、ファイアウォールによっても監視できるパケットは異なります。
参考URL => Q: Snortセンサーを設置するよい場所はどこですか?
Snort の設定は /etc/snort/snort.conf で行います。以下、設定例です。
Snort が監視するネットワークに関する設定は、以下で行います。
# ローカルエリアを指定します。つまり、監視対象とするネットワークです。
var HOME_NET 192.168.1.0/24
# 複数のネットワークを指定する場合は
ver HOME_NET [192.168.1.0/24,192.168.0.0/24]
# 外部ネットワークを指定します。
# 以下の例では上記HOST_NET以外を外部ネットワークとし
# 攻撃を監視することになります。
var EXTERNAL_NET !$HOME_NET
監視サーバーの指定(設定例)
ネットワークに繋がるサーバーを指定します。当然ですが Snort がプロミスキャスモードで監視できるネットワークである必要があります。デフォルトでは $HOME_NET any となっています。絞り込む場合は、同じ要領で指定します。
DNSサーバーの指定
# List of DNS servers on your network
var DNS_SERVERS $HOME_NET
メールサーバーの指定
# List of SMTP servers on your network
#var SMTP_SERVERS $HOME_NET
var SMTP_SERVERS [192.168.1.0/24,192.168.0.0/24]
ここでは MySQL へログを出力しアーカイブし、ACID により統計を視覚的に把握する事を目的としています。先に出力先の MySQL データベースを指定しておきます。
データベース作成については後述します。
# ルールパスを変更 /etc/snort/rules としたので
# var RULE_PATH ../rule
# ↓
var RULE_PATH ./rules
# mySQLに出力するデータベースとアカウントを指定
output database: log, mysql, user=snort password=***** dbname=snort_db host=localhost
ネットワーク環境の設定の他に、 下の方に Snort が使用しないルールセットはコメントアウトされています。必要があればコメントを外し有効にします。
include $RULE_PATH/nntp.rules
include $RULE_PATH/other-ids.rules
# include $RULE_PATH/web-attacks.rules
# include $RULE_PATH/backdoor.rules
nclude $RULE_PATH/web-iis.rules
例えば、上記は IIS Webサーバーに関する攻撃を検知するルールですが、自分自身への不正アクセスを監視する目的であれば必要ありません。
Snort の特徴としてプリプロセッサによる機能拡張設定があります。これは、ルールセットによる検知に対して、更に微かなチューニングを行ったり新たに機能を追加 する事もできます。実際に運用を始めてから必要があれば、これらのチューニングを行います。
例えば、プリプロセッサ http_inspect_server では HTTPトラフィックおよび プロトコル上の例外の正規化・検出が行えます。これを修正する事で、誤検知に関するチューニングや機能拡張が行えます。許可されていない proxy サーバー検出機能を拡張する事も可能です。
参照URL => プリプロセッサ
参照URL => @IT:Snortでつくる不正侵入検知システム ~ プリプロセッサについて
参照URL =>@IT:Snortでつくる不正侵入検知システム2 ~ http_inspect_server
Snort の基本的な設定は出来ましたが、この段階ではルールセットがありません。また、検出した不正パケットを出力する MySQL データベースもありませんのでまだ起動できる常態にありません。次は、Snort が使用する MySQL データベースを準備します。