Snort - ネットワーク型IDS2015/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 ~]#
[root@dlp ~]# wget https://www.snort.org/downloads/snort/daq-2.0.4.src.rpm 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 ~]#
[root@dlp ~]# wget https://www.snort.org/downloads/snort/snort-2.9.7.2-1.src.rpm 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
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 |
Sponsored Link |