CentOS 6
Sponsored Link

Snort - ネットワーク型IDS
2015/04/05
 
ネットワーク型IDS ( Intrusion Detection System - 侵入検知システム ) Snort をインストールします。
[1] Snort をビルドするのに必要なパッケージをインストールしておきます。
# EPELからインストール

[root@dlp ~]#
yum --enablerepo=epel -y install gcc make rpm-build autoconf automake flex libpcap-devel bison libdnet libdnet-devel mysql-devel pcre-devel php-mysql
[2] Snort に必要な Daq をインストールします。以下の Snort サイトで最新版を確認してダウンロードしてください。
⇒ https://www.snort.org/downloads
[root@dlp ~]#
wget https://www.snort.org/downloads/snort/daq-2.0.4.src.rpm
[root@dlp ~]#
rpmbuild --rebuild daq-2.0.4.src.rpm

[root@dlp ~]#
rpm -Uvh ./rpmbuild/RPMS/x86_64/daq-2.0.4-1.x86_64.rpm

Preparing...         ############################## [100%]
   1:daq             ############################## [100%]
[3] Snort をインストールします。Daq と同様に Snort サイトで最新版を確認してダウンロードしてください。
[root@dlp ~]#
wget https://www.snort.org/downloads/snort/snort-2.9.7.2-1.src.rpm
[root@dlp ~]#
rpm -Uvh snort-2.9.7.2-1.src.rpm

   1:snort          ############################## [100%]
[root@dlp ~]#
vi ./rpmbuild/SPECS/snort.spec
SNORT_BASE_CONFIG="--prefix=%{_prefix} \
                   --bindir=%{_sbindir} \
                   --sysconfdir=%{_sysconfdir}/snort \
                   --with-libpcap-includes=%{_includedir} \
                   --enable-targetbased \
                   
# 133行目:追記

                   --enable-zlib \
                   --enable-ipv6 \
                   --enable-normalizer \
                   --enable-sourcefire \
                   --enable-control-socket"

[root@dlp ~]#
rpmbuild -bb ./rpmbuild/SPECS/snort.spec

[root@dlp ~]#
rpm -Uvh ./rpmbuild/RPMS/x86_64/snort-2.9.7.2-1.x86_64.rpm

Preparing...         ############################## [100%]
   1:snort           ############################## [100%]
[4]
Snort のルールファイルを入手します。入手には以下のサイトでのユーザー登録が必要です。
⇒ https://www.snort.org/users/sign_up
ユーザー登録後、以下よりサインインして最新のルールファイルをダウンロードし、サーバーにアップロードします。 ダウンロードするファイルは「snortrules-snapshot-xxxx.tar.gz」です。
⇒ https://www.snort.org/users/sign_in
サーバーにアップロード後、以下のようにルールファイルを配置しておきます。
[root@dlp ~]#
tar zxvf snortrules-snapshot-2972.tar.gz

[root@dlp ~]#
mv rules so_rules preproc_rules /etc/snort/

mv: overwrite `/etc/snort/rules'? y
[5] Snort を設定して起動します。
[root@dlp ~]#
vi /etc/snort/snort.conf
# 45行目:自ネットワークに変更

ipvar HOME_NET
10.0.0.0/24
# 48行目:変更 (外部ネットは自ネット以外と定義)

ipvar EXTERNAL_NET
!$HOME_NET
# 105行目:変更

var SO_RULE_PATH
/etc/snort/so_rules

var PREPROC_RULE_PATH
/etc/snort/preproc_rules
# 113行目:変更

var WHITE_LIST_PATH
/etc/snort/rules

var BLACK_LIST_PATH
/etc/snort/rules
[root@dlp ~]#
vi /etc/sysconfig/snort
# 15行目:監視するインターフェースに変更 (全ての場合は「ALL」)

INTERFACE=
eth0
[root@dlp ~]#
mkdir /usr/local/lib/snort_dynamicrules

[root@dlp ~]#
chown snort. /usr/local/lib/snort_dynamicrules

[root@dlp ~]#
touch /etc/snort/rules/white_list.rules /etc/snort/rules/black_list.rules

[root@dlp ~]#
/etc/rc.d/init.d/snortd start

Starting snort: Spawning daemon child...
My daemon child 12623 lives...
Daemon parent exiting (0)
[6] ローカルルールを登録して動作確認します。
[root@dlp ~]#
vi /etc/snort/rules/local.rules
# 最終行に追記:ポートスキャンを監視する

preprocessor sfportscan: proto { all } memcap { 10000000 } sense_level { low }
[root@dlp ~]#
/etc/rc.d/init.d/snortd restart

Starting snort: Spawning daemon child...
My daemon child 12623 lives...
Daemon parent exiting (0)
# 自ネットワーク内の任意のホストからポートスキャンすると以下のようにログが記録される

[root@dlp ~]#
cat /var/log/snort/alert

04/05-15:34:09.052709  [**] [122:1:1] (portscan) TCP Portscan [**] [Classification: Attempted Information Leak] 
                       [Priority: 2] {PROTO:255} 10.0.0.249 -> 10.0.0.30
 
Tweet