[vine-users:080841] Re: <ご教授願い>Vine5.2へのsnortの導入手法

Hajime Satono hsatono @ iodata.jp
2011年 2月 19日 (土) 19:09:23 JST


岸様

里野@金沢です。

On 2011/02/19 13:35,, swing4jazzy @ gmail.com-san wrote:
> On Fri, 18 Feb 2011 23:53:42 +0900
	・
	・
> が出るようになりました。で結論は /etc/snort/snort.conf ファイルの
> output database: log, mysql, user=snort password=snortpass
> dbname=snort_log host=localhost
> 
> の記述(特に user 名)には間違いがないでしょうか。

との事で、以下の実験を行ってみましたので結果報告します。
(各位、長文ご容赦下さいませ。)

ご指摘いただいた点、再確認したところ・・・

output database: log, mysql, user=snort password="snortuserpass"
dbname=snort_log host=localhost

となってましたが、これは・・・

output database: log, mysql, user=snort password=snortuserpass
dbname=snort_log host=localhost

が正解(""で囲む必要がない、囲んではいけない)
という事だったんですね(^^;)


http://swing.jakou.com/vine/server-5.2.html#snort
にてサンプルとしてご提示いただいている
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
● Snort の設定
	・
	・
# output unified2: filename merged.log, limit 128, nostamp,
mpls_event_types, vlan_event_types

# output database: log, , user= password= test dbname= host=
output database: log, mysql, user=snort password="パスワード"
dbname=snort_log host=localhost
        ← "パスワード" はこの後設定するMySQL設定と同じものにする
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

の「"パスワード"」という所をそのまま誤読した結果という事でした_(^_^;;)_

で、

● Snort の起動

>    最初に次のようなコマンドを入力してエラーが出ないことを確認。
>    $ sudo /usr/sbin/snort -c /etc/snort/snort.conf -i eth1

