IDSの導入。

自宅サーバでやることがなくなってきたので、とりあえずセキュリティを強化するためにSnortっていうIDSを導入した。

今回は、せっかくパッケージが用意されてるんだからってことでyumで導入することにした。
yumでパッケージを見てみると・・・MySQLやPostgreSQLに対応したものと、その後ろに+flexrespって書いてあるものが出てきた。
あとは、bloatってなってるやつ。
flexrespって言うのはあらかじめ設定した内容を含むパケットが流れた場合、強制的に切断するって機能らしい。
んで、bloatってのは、MySQL、PostgreSQLなどいろいろ対応したバージョンっぽい。

ってことで、以下のコマンドを発行し、インストールする。

# yum install snort-bloat

実行すると、snort本体と、bloatの追加ファイルがインストールされる旨のメッセージが表示される。

「y」を押下して実行。

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 snort-bloat             i386       2.6.1.1-4.fc6    extras            273 k
Installing for dependencies:
 snort                   i386       2.6.1.1-4.fc6    extras            1.3 M

Transaction Summary
=============================================================================
Install      2 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 1.6 M
Is this ok [y/N]: y

~省略~

Installed: snort-bloat.i386 0:2.6.1.1-4.fc6
Dependency Installed: snort.i386 0:2.6.1.1-4.fc6
Complete!

インストールが終了したらsnortのコンフィグを修正する。

# vi /etc/snort/snort.conf
自宅のプライベートアドレスを指定する。
- var HOME_NET any
+ var HOME_NET 192.168.1.0/24

自宅のプライベートアドレス以外と指定する。
- var EXTERNAL_NET any
+ var EXTERNAL_NET !$HOME_NET

ルールファイルの場所を変更する。
- var RULE_PATH /etc
+ var RULE_PATH /etc/snort/rules

MySQLにログを保存する設定を行う。
- # output database: log, mysql, user=root password=test dbname=db host=localhost
+ output database: log, mysql, user=snort password=password dbname=snort host=localhost

共有ライブラリの場所を修正する。
- dynamicengine /usr/lib/dynamicengine/libsf_engine.so
+ dynamicengine /usr/lib/snort/dynamicengine/libsf_engine.so

DCE/RPCのモジュールはインストールされないので読み込まないようにする。
- preprocessor dcerpc: 
-     autodetect 
-     max_frag_size 3000 
-     memcap 100000
+ #preprocessor dcerpc: 
+ #    autodetect 
+ #    max_frag_size 3000 
+ #    memcap 100000

とりあえずこれでsnortのコンフィグの設定は終了。

次に、起動ファイルを修正してデータベースに保存できるようにする。

# vi /etc/init.d/snortd
-         daemon /usr/sbin/snort -A fast -b -l /var/log/snort -d -D 
+         daemon /usr/sbin/snort -b -l /var/log/snort -d -D 

MySQLにユーザを作成し、コンフィグに指定したユーザで接続できるようにする。 

# mysql -p
Enter password: (パスワードを入力)
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 25 to server version: 5.0.27

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

snortのログを保存するDBにアクセスできるユーザを作成。
mysql> grant all on snort.* to [email protected] identified by 'password';
Query OK, 0 rows affected (0.00 sec)

snortのログを保存するDBを作成。
mysql> create database snort;
Query OK, 1 row affected (0.01 sec)

snortで利用するデータベースのテーブル構造などを作成するファイルがある場所に移動し、テーブルなどを作成する。

# cd /usr/share/doc/snort-2.6.1.1/
cat create_mysql | mysql -usnort -p -D snort
Enter password: (パスワードを入力)

これで、snortを動かすための下準備は完了。

あとは、snortのルールをダウンロードして、/etc/snort/rulesに保存するだけでOK。

# wget http://www.snort.org/pub-bin/downloads.cgi/Download/vrt_pr/snortrules-pr-2.4.tar.gz

~省略~

05:24:27 (2.67 MB/s) - `snortrules-pr-2.4.tar.gz' を保存しました [789097/789097]
# wget http://www.snort.org/pub-bin/downloads.cgi/Download/comm_rules/Community-Rules-CURRENT.tar.gz

~省略~

05:25:07 (468 KB/s) - `Community-Rules-CURRENT.tar.gz' を保存しました [110044/110044]

# tar zxvf snortrules-pr-2.4.tar.gz
# tar zxvf Community-Rules-CURRENT.tar.gz
# mv rules /etc/snort

これで全てが終了したので、snortを実際に起動する。

# /etc/init.d/snortd start
Starting snort:                                            [  OK  ]

最後に、サーバを再起動した際など、自動的に起動するように設定する。

# chkconfig snortd on

  1. コメントはまだありません。

  1. トラックバックはまだありません。