仕事は相変わらずケツが短くて(30日にFIX)バタバタしてます。(汗
今抱えてる作業は2つあるんだけど、
そのどちらもがシステムの根幹に関わる重い作業だったりするしな。
しかもそこが無いと他のチームの作業が進まないという。
…まぁこれについては周りにも協力してもらって頑張るしか無い。
----
今日1日でやったこと。備忘録も兼ねて。
ひたすらに長いうえに専門用語まみれのため、苦手な方はスルー推奨。
続きを読む1.自宅サーバ関連
1−1.
libnet10の導入
1−2.
snortの更新
いい加減バージョンが古いってのもあったので、この機会にソースからrpmbuildでパッケージを作ってアップデートすることにした。
以下はその手順。
関連してlibnet10が必要だったので、yumを使ってインストール。
# yum -y install libnet10
公式サイトからソースのパッケージをダウンロードしてインストール。
# wget http://www.snort.org/dl/binaries/linux/snort-2.6.1.5-1.src.rpm
# rpm -ivh snort-2.6.1.5-1.src.rpm
# cd /usr/src/redhat/SPECS/
# rpmbuild -bb --target=i386 snort.spec --with flexresp
# cd /usr/src/redhat/RPMS/i386
# rpm -ivh snort-2.6.1.5-1.i386.rpm
ここで起動しようとしたら、起動に失敗したので
ココを参考に原因を追究したら、ルールファイルが無いと起動に失敗するらしい。
そのくせルールファイルのライセンス形態が変わったらしく、ユーザ登録が必要になったみたい…うぬぅ。
とりあえず
登録ページにアクセスしてユーザ登録、送られたメールに記載されたパスワードとメールアドレスでページにログイン。
さらに
oinkmasterでルールファイルのメンテナンスを行ってるので、oink用のキーとURLをページから取得後、
# vi /usr/local/oinkmaster-0.9/oinkmaster.conf
でoinkmaster.confを編集し、ダウンロード用のアドレスを追加。
作成してたスクリプトでoinkmasterを実行、ルール更新。
後は普通にsnortを起動。
ついでにサーバの起動時にも起動できるよう、chkconfigにsnortdを追加して終了。
# /etc/rc.d/init.d/snortd start
# chkconfig --add snortd
1−3.
analogの導入
Webサーバに対するアクセスの統計を取ってみたいと思い立ったので、この機会にインストールしてみた。
yumでパッケージをインストール。
# yum -y install analog
設定ファイルを編集。
# vi /etc/analog.cfg
設定ファイル(/etc/analog.cfg)に以下の記述を加える。
◆解析するログファイル、出力するファイル、エンコード形式
> LOGFILE /var/log/httpd/access_log
> OUTFILE /var/www/html/xxxxx/xxxxx.html
> LANGUAGE JAPANESE-EUC
◆内部LANからのアクセスは対象外にする
> HOSTEXCLUDE (内部LANのIP)
◆年・月・日・週毎のアクセス数と、ドメインや検索ワードの統計を取る
> REFERRER ON
> SEARCHWORD ON
> YEARLY ON
> MONTHLY ON
> DAILYREP ON
結果を吐くためのシンボリックリンクを作成。
# ln -s /usr/share/analog/images/ /var/www/html/xxxxx/images
analogを起動。
# /usr/bin/analog
これだけだと文字化けを起こすらしいので、
# vi analogurldecode
で新規ファイルを作成、
ココの内容をコピペ。
保存後、/usr/binにコピーして実行権限を付与する。
# cp analogurldecode /usr/bin
# chmod 755 /usr/bin/analogurldecode
そしてテスト実行。
# /usr/bin/analogurldecode /var/www/html/xxxxx/xxxxx.html > /var/www/html/xxxxx/xxxxx2.html
ここで実行エラーが発生。
何故?と思って参考ページのコメントを見たら、どうやら$fromcodeが空文字の時にJcode.pmでエラーが出る模様。
そこで7行目あたりの判定処理をこのように書き換える。
> if($tocode ne '' and $tocode ne $fromcode){
> if ($fromcode ne '') {
> Jcode::convert(\$text, $tocode, $fromcode);
> }else{
> Jcode::convert(\$text, $tocode);
> }
> }
これでエラーは出なくなった。
後はcrotabで定期的に処理を実行させるよう設定する。
まずは実行用のスクリプトを作成。
# vi analog-report.sh
スクリプトの内容は
ココを参考にした。
実行権限を付与してcrontabに登録。
# chmod 700 analog-report.sh
# crontab -e
毎時の30分になったら統計を行うよう設定。
> 30 * * * * /root/analog-report.sh 1> /dev/null
いじょ。