eth1→eth0で実行し下記のようにやっと豚さんを見る事が出来ました_(^_^)_

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
	(中略)
	・
	・
	・
        --== Initialization Complete ==--

   ,,_     -*> Snort! <*-
  o"  )~   Version 2.9.0.3 (Build 98)
   ''''    By Martin Roesch & The Snort Team:
http://www.snort.org/snort/snort-team
           Copyright (C) 1998-2010 Sourcefire, Inc., et al.
           Using libpcap version 1.0.0
           Using PCRE version: 7.9 2009-04-11
           Using ZLIB version: 1.2.3

           Rules Engine: SF_SNORT_DETECTION_ENGINE  Version 1.13  <Build 18>
           Preprocessor Object: SF_DCERPC2  Version 1.0  <Build 3>
           Preprocessor Object: SF_SMTP  Version 1.1  <Build 9>
           Preprocessor Object: SF_SSH  Version 1.1  <Build 3>
           Preprocessor Object: SF_DNS  Version 1.1  <Build 4>
           Preprocessor Object: SF_FTPTELNET  Version 1.2  <Build 13>
           Preprocessor Object: SF_SSLPP  Version 1.1  <Build 4>
           Preprocessor Object: SF_SDF  Version 1.1  <Build 1>
Commencing packet processing (pid=30223)


*** Caught Signal: 'Rotate Perfmonitor Stats'
!!! Cannot rotate stats - Perfmonitor is not configured !!!
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

この状態から遷移しないので「crtl+c」を押下すると

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
^C*** Caught Int-Signal
===============================================================================
Run time for packet processing was 1108.498061 seconds
Snort processed 8507 packets.
Snort ran for 0 days 0 hours 18 minutes 28 seconds
   Pkts/min:          472
   Pkts/sec:            7
database: Closing connection to database "snort_log"
===============================================================================
	・
	(中略)
	・
    Self-referencing paths ("./"):        0
    HTTP Response Gzip packets extracted: 0
    Gzip Compressed Data Processed:       n/a
    Gzip Decompressed Data Processed:     n/a
    Total packets processed:              2024
===============================================================================
dcerpc2 Preprocessor Statistics
  Total sessions: 1

  Transports
    SMB
      Total sessions: 1
      Packet stats
        Packets: 0
===============================================================================
===============================================================================
Snort exiting

$
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

と復帰しましたので、気をよくして次に進みます♪

$ sudo /etc/init.d/snortd start
[sudo] password for halcom:
Starting snort: Spawning daemon child...
My daemon child 366 lives...
Daemon parent exiting
                                                                [  OK  ]
$

と問題無さそうです。一応/var/log/messages/を確認しました。

$ sudo tail -f /var/log/messages
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
Feb 19 16:43:33 mail snort[22945]: Decoding Ethernet
Feb 19 16:43:33 mail snort[22945]: Checking PID path...
Feb 19 16:43:33 mail snort[22945]: PID path stat checked out ok, PID
path set to /var/run/
Feb 19 16:43:33 mail snort[22945]: Writing PID "22945" to file
"/var/run//snort_eth0.pid"
Feb 19 16:43:33 mail snort[22945]: Set gid to 2101
Feb 19 16:43:33 mail snort[22945]: Set uid to 2102
Feb 19 16:43:33 mail snort[22945]: WARNING: normalizations disabled
because DAQ can't replace packets.
Feb 19 16:43:33 mail snort[22945]:
Feb 19 16:43:33 mail snort[22945]:         --== Initialization Complete ==--
Feb 19 16:43:33 mail snort[22945]: Commencing packet processing (pid=22945)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

「Feb 19 16:43:33 mail snort[22945]: WARNING: normalizations disabled
because DAQ can't replace packets.」

が存在していますが、岸様環境でも出ているとの事なのでひとまず無視して進み
ました。ちなみに、/var/log/snort/ 配下にはsnortが出力しているlogが出来上
がっていました。


$ sudo /sbin/chkconfig snortd on

で毎回起動設定。

やっと
「● BASE のインストール 」
セクションにたどり着きました(^^;)
(ここで "$ cd"=Homeへの移動記載が必要かも)

$ cd rpm/SOURCES/
$ wget
http://sourceforge.net/projects/secureideas/files/BASE/base-1.4.5/base-1.4.5.tar.gz/download
(成功)

$ wget
http://sourceforge.net/projects/adodb/files/adodb-php5-only/adodb-511-for-php5/adodb511.tgz/download
(成功)

$ cd ../BUILD/
$ tar zxvf ../SOURCES/base-1.4.5.tar.gz
$ tar zxvf ../SOURCES/adodb511.tgz
$ sudo mv base-1.4.5/ /var/www/base
$ sudo mv adodb5 /var/www/base/adodb

$ sudo chown -R apache:apache /var/www/base/
(ここまで成功)


「● BASE の設定 」

$ sudo cp /var/www/base/base_conf.php.dist /var/www/base/base_conf.php
$ sudo vi /var/www/base/base_conf.php

※当方はapache2ドキュメントルートを/var/www/→/home/httpd/html/に変更して
いるので、
/var/www/base/配下を /home/httpd/htmm/配下にコピーしてから読み替えて修正
します。
またコンフィグファイル中に登場する/var/www/は全て/home/httpd/html/へ置換
しました。
	・
  (中略)
	・
$alert_password = 'xxxxxxxxx';       ← MySQLsnortユーザパスワード
(全て成功、異常無し、viはここまでですよね)


$ sudo pear install --alldeps Image_Graph-alpha
(正常終了)

「● Aapche の設定 」
※こちらも上記と同様にドキュメントルートに関しては読み替えております。
 また/etc/httpd/は/etc/apache2/へ読み替えてます。

$ sudo vi /etc/httpd/conf.d/base.conf
(「base.conf」は存在していなかったので新規作成と判断)

$ sudo vi /etc/php5/php.ini
(修正)

$ sudo /etc/init.d/httpd start
※httpdはapache2へ読み替え、startはrestartとしました。
 Apache1系とは相違するのか、Errorとなる為、「base.conf」は下記のように
アレンジしました。

−−−「base.conf」ここから−−−
Alias /base /home/httpd/html/base
<Location /base>
    order deny,allow
    deny from all
    allow from 127.0.0.1
    allow from 192.168.0.0/24
</Location>
−−−「base.conf」ここまで−−−

$ sudo ln -s /usr/bin/perl /usr/local/bin/perl


「● BASE の確認」
http://サーバアドレス/base/ へアクセス

エイリアス的にはWebページは動作している模様ですが、下記エラーが発生しま
した。

−−−−−−−−−−−−
データベースライブラリがロードできません:  from
"/home/httpd/html/adodb/adodb.inc.php"

データベース抽象ライブラリのパスを確認してください ($DBlib_path) in
base_conf.php

データベースライブラリはADODBを使用しています。ダウンロードはこちら→
http://adodb.sourceforge.net/
−−−−−−−−−−−−

当方はApache2をSuExecで利用している為、権利関係かと思い、実験的にroot
ユーザにて下記を実施。

# chown -R apache:apache /home/httpd
# chmod -R +x /home/httpd/html/base

しかし、状況変化せず(--;)

base/adodb/server.php

を修正せねばならないのでは想像。。
デフォルトのファイル中に次のような所があったので・・

−−−「server.php」ここから−−−
/*
 * Connection parameters
 */
$driver = 'mysql';
$host = 'localhost'; // DSN for odbc
$uid = 'root';
$pwd = 'garbase-it-is';
$database = 'test';
−−−「server.php」ここまで−−−

を

$uid = 'snort'
$pwd = '(snort_logデータベースへのパスワード)'
$database = 'snort_log'

程度に修正追加してみたのですが、状況変わりません(泣)

#まだまだハマりが深い模様です_(_ _;;)_

	By Hajime-Satono / hsatono @ iodata.jp


vine-users メーリングリストの案内