ページ

2009年11月19日木曜日

【CentOS 5.4】 Snort 2.8.5.1 インストール方法

snort 2.8.5.1のインストール方法をするにょろ!!

まだほとんどのサイトで書かれてないんじゃないかな!!!

うぇーい!
やっちまったお!!!

最新版Snortのインストール方法です.
し か も
VMware Server上のCentOS5.4へインストールしました.
もちろんSnortの自動起動もします.

し か し
今回は前提条件がついてます.
(1)Snort用にMySQLの設定済みであること
(2)ログをデータベース等のその他のプログラムへOutputしない.
です.
上記のどちらかに当てはまる方は今回の記事でいけるとおもいます.
(2)の場合で新規でインストールする方は
Snortを動かすためのライブラリ等をインストール
しておいてください.
ライブラリは
・libpcap
・libpcre
でござる.
yumで
yum -y install libpcap-devel libpcap pcre-devel pcre
ってでもやってインストールしてくだしあ.

私もアップグレードだったのでMySQLの設定までは書きたくないにょろ.
近々また新しい環境をCentOSで作るので,その時にでもあげますね.
っていっても仮想で作るのでコピーすれば早いんやけどのぅ・・・
忘れると嫌だからもう1回しようかと!
ちなみに私の環境はSnort+BASE on CentOS 5.4です.
Snortは2.8.4.1-1からのアップグレードでした.
もちろんBASEもMySQL全部自分でインストールしましたさ・・・
今回はCentOS 5.4環境でのインストール方法です.
私の場合はとてもシンプルです.
起動スクリプトも書いてません.(書き換えは少ししました
その上rpmにビルドもしていません!
なんて横着なんだ・・・
いやめんどくさがり屋と言うべきか.


使用したファイル

snort-2.8.5.1-1.RH5.i386.rpm
snort-mysql-2.8.5.1-1.RH5.i386.rpm
snortrules-snapshot-CURRENT.tar.gz


snortをアンインストール

とりあえず,snortとMySQLのサービスをストップしてアンインストールしてください.
その際にはsnort.confファイルを別な場所にバックアップを取っておいてください!

yum remove snort

とすれば早いお!(^ω^)
そうするとsnortのMySQLとの連携パッケージも消えるのでお手軽でござる.
んで,下のコマンドで全部アンインストールされたか確認してくださいな.

yum list | grep snort

で も
実はゴミが残ってるので消しませう.
まだバックアップ取ってない際には/etc/snort/からsnort.confを救出しておいてください.

/etc/snort/    ←snortフォルダごと
/etc/sysconfig/snort    ←snortと名のつくファイル
/etc/rc.d/init.d/snortd   ←snortdと名のつくファイル

上記のフォルダ&ファイルを消しませう.
yumで消すとバックアップファイルみたいなものが勝手に作られてしまうんです.
それが邪魔しちゃうかもしれないので一度消すことをおすすめします.
一掃してくれればいいものの・・・
起動スクリプトを書いた方は起動スクリプトも消すor違う場所に移動させておいてください.
どっちみち書き換えするので消してもOKです.
「わしはュリェみたいな小娘が作った起動スクリプトなんかしやへんわ!」
っていう人は今まで使ってたものを使用してもいいと思います.
ですが,それは絶対に動作保障はしません.
なぜ,こんなに徹底して消去しているかといいますと・・・
消さずにインストールしたら不具合を起こしました(;д;)



Snortインストール

本家から
snort-2.8.5.1-1.RH5.i386.rpm
をDLしてきてください.
あと,
snort-mysql-2.8.5.1-1.RH5.i386.rpm

snortrules-snapshot-CURRENT.tar.gz
もDLしてきてください.
ルールファイルは新しいのを絶対に使用してください.
で下記コマンドでインストールしてください.

rpm -ivh snort-2.8.5.1-1.RH5.i386.rpm

んでルールファイルの展開を行いませう.

tar zxvf snortrules-snapshot-CURRENT.tar.gz

ルールファイルをsnortのフォルダへコピペ

/bin/cp -r rules/* /etc/snort/rules/

ついでなんで展開したものをけしちゃいませう.
rm -rf doc/ rules/ so_rules/ etc/


snort.confの編集

ではsnort.confの編集でもしませう.
アップグレードの方は先ほどバックアップをとったものをコピペして上書きすればOKです.
新規インストールの方は編集しませう.
vi /etc/snort/snort.confでファイルを開く
var HOME_NET any の場所は内側のネットワークアドレスを定義.

var HOME_NET 192.168.2.0/24 

うちの場合は
var HOME_NET [192.168.1.0/24,192.168.2.0/24]
として,複数のアドレスを定義してます.


var EXTERNAL_NET any の場所は不正アクセスとして扱わないものの定義をしませう.

内側からのアクセスを不正と扱わない場合は
var EXTERNAL_NET !$HOME_NET 

うちの場合は内側も外側もすべて監視したいので
var EXTERNAL_NET any
にしてます.

あとはルールファイルの適用をお好みで行ってください.
ちなみにうちの場合はすべて適用してます.
Pingから何から何までの監視を行ってます.
その場合は
include $RULE_PATH/local.rules
から
include $RULE_PATH/experimental.rules
までのコメントアウトの# を消してください.
一応#のとなりにスペースがあると思うんですがそれも消しておくとGood.

データベース(MySQL)を使用の場合

rpm -ivh snort-mysql-2.8.5.1-1.RH5.i386.rpm


で連携パッケージをインストールしてください.



これで一応一通りの作業をしましたので起動確認してください.

service snortd start

起動しましたか?
起動したらOKです.
動作確認は各自でお願いします.
今回はアップグレード目的なので.
そこまで詳しくしてません.
そしたら一旦snortを停止してください.

service snortd stop



/etc/sysconfig/snortの編集

データベース(MySQL)へのOutputの場合は,ここは結構重要.
自動起動にするので,ここの編集はかなり重要です.
vi /etc/sysconfig/snort でファイルを開いてください.
データベース(MySQL)を使用の場合

ALERTMODE=fast


#でコメントアウトしてください.
これをしていないとMySQLへ出力しません!


ログをデータベース等のその他のプログラムへOutputしない場合

ALERTMODE=fast

fastの部分をお好みで変更.
私的にはfastを推奨.



補足)意味
fast       /var/log/snort/alert に一行でシンプルなログを出力.
         美しくソートされた感があるえ.

full       デフォルトの値
         デーモンモードで起動するとこのモード.
         MySQL に出力する場合は、これを選ぶにょろん.

unsock    ソケット出力を可能にし、他のプログラムで利用可能にする.

none      アラートをオフにする.


以上で/etc/sysconfig/snort の編集終わり!


自動起動設定

自動起動設定をしてきませう.
ログをデータベース等のその他のプログラムへOutputしない場合

chkconfig snortd on

これで自動起動設定完了.
下記コマンドでランレベルが2~5のONが確認できたらOK.
chkconfig --list snortd



データベース(MySQL)を使用の場合
面倒極まりないことをいろいろしませう.
/etc/rc.d/init.d/snortd の編集をします.
要は,起動スクリプトの編集です.
vi /etc/rc.d/init.d/snortd でファイルを開く.
まず,

# chkconfig: 2345 40 60

の場所を

# chkconfig: 345 91 35
へ変更.
次に

ALERTMODE="-A $ALERTMODE"



ALERTMODE="-A full"
へ変更しませう.
んでもって他にもいろいろ.
コンソールで起動スクリプトを登録しなおしませう.

chkconfig --del snortd

chkconfig --add snortd

確認しませう.
chkconfig --list snortd

コンソール上に

snortd 0:off 1:off 2:off 3:on 4:on 5:on 6:off

ってでればOKにょろ.
ついでに
前回正常に起動もしくは終了していない場合は念のため
rm /var/lock/subsys/snort

で消去しませう.
これをしていないと自動起動しません!
自動起動設定をしてコンピュータを再起動させると
起動してなくてGUIのサービス設定を見ると
「snortは停止していますがシステムがロックされています」
みたいなションボリな状態になります.





これぐらいかのう・・・
補足等があればまたUPしますぬ.
一応24時間稼働してます.
急に落ちたりはしてないので大丈夫だと思います.
このやり方で大丈夫だと思いますよ.
CentOS以外での動作はちょっとわからないので,自己責任でお願いします.
いや,むしろCentOSでも人によっては環境それぞれなので・・・・w
ちなみに私の場合はServerとServer GUIしか入れてません.

次回のSnortは多分Snort導入からBASE導入まですべて親切説明をするとおもいます.
それさえあれば導入完璧みたいなやつ.




ュリェ

0 件のコメント:

コメントを投稿