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

Hajime Satono hsatono @ iodata.jp
2011年 2月 18日 (金) 23:53:42 JST


岸様。

里野@金沢です。


On 2011/02/17 16:22,, swing4jazzy-san wrote:
> 次の方法でも何か分かるかもしれません。
> 
> 取り合えず snort を起動してみる。
> $ sudo /etc/init.d/snortd start
> 
> 恐らく起動に失敗するでしょうから、その時のlogを確認します。
> 
> $ sudo tail -f /var/log/messages
> 
> このログも見させて頂くとヒントになるかもしれません。
> まあ同じエラーが出ているのかもしれませんが(汗。

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


とりあえず、mysql関連からsnort系dbを全て削除。
ユーザとグループからもsnortを削除。
apt-get remove で「snort」「snort-mysql」を削除。

この状況にて再度・・・

http://swing.jakou.com/vine/server-5.2.html#snort

・・・の

$ vi snort.spec

からやり直しました。

まずはsnort.specの修正確認→OK

$ cd
$ rpm -bb  -clean --with mysql rpm/SPECS/snort.spec

ビルド開始されます。

(ここはマシンが遅いので結構長時間。。)
	・
	・
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
パッケージに未収録のファイルを検査中: /usr/lib/rpm/check-files
/var/tmp/snort-2.9.0.3-1-root-hogeuser
書き込み完了: /home/hogeuser/rpm/RPMS/i386/snort-2.9.0.3-1.i386.rpm
書き込み完了: /home/hogeuser/rpm/RPMS/i386/snort-mysql-2.9.0.3-1.i386.rpm
実行中(%clean): /bin/sh -e /var/tmp/rpm-tmp.88402
+ umask 022
+ cd /home/hogeuser/rpm/BUILD
+ cd snort-2.9.0.3
+ /bin/rm -rf /var/tmp/snort-2.9.0.3-1-root-hogeuser
+ exit 0
実行中(--clean): /bin/sh -e /var/tmp/rpm-tmp.88402
+ umask 022
+ cd /home/hogeuser/rpm/BUILD
+ rm -rf snort-2.9.0.3
+ exit 0
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

ビルド完了。

$ sudo rpm -Uvh
/home/hogeuser/rpm/RPMS/i386/{snort,snort-mysql}-2.9.0.3-1.i386.rpm

準備中...                ########################################### [100%]
   1:snort                  ###########################################
[ 50%]
   2:snort-mysql            ###########################################
[100%]

$ sudo vi /etc/snort/snort.conf

にて内容通り修正。。

● Snort のルールファイルを入手
は入手済みの為、

$ cd rpm/BUILD/
$ tar zxvf ../SOURCES/snortrules-snapshot-2903.tar.gz
$ sudo cp -r rules/* /etc/snort/rules/
$ rm -rf rules/ so_rules/ etc/ preproc_rules/

$ sudo vi /etc/logrotate.d/snort

(修正)

● MySQL の設定
php-mysqlはインストール済みの為、スキップ。
$ sudo mysql -u root -p

mysql> grant all privileges on snort_log.* to snort @ localhost identified
by 'パスワード';

(今回は半角英大文字6文字+数字2文字で8文字としました)
Query OK, 0 rows affected (0.07 sec)

mysql> exit
Bye

$ sudo sh -c 'mysql -u snort -p snort_log <
/usr/share/snort-2.9.0.3/schemas/create_mysql'
Enter password:
ERROR 1049 (42000): Unknown database 'snort_log'

(そうだ、消したんだった。。ので・・・)

$ sudo mysql -u root -p
で入った後に
mysql> grant all privileges on snort_log.* to snort @ localhost identified
by 'パスワード';

Query OK, 0 rows affected (0.00 sec)

mysql>create database snort_log;
Query OK, 1 row affected (0.02 sec)

mysql> exit
Bye

$ sudo sh -c 'mysql -u snort -p snort_log <
/usr/share/snort-2.9.0.3/schemas/create_mysql'

● Snort の起動

最初に次のようなコマンドを入力してエラーが出ないことを確認。
$ sudo /usr/sbin/snort -c /etc/snort/snort.conf -i eth0
	・
	・
+----------------------------------------------------------------
[ Number of patterns truncated to 20 bytes: 693 ]
pcap DAQ configured to passive.
Acquiring network traffic from "eth0".
Decoding Ethernet
WARNING: normalizations disabled because DAQ can't replace packets.
ERROR: database: mysql_error: Access denied for user 'snort'@'localhost'
(using password: YES)
Fatal Error, Quitting..

とやはり同じでした(泣)

ので、ご提案の・・・

−−−−−−−−−−−−−−−−−−−−−−−−
取り合えず snort を起動してみる。
$ sudo /etc/init.d/snortd start

恐らく起動に失敗するでしょうから、その時のlogを確認します。

$ sudo tail -f /var/log/messages
−−−−−−−−−−−−−−−−−−−−−−−−

・・・を実行してみましたところ、

Starting snort: password00
Spawning daemon child...
My daemon child 24199 lives...
Daemon parent exiting
                                                                [  OK  ]


と見た目では起動成功したように見えますが、ログでは・・・

$ sudo tail -f /var/log/messages

−−−−−−−−−−−−−−−−−−−−−−−−
Feb 18 23:27:17 mail kernel: device eth0 entered promiscuous mode
Feb 18 23:27:17 mail snort[24199]: Decoding Ethernet
Feb 18 23:27:17 mail snort[24199]: Checking PID path...
Feb 18 23:27:17 mail snort[24199]: PID path stat checked out ok, PID
path set to /var/run/
Feb 18 23:27:17 mail snort[24199]: Writing PID "24199" to file
"/var/run//snort_eth0.pid"
Feb 18 23:27:17 mail snort[24199]: Set gid to 2101
Feb 18 23:27:17 mail snort[24199]: Set uid to 2102
Feb 18 23:27:17 mail snort[24199]: WARNING: normalizations disabled
because DAQ can't repl                            ace packets.
Feb 18 23:27:17 mail snort[24199]: FATAL ERROR: database: mysql_error:
Access denied for user 'snort'@'localhost' (using password: YES)
Feb 18 23:27:17 mail kernel: device eth0 left promiscuous mode
−−−−−−−−−−−−−−−−−−−−−−−−

と、やはり「パスワードが違う」と言われて失敗している様子。。


ちなみにWebminでユーザを見ると

snort 	2102 	snort 	Snort 	/var/log/snort 	/bin/false

が出来ており、グループは

snort 	2101

が出来てました。

但し、MySQLサーバの「ユーザの許可」で「snort」を見ると

snort 	localhost 	*71892D236E17A951ACDD235C4E99EB48A302E85F 	None 	なし

となっており、念のため、ここ(Webmin上)でもsnortのpasswordを再設定してみ
ましたが、
上記 tail -f /var/log/messages の症状には変化がありませんでした。

ちなみに/var/log/snort/の中身は空でした。

ログの「'snort'@'localhost'」はログ表現上の出力でしょうか?
(実際は「snort @ localhost」だと思うのですが。。。)


しかしいったい何所でハマっているのでしょう(;_;)

	By Hajime-Satono / hsatono @ iodata.jp


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