CentOS 5
Sponsored Link

Snort - ネットワーク型IDS2008/08/15

  ネットワーク型IDS(Intrusion Detection System - 侵入検知システム)の Snort を導入します。 ホスト型の Tripwire に対して、 ネットワーク型の Snort はネットワーク上のパケットを監視します。

[1] まずは Snort のインストールと設定をします。最新版を確認後 wget で取得してください。
[root@www ~]#
wget http://www.snort.org/dl/binaries/linux/snort-2.8.2.1-1.RH5.i386.rpm


[root@www ~]#
rpm -Uvh snort-2.8.2.1-1.RH5.i386.rpm

Preparing...     ############################ [100%]
   1:snort     ############################ [100%]
[root@www ~]#
vi /etc/snort/snort.conf


# 46行目:内部ネットワークに変更

var HOME_NET
192.168.0.0/24


# 49行目:内部は監視対象外にする

var EXTERNAL_NET
!$HOME_NET


[root@www ~]#
vi /etc/logrotate.d/snort


# 4行目:後ろ2つを削除

/var/log/snort/alert /var/log/snort/*log {
[2] ルールファイルを入手するためにユーザー登録してログインする必要があります。 ここから登録してログインし、 「snortrules-snapshot-CURRENT.tar.gz」をダウンロードします。 その後、ダウンロードしたファイルをサーバーにアップロードしておきます。

[3] アップロードしたルールファイルをインストールし、snort を起動します。
[root@www ~]#
tar zxvf snortrules-snapshot-CURRENT.tar.gz

[root@www ~]#
cp -r rules/* /etc/snort/rules/

[root@www ~]#
rm -rf doc etc rules so_rules

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

Starting snort:    [  OK  ]
[root@www ~]#
chkconfig snortd on
[4] Webブラウザで Snort のログを確認できるように SnortSnarf をインストールします。
[root@www ~]#
yum --enablerepo=dag install perl-Time-module

[root@www ~]#
wget http://www.snort.org/dl/contrib/data_analysis/snortsnarf/SnortSnarf-050314.1.tar.gz

[root@www ~]#
tar zxvf SnortSnarf-050314.1.tar.gz

[root@www ~]#
mkdir /usr/local/bin/snortsnarf

[root@www ~]#
cp SnortSnarf-050314.1/snortsnarf.pl /usr/local/bin/snortsnarf/

[root@www ~]#
cp -r SnortSnarf-050314.1/include /usr/local/bin/snortsnarf/

[root@www ~]#
vi /usr/local/bin/snortsnarf/include/SnortSnarf/HTMLMemStorage.pm


# 290行目:変更 ('->' を削除)

return @arr[($first-1)..$end];

[root@www ~]#
vi /usr/local/bin/snortsnarf/include/SnortSnarf/HTMLAnomMemStorage.pm


# 266行目:変更 ('->' を削除)

return @arr[($first-1)..$end];

[root@www ~]#
vi /etc/httpd/conf.d/snort.conf


Alias /snort /var/www/snort

<Location /snort>
   Order deny,allow
   Deny from all
  
# アクセス許可IP

   Allow from 127.0.0.1 192.168.0
</Location>


[root@www ~]#
/etc/rc.d/init.d/httpd restart

Stopping httpd:     [  OK  ]
Starting httpd:     [  OK  ]
# 起動スクリプト作成

[root@www ~]#
vi snortsnarf.sh

#!/bin/bash

cd /usr/local/snortsnarf
if [ -s /var/log/snort/alert ]; then
    if [ -s /var/log/snort/portscan.log ]; then
       ./snortsnarf.pl -dns -d /var/www/snort /var/log/snort/alert /var/log/snort/portscan.log
    else
       ./snortsnarf.pl -dns -d /var/www/snort /var/log/snort/alert
    fi
fi


[root@www ~]#
chmod 700 snortsnarf.sh

[root@www ~]#
./snortsnarf.sh
   
# 実行

[root@www ~]#

*/10 * * * * /root/snortsnarf.sh
   
# 10分おきに実行
[5] ブラウザでサーバーにアクセスすると、以下のように SnortSnarf のページが表示され、 Snort のログを見ることができます。
 
[6] 試しに他ホストから Snort のサーバーへ nmap でポートスキャンしてみて ロギングされるか確認してみます。以下のように正常に記録されています。
 
[7] ルールファイルの最新化を自動で行う Oinkmaster をインストールしておきます。最新化にはコードが必要なため、 ログインして「Get Code」ボタンを押し、 コードを取得して控えておきます。
[root@www ~]#
wget http://jaist.dl.sourceforge.net/sourceforge/oinkmaster/oinkmaster-2.0.tar.gz 

[root@www ~]#
tar zxvf oinkmaster-2.0.tar.gz

[root@www ~]#
cp oinkmaster-2.0/oinkmaster.pl /usr/local/bin/

[root@www ~]#
cp oinkmaster-2.0/oinkmaster.conf /etc/

[root@www ~]#
rm -rf oinkmaster-2.0

[root@www ~]#
vi /etc/oinkmaster.conf


# 55行目:コメント解除し取得したコードに変更

url = http://www.snort.org/pub-bin/oinkmaster.cgi/
(コード)
/snortrules-snapshot-CURRENT.tar.gz

[root@www ~]#
oinkmaster.pl -o /etc/snort/rules/
 
# 実行

Loading /etc/oinkmaster.conf
Downloading file from http://www.snort.org/pub-bin/oinkmaster.cgi/*oinkcode*/snortrules-snapshot-CURRENT.tar.gz... done.
Archive successfully downloaded, unpacking... done.
Setting up rules structures...
WARNING: duplicate SID in your local rules, SID 3017 exists multiple times, you may need to fix this manually!
done.
Processing downloaded rules... disabled 0, enabled 0, modified 0, total=12183
Setting up rules structures...
WARNING: duplicate SID in your local rules, SID 3017 exists multiple times, you may need to fix this manually!
done.
Comparing new files to the old ones... done.

[***] Results from Oinkmaster started 20080621 23:56:39 [***]

[*] Rules modifications: [*]
   None.

[*] Non-rule line modifications: [*]
   None.

[*] Added files: [*]
   None.

# 起動スクリプト作成

[root@www ~]#
vi oinkmaster.sh

#!/bin/sh

/usr/bin/oinkmaster.pl -o /etc/snort/rules/ 2>&1 | logger -t oinkmaster
/etc/rc.d/init.d/snortd restart > /dev/null


[root@www ~]#
chmod 700 oinkmaster.sh

[root@www ~]#
./oinkmaster.sh
   
# 実行

[root@www ~]#

0 1 * * * /root/oinkmaster.sh
   
# 毎日1時に実行
関連コンテンツ