アクセス解析

サーバーのアクセス解析にAwstatsを利用してますが、先日から表示されなくなりました。
アップデートが原因だと思いますが、アンインストールして、新規にyumでインストールしなおしました。
基本的にはfedora 3のアクセスログ解析(Awstats)の設定と同じなのですが、画像が表示されなくなりましたので、その部分のみfedora 3の設定と異なります。また、内部からしかアクセスできないようにしました。
■ Awstatsの設定ファイルの編集
awstatsへ移動します。
[root@server ~]# cd /etc/awstats
etc/awstats/のawstats.server.yokensaka.com.conf awstats.conf に変更します。
[root@server awstats]# mv awstats.server.yokensaka.com.conf awstats.conf
続いて、root権限で、このawstats.confを編集します。
[root@server awstats]# su –
[root@server ~]# vi /etc/awstats/awstats.conf
SiteDomain=”server.yokensaka.com”

SiteDomain=”yokensaka.com” ←独自ドメイン名に変更
DNSLookup=2

DNSLookup=1 “>← 1に変更(DNSの逆引きにする設定に変更)
DirIcons=”/awstatsicons”

DirIcons=”/icon“ ← アイコンのディレクトリー名を変更
SkipHosts=”127.0.0.1″

SkipHosts=”127.0.0.1 REGEX[^192\.168\.1\.]“ ← 内部のクライアントはスキップするように変更
Lang=”auto”

Lang=”jp“ ← jpに変更
#LoadPlugin=”tooltips”

LoadPlugin=”tooltips” ← #を削除(該当する部分にマウスを当てるとヘルプが表示されます。)
※ 最後にこのままだとアイコンが表示されないので、アイコンの入ってるフォルダ
/usr/share/awstats/wwwroot/icon を /var/www/html へコピーしておきます。

■ awstats.plアクセス制限(内部からのみアクセス可)
[root@server ~]# vi /etc/httpd/conf.d/awstats.conf
最終行へ追加します

Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from 192.168.1 ← 内部のネットワークアドレスを指定

Apache設定反映
[root@server ~]# /etc/rc.d/init.d/httpd reload 
httpd を再読み込み中: [ OK ]

フォトストレージ

20060424-P_4500.jpg
旅行に行ったときなど、パソコンを持ち歩くより重宝しそうなフォトストレージ。いろんなメーカーから出てるようですが、4月20日発売のこのエプソンのP-4500結構良さそうです。
80GB HDDと、解像度640×480ドットの3.8型TFT液晶を備えてて、静止画は、任意の部分を400%まで拡大する機能や、Exif/ヒストグラムの同時表示などの機能を搭載している。フォトストレージ機能のみならず、デジスコで撮った写真のチェックにも使えそうです。近いうちに現物チェックしてきます。

モニターキャリブレーション

最近、画像補正の方法をいくつか書きましたが、その前に大事なことを書き忘れてました。それは画像補正というのはモニターのキャリブレーションがきちんとされてることが大前提だと言う事です。モニターを調整せずにデジタルカメラで撮影した画像を補正すると、せっかく撮影した画像も台無し。プリントしたときに「撮影したときの色と違う!」「モニターで見た色と違う!」ということになってしまいます。
私は結構前からEIZOの17インチのモニター「FlexScanT566」というのを使ってますが、色温度を6500KにしてAdobeGammaでキャリブレーションしてます。今まではA4サイズのプリンターでしたが、先日のデジスコ写真展でA3サイズのプリントを見て、あまりにも綺麗なので、帰りにヨドバシに寄ってA3プリンターを物色。エプソンのPX-G5100とPX-5500どちらにしようかと思ったのですが、人物ではなくS80で野鳥ですから、発色の良いPX-G5100にしました。
そこで、モニターとプリンターのカラーマッチングをより正確に行うためにモニターキャリブレーションソフトを予約しました。右が予約した4月28日発売の「Spyder2 Suite」という商品です。

20060420-pxg5100.jpg 20060420-spyder.jpg

キャリブレーションとかカラーマッチングの方法はまた改めてブログに書きます。

Tripwireのインストール

FC-5にしてからTripwireが機能しなくなってましたので新たにTripwireをインストールし直しました。
Tripwireをダウンロードします。*最新版をダウンロードしてください。

[root@server ~]# wget http://keihanna.dl.sourceforge.net/sourceforge/tripwire/tripwire-2.4.0.1-x86-bin.tar.bz2
--07:05:15--  http://keihanna.dl.sourceforge.net/sourceforge/tripwire/tripwire-2.4.0.1-x86-bin.tar.bz2
=> `tripwire-2.4.0.1-x86-bin.tar.bz2'
keihanna.dl.sourceforge.net をDNSに問いあわせています... 210.146.64.4
keihanna.dl.sourceforge.net|210.146.64.4|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 2,787,200 (2.7M) [application/x-bzip2]
100%[===============================================================>] 2,787,200      2.05M/s
07:05:17 (2.05 MB/s) - `tripwire-2.4.0.1-x86-bin.tar.bz2' を保存しました [2787200/2787200]

ダウンロードしたファイルを展開します

[root@server ~]# tar jxvf tripwire-2.4.0.1-x86-bin.tar.bz2
tripwire-2.4.0.1-x86-bin/
tripwire-2.4.0.1-x86-bin/bin/
tripwire-2.4.0.1-x86-bin/bin/twprint
tripwire-2.4.0.1-x86-bin/bin/twadmin
・
・
・
tripwire-2.4.0.1-x86-bin/MAINTAINERS
tripwire-2.4.0.1-x86-bin/TRADEMARK
tripwire-2.4.0.1-x86-bin/COMMERCIAL
tripwire-2.4.0.1-x86-bin/install-sh

Tripwireの展開先ディレクトリへ移動します

[root@server ~]# cd tripwire-2.4.0.1-x86-bin

Tripwireの実行コマンドを/usr/sbin/へコピーします

[root@server tripwire-2.4.0.1-x86-bin]# cp bin/* /usr/sbin/

Tripwireの設定ファイルのディレクトリを作成します

[root@server tripwire-2.4.0.1-x86-bin]# mkdir /etc/tripwire

ポリシーファイルをTripwireの設定ファイルのディレクトリへコピーします

[root@server tripwire-2.4.0.1-x86-bin]# cp policy/twpol-Linux.txt /etc/tripwire/twpol.txt

データベースのディレクトリを作成します

[root@server tripwire-2.4.0.1-x86-bin]# mkdir -p /var/lib/tripwire/report

Tripwireの展開先ディレクトリを削除します

[root@server tripwire-2.4.0.1-x86-bin]# cd
[root@server ~]# rm -rf tripwire-2.4.0.1-x86-bin

ダウンロードしたファイルを削除します

[root@server ~]# rm -f tripwire-2.4.0.1-x86-bin.tar.bz2

インストールが終わったらこちらを参考にTripwireの設定を行います。

yumの設定

FC-5にバージョンアップしたときの yum の設定です。(日本のミラーからアップデートをインストールするために接続先を変更、また livna.repo の接続先も変更。)
日本のミラーからアップデートをインストールするために接続先を変更(core)
[root@server ~]# vi /etc/yum.repos.d/fedora-core.repo
[core]
name=Fedora Core $releasever – $basearch
baseurl=http://ftp.kddilabs.jp/Linux/packages/fedora/core/$releasever/$basearch/os/
http://ftp.jaist.ac.jp/pub/Linux/Fedora/core/$releasever/$basearch/os/
http://ftp.iij.ad.jp/pub/linux/fedora/core/$releasever/$basearch/os/

#mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-$releasever
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY
[core-debuginfo]
name=Fedora Core $releasever – $basearch – Debug
baseurl=http://ftp.kddilabs.jp/Linux/packages/fedora/core/$releasever/$basearch/debug/
http://ftp.jaist.ac.jp/pub/Linux/Fedora/core/$releasever/$basearch/debug/
http://ftp.iij.ad.jp/pub/linux/fedora/core/$releasever/$basearch/debug/

#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/$releasever/$basearch/debug/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY
[core-source]
name=Fedora Core $releasever – Source
baseurl=http://ftp.kddilabs.jp/Linux/packages/fedora/core/$releasever/source/SRPMS/
http://ftp.jaist.ac.jp/pub/Linux/Fedora/core/$releasever/source/SRPMS/
http://ftp.iij.ad.jp/pub/linux/fedora/core/$releasever/source/SRPMS/

#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/$releasever/source/SRPMS/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY
日本のミラーからアップデートをインストールするために接続先を変更(extras)
[root@server ~]# vi /etc/yum.repos.d/fedora-extras.repo
[extras]
name=Fedora Extras $releasever – $basearch
baseurl=http://ftp.kddilabs.jp/Linux/packages/fedora/extras/$releasever/$basearch/
http://ftp.jaist.ac.jp/pub/Linux/Fedora/extras/$releasever/$basearch/
http://ftp.iij.ad.jp/pub/linux/fedora/extras/$releasever/$basearch/

#mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-extras-$releasever
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-extras
gpgcheck=1
[extras-debuginfo]
name=Fedora Extras $releasever – $basearch – Debug
baseurl=http://ftp.kddilabs.jp/Linux/packages/fedora/extras/$releasever/$basearch/debug/
http://ftp.jaist.ac.jp/pub/Linux/Fedora/extras/$releasever/$basearch/debug/
http://ftp.iij.ad.jp/pub/linux/fedora/extras/$releasever/$basearch/debug/

#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/extras/$releasever/$basearch/debug/
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-extras
gpgcheck=1
[extras-source]
name=Fedora Extras $releasever – Source
baseurl=http://ftp.kddilabs.jp/Linux/packages/fedora/extras/$releasever/SRPMS/
http://ftp.jaist.ac.jp/pub/Linux/Fedora/extras/$releasever/SRPMS/
http://ftp.iij.ad.jp/pub/linux/fedora/extras/$releasever/SRPMS/

#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/extras/$releasever/SRPMS/
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-extras
gpgcheck=1
日本のミラーからアップデートをインストールするために接続先を変更(updates)
[root@server ~]# vi /etc/yum.repos.d/fedora-updates.repo
[updates]
name=Fedora Core $releasever – $basearch – Updates
baseurl=http://ftp.kddilabs.jp/Linux/packages/fedora/core/updates/$releasever/$basearch/
http://ftp.jaist.ac.jp/pub/Linux/Fedora/core/updates/$releasever/$basearch/
http://ftp.iij.ad.jp/pub/linux/fedora/core/updates/$releasever/$basearch/

#mirrorlist=http://fedora.redhat.com/download/mirrors/updates-released-fc$releasever
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
[updates-debuginfo]
name=Fedora Core $releasever – $basearch – Updates – Debug
baseurl=http://ftp.kddilabs.jp/Linux/packages/fedora/core/updates/$releasever/$basearch/debug/
http://ftp.jaist.ac.jp/pub/Linux/Fedora/core/updates/$releasever/$basearch/debug/
http://ftp.iij.ad.jp/pub/linux/fedora/core/updates/$releasever/$basearch/debug/

#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/$releasever/$basearch/debug/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
[updates-source]
name=Fedora Core $releasever – Updates Source
baseurl=http://ftp.kddilabs.jp/Linux/packages/fedora/core/updates/$releasever/SRPMS/
http://ftp.jaist.ac.jp/pub/Linux/Fedora/core/updates/$releasever/SRPMS/
http://ftp.iij.ad.jp/pub/linux/fedora/core/updates/$releasever/SRPMS/

#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/$releasever/SRPMS/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
livna.repoの接続先を変更
[root@server ~]# vi /etc/yum.repos.d/livna.repo
[livna]
name=Livna.org – Fedora Compatible Packages (stable)
baseurl=http://rpm.livna.org/fedora/$releasever/$basearch/RPMS.lvn/

baseurl=http://rpm.livna.org/fedora/$releasever/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna
enabled=1
[livna-testing]
name=Livna.org – Fedora Compatible Packages (testing)
baseurl=http://rpm.livna.org/fedora/$releasever/$basearch/RPMS.lvn-testing

baseurl=http://rpm.livna.org/fedora/testing/$releasever/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna
enabled=0

Nucleus3.22へUpgrade

このブログは「Nucleus」を使ってますが Nucleus3.21 から Nucleus3.22 へアップグレードしましたのでアップグレードの手順を書き留めておきます。
1) バックアップの作成
データベースと config.php のバックアップをとります。
2) アップグレード用パッケージのダウンロード
v3.22 EUC-JP アップグレード用パッケージ「upgrade3.22_ja_euc.zip」をダウンロードします。
ダウンロードしたファイルは解凍しておきます。
3) ファイルの更新
ファイル全てをFTP等でブログのディレクトリーへアップしてファイルを更新します。もしコアファイル(css なども含む)を変更してる場合は、ファイルの更新後必要な箇所を変更し直します。(もちろん更新する前にバックアップをとっておきます)
4) アップグレードスクリプトの実行
下記 URL にアクセスしてアップグレードスクリプトを実行します。
http://yokensaka.com/blog/nucleus/upgrades/index.php
(upgrades/ ディレクトリはセキュリティの関係で削除しましたのでアクセスできませんが・・・)
画面に従いアップグレードします。
20060330-WS008
この画面になればアップグレード完了!! あっけなく完了します。
20060330-WS009
これによりアップグレード後に必要となるデータベースが構築されます。
セキュリティリスクを避けるため、upgrades/ ディレクトリはアップグレード後は削除しておきます。

Snortのインストール

サーバーへの不正アクセスを検知するシステム「snort-2.4.4-1.fc5.i386.rpm」をFC-5にインストールしました。
Snortをダウンロードします。*最新版をダウンロードしてください。
[root@server ~]# wget http://ftp.kddilabs.jp/Linux/packages/fedora/extras/5/i386/snort-2.4.4-3.fc5.i386.rpm
–12:47:40– http://ftp.kddilabs.jp/Linux/packages/fedora/extras/5/i386/snort-2.4.4-3.fc5.i386.rpm
=> `snort-2.4.4-3.fc5.i386.rpm.1′
ftp.kddilabs.jp をDNSに問いあわせています… 192.26.91.193, 2001:200:601:10:206:5bff:fef0:466c
ftp.kddilabs.jp|192.26.91.193|:80 に接続しています… 接続しました。
HTTP による接続要求を送信しました、応答を待っています… 200 OK
長さ: 963,142 (941K) [application/x-rpm]
100%[==============================================>] 963,142 535.35K/s
12:47:42 (534.58 KB/s) – `snort-2.4.4-3.fc5.i386.rpm.1′ を保存しました [963142/963142]
Snortをインストールします
[root@server ~]# rpm -ivh snort-2.4.4-3.fc5.i386.rpm
準備中… ########################################### [100%]
1:snort ########################################### [100%]
ダウンロードしたファイルを削除します
[root@server ~]# rm -f snort-2.4.4-3.fc5.i386.rpm
SnortSnarfのインストール
/usr/local/ディレクトリへ移動します
[root@server ~]# cd /usr/local/
Time-modulesをダウンロードします
[root@server local]# wget http://search.cpan.org/CPAN/authors/id/M/MU/MUIR/modules/Time-modules-2003.1126.tar.gz
–00:13:35– http://search.cpan.org/CPAN/authors/id/M/MU/MUIR/modules/Time-modules-2003.1126.tar.gz
=> `Time-modules-2003.1126.tar.gz’
search.cpan.org をDNSに問いあわせています… 216.52.237.136
search.cpan.org|216.52.237.136|:80 に接続しています… 接続しました。
HTTP による接続要求を送信しました、応答を待っています… 302 Moved Temporarily
場所: http://ftp.cpan.jp/authors/id/M/MU/MUIR/modules/Time-modules-2003.1126.tar.gz [続く]
–00:13:36– http://ftp.cpan.jp/authors/id/M/MU/MUIR/modules/Time-modules-2003.1126.tar.gz
=> `Time-modules-2003.1126.tar.gz’
ftp.cpan.jp をDNSに問いあわせています… 219.101.183.186
ftp.cpan.jp|219.101.183.186|:80 に接続しています… 接続しました。
HTTP による接続要求を送信しました、応答を待っています… 200 OK
長さ: 22,296 (22K) [application/x-tar]
100%[===================================================================>] 22,296 –.–K/s
00:13:36 (8.00 MB/s) – `Time-modules-2003.1126.tar.gz’ を保存しました [22296/22296]
Time-modulesを解凍します
[root@server local]# tar zxvf Time-modules-2003.1126.tar.gz
Time-modules-2003.1126/
Time-modules-2003.1126/lib/
Time-modules-2003.1126/lib/Time/
Time-modules-2003.1126/lib/Time/JulianDay.pm
Time-modules-2003.1126/lib/Time/ParseDate.pm
Time-modules-2003.1126/lib/Time/CTime.pm
Time-modules-2003.1126/lib/Time/DaysInMonth.pm
Time-modules-2003.1126/lib/Time/Timezone.pm
Time-modules-2003.1126/t/
Time-modules-2003.1126/t/datetime.t
Time-modules-2003.1126/CHANGELOG
Time-modules-2003.1126/MANIFEST
Time-modules-2003.1126/Makefile.PL
Time-modules-2003.1126/README
解凍してできたディレクトリへ移動します
[root@server local]# cd Time-modules-2003.1126
Makefileを作成します
[root@server Time-modules-2003.1126]# perl Makefile.PL
Writing Makefile for Time-modules
コンパイルします
[root@server Time-modules-2003.1126]# make
Manifying blib/man3/Time::JulianDay.3pm
Manifying blib/man3/Time::ParseDate.3pm
Manifying blib/man3/Time::CTime.3pm
Manifying blib/man3/Time::DaysInMonth.3pm
Manifying blib/man3/Time::Timezone.3pm
Time-modulesをインストールします
[root@server Time-modules-2003.1126]# make install
Installing /usr/lib/perl5/site_perl/5.8.8/Time/JulianDay.pm
Installing /usr/lib/perl5/site_perl/5.8.8/Time/DaysInMonth.pm
Installing /usr/lib/perl5/site_perl/5.8.8/Time/CTime.pm
Installing /usr/lib/perl5/site_perl/5.8.8/Time/ParseDate.pm
Installing /usr/lib/perl5/site_perl/5.8.8/Time/Timezone.pm
Installing /usr/share/man/man3/Time::ParseDate.3pm
Installing /usr/share/man/man3/Time::DaysInMonth.3pm
Installing /usr/share/man/man3/Time::CTime.3pm
Installing /usr/share/man/man3/Time::Timezone.3pm
Installing /usr/share/man/man3/Time::JulianDay.3pm
Writing /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/Time-modules/.packlist
Appending installation info to /usr/lib/perl5/5.8.8/i386-linux-thread-multi/perllocal.pod
ダウンロードしたファイルを削除します
[root@server Time-modules-2003.1126]# rm -f /usr/local/Time-modules-2003.1126.tar.gz
/usr/local/ディレクトリへ移動します
[root@server Time-modules-2003.1126]# cd /usr/local/
SnortSnarfをダウンロードします
[root@server local]# wget http://www.snort.org/dl/contrib/data_analysis/snortsnarf/SnortSnarf-050314.1.tar.gz
–11:46:36– http://www.snort.org/dl/contrib/data_analysis/snortsnarf/SnortSnarf-050314.1.tar.gz
=> `SnortSnarf-050314.1.tar.gz’
www.snort.org をDNSに問いあわせています… 199.107.65.177
www.snort.org|199.107.65.177|:80 に接続しています… 接続しました。
HTTP による接続要求を送信しました、応答を待っています… 200 OK
長さ: 144,103 (141K) [application/x-gzip]
100%[==============================================>] 144,103 111.81K/s
11:46:38 (111.39 KB/s) – `SnortSnarf-050314.1.tar.gz’ を保存しました [144103/144103]
SnortSnarfを解凍します
[root@server local]# tar zxvf SnortSnarf-050314.1.tar.gz
SnortSnarf-050314.1/
SnortSnarf-050314.1/cgi/
SnortSnarf-050314.1/cgi/add_annotation.pl
SnortSnarf-050314.1/cgi/inclist.pl



SnortSnarf-050314.1/utilities/fix_perms.pl
SnortSnarf-050314.1/utilities/IPAddrContact.pl
SnortSnarf-050314.1/utilities/setup_anns_dir.pl
SnortSnarf-050314.1/utilities/setup_sisrdb_dir.pl
解凍してできたディレクトリへ移動します
[root@server local]# cd SnortSnarf-050314.1
/usr/local/snortsnarf/ディレクトリを作成します
[root@server SnortSnarf-050314.1]# mkdir /usr/local/snortsnarf
snortsnarf.plを/usr/local/snortsnarf/ディレクトリへコピーします
[root@server SnortSnarf-050314.1]# cp snortsnarf.pl /usr/local/snortsnarf/
include/を/usr/local/snortsnarf/ディレクトリへコピーします
[root@server SnortSnarf-050314.1]# cp -r include/ /usr/local/snortsnarf/
ダウンロードしたファイルを削除します
[root@server SnortSnarf-050314.1]# rm -f /usr/local/SnortSnarf-050314.1.tar.gz
rootのホームディレクトリへ移動しておきます
[root@server SnortSnarf-050314.1]# cd
Snortの設定
Snortの設定ファイルを編集します
[root@server ~]# 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 ←LAN内マシンからのパケットは除外
preprocessor http_inspect: global \
iis_unicode_map unicode.map 1252

#preprocessor http_inspect: global \ ← コメントアウトします(Snort実行時エラー対処)
# iis_unicode_map unicode.map 1252 ← コメントアウトします(Snort実行時エラー対処)
preprocessor http_inspect_server: server default \
profile all ports { 80 8080 8180 } oversize_dir_length 500

#preprocessor http_inspect_server: server default \ ← コメントアウトします(Snort実行時エラー対処)
# profile all ports { 80 8080 8180 } oversize_dir_length 500 ← コメントアウトします(Snort実行時エラー対処)
preprocessor portscan: $HOME_NET 4 3 portscan.log ← ポートスキャンログを取得するようにするため最下行に追加します
SnortSnarfの設定
SnortSnarfのpmファイル(HTMLMemStorage.pm)を編集します
[root@server ~]# vi /usr/local/snortsnarf/include/SnortSnarf/HTMLMemStorage.pm
return @arr->[($first-1)..$end];
   ↓
return @arr[($first-1)..$end]; ← ”->”を削除します(SnortSnarf実行時エラー対処)
SnortSnarfのpmファイル(HTMLAnomMemStorage.pm)を編集します
[root@server ~]# vi /usr/local/snortsnarf/include/SnortSnarf/HTMLAnomMemStorage.pm
return @arr->[($first-1)..$end];
   ↓
return @arr[($first-1)..$end]; ← ”->”を削除します(SnortSnarf実行時エラー対処)
Webサーバー設定
SnortSnarfによるHTML出力先ディレクトリ作成
[root@server ~]# mkdir /var/www/html/snort
Snortの起動
Snortを起動します
[root@server ~]# /etc/rc.d/init.d/snortd start
Starting snort: [ OK ]
SnortSnarfの起動
SnortSnarfの実行スクリプトを作成します
[root@server ~]# vi snortsnarf.sh
#!/bin/sh
cd /usr/local/snortsnarf
./snortsnarf.pl -d /var/www/html/snort /var/log/snort/alert /var/log/snort/portscan.log
Snortが記録した不正アクセスログを入力してHTMLに整形したものを/var/www/html/snort/ディレクトリへ出力します
SnortSnarfの実行スクリプトに実行権限を与えます
[root@server ~]# chmod +x snortsnarf.sh
SnortSnarfを実行します
[root@server ~]# ./snortsnarf.sh
SnortFileInput: input file /var/log/snort/alert exists but is length 0; skipping it
SnortFileInput: input file /var/log/snort/portscan.log exists but is length 0; skipping it
http://サーバーのIPアドレス/snort/ にアクセスして「SnortSnarf start page」というページが表示されることを確認します
SnortSnarf定期自動実行設定
crondを編集します
[root@server ~]# crontab -e
45 0-23/2 * * * /root/snortsnarf.sh > /dev/null 2>&1
2時間おきの45分にSnortSnarfを実行するように追加します
SnortSnarfの日本語化パッチのインストール
SnortSnarfのpmファイル格納ディレクトリへ移動します
[root@server ~]# cd /usr/local/snortsnarf/include/SnortSnarf/
オリジナルのpmファイルをリネーム
[root@server SnortSnarf]# mv HTMLOutput.pm HTMLOutput.pm.org
日本語化対応のpmファイルをダウンロードします
[root@server SnortSnarf]# wget http://mt-fuji.ddo.jp/~fujito/Linux/secu_soft/s2/HTMLOutput.pm
–00:43:13– http://mt-fuji.ddo.jp/~fujito/Linux/secu_soft/s2/HTMLOutput.pm
=> `HTMLOutput.pm’
mt-fuji.ddo.jp をDNSに問いあわせています… 58.188.20.227
mt-fuji.ddo.jp|58.188.20.227|:80 に接続しています… 接続しました。
HTTP による接続要求を送信しました、応答を待っています… 200 OK
長さ: 86,832 (85K) [text/plain]
100%[===================================================================>] 86,832 277.31K/s
00:43:14 (276.64 KB/s) – `HTMLOutput.pm’ を保存しました [86832/86832]
SnortSnarf日本語化確認
[root@server SnortSnarf]# /root/snortsnarf.sh
SnortFileInput: input file /var/log/snort/alert exists but is length 0; skipping it
SnortFileInput: input file /var/log/snort/portscan.log exists but is length 0; skipping it
http://サーバーのIPアドレス/snort/ にアクセスして「SnortSnarf ページの開始」というページが表示されることを確認
ルールファイルの自動更新 Oinkmasterのインストール
/usr/local/ディレクトリへ移動します
[root@server SnortSnarf]# cd /usr/local/
Oinkmasterをダウンロードします
[root@server local]# wget http://easynews.dl.sourceforge.net/sourceforge/oinkmaster/oinkmaster-2.0.tar.gz
–00:46:33– http://easynews.dl.sourceforge.net/sourceforge/oinkmaster/oinkmaster-2.0.tar.gz
=> `oinkmaster-2.0.tar.gz’
easynews.dl.sourceforge.net をDNSに問いあわせています… 69.16.168.245
easynews.dl.sourceforge.net|69.16.168.245|:80 に接続しています… 接続しました。
HTTP による接続要求を送信しました、応答を待っています… 200 OK
長さ: 80,111 (78K) [application/x-tar]
100%[===================================================================>] 80,111 135.19K/s
00:46:34 (135.10 KB/s) – `oinkmaster-2.0.tar.gz’ を保存しました [80111/80111]
Oinkmaster解凍
[root@server local]# tar zxvf oinkmaster-2.0.tar.gz
oinkmaster-2.0
oinkmaster-2.0/README.templates
oinkmaster-2.0/oinkmaster.pl
oinkmaster-2.0/FAQ
oinkmaster-2.0/UPGRADING
oinkmaster-2.0/README
oinkmaster-2.0/README.win32
oinkmaster-2.0/README.gui
oinkmaster-2.0/LICENSE
oinkmaster-2.0/INSTALL
oinkmaster-2.0/ChangeLog
oinkmaster-2.0/oinkmaster.1
oinkmaster-2.0/template-examples.conf
oinkmaster-2.0/oinkmaster.conf
oinkmaster-2.0/contrib
oinkmaster-2.0/contrib/create-sidmap.pl
oinkmaster-2.0/contrib/addsid.pl
oinkmaster-2.0/contrib/makesidex.pl
oinkmaster-2.0/contrib/addmsg.pl
oinkmaster-2.0/contrib/README.contrib
oinkmaster-2.0/contrib/oinkgui.pl
ダウンロードしたファイルを削除します
[root@server local]# rm -f oinkmaster-2.0.tar.gz
Oinkmasterの設定
Oinkmasterの設定ファイルの編集をします
[root@server local]# vi /usr/local/oinkmaster-2.0/oinkmaster.conf
# Example for Community rules
url = http://www.snort.org/pub-bin/downloads.cgi/Download/comm_rules/Community-Rules.tar.gz

url = http://www.snort.org/pub-bin/downloads.cgi/Download/comm_rules/Community-Rules-2.4.tar.gz
Oinkmasterの起動
rootのホームディレクトリへ移動します
[root@server local]# cd
Oinkmasterの実行スクリプトを作成します
[root@server ~]# vi oinkmaster.sh
#!/bin/sh
cd /usr/local/oinkmaster-2.0/
./oinkmaster.pl -C oinkmaster.conf -o /etc/snort/rules/
Oinkmaster実行スクリプトに実行権限を与えます
[root@server ~]# chmod +x oinkmaster.sh
Oinkmasterを実行します
[root@server ~]# ./oinkmaster.sh
Loading /usr/local/oinkmaster-2.0/oinkmaster.conf
Downloading file from http://www.snort.org/pub-bin/downloads.cgi/Download/comm_rules/Community-Rules-2.4.tar.gz… done.
Archive successfully downloaded, unpacking… done.
Setting up rules structures… done.
Processing downloaded rules… disabled 0, enabled 0, modified 0, total=138
Setting up rules structures… done.
Comparing new files to the old ones… done.
Updating local rules files… done.
[***] Results from Oinkmaster started 20060330 01:09:10 [***]
[+++] Added rules: [+++]



[+++] Added non-rule lines: [+++]



[+] Added files (consider updating your snort.conf to include them if needed): [+]



Oinkmasterの定期自動起動設定
crond編集
[root@server ~]# crontab -e
00 05 * * * /root/oinkmaster.sh > /dev/null 2>&1
毎日5:00にOinkmasterを実行するように追加します

chkrootkitのインストール

システムにrootkitが組み込まれていないかを検査してくれるツール「chkrootkit.i386 0:0.46a-2.fc5」をFC-5にインストールしました。

[root@server ~]# yum -y install chkrootkit
Repository atrpms is listed more than once in the configuration
Repository dries is listed more than once in the configuration
Repository livna is listed more than once in the configuration
Repository updates-released is listed more than once in the configuration
Repository atrpms-testing is listed more than once in the configuration
Repository flash is listed more than once in the configuration
Repository atrpms-bleeding is listed more than once in the configuration
Repository dag is listed more than once in the configuration
Repository jpackage-fedora is listed more than once in the configuration
Repository freshrpms is listed more than once in the configuration
Repository livna-testing is listed more than once in the configuration
Repository jpackage-generic is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository newrpms is listed more than once in the configuration
Setting up Install Process
Setting up repositories
livna-stable                                                         [1/8]
livna                                                                [2/8]
updates-released                                                     [3/8]
core                                                                 [4/8]
base                                                                 [5/8]
livna-testing                                                        [6/8]
extras                                                               [7/8]
livna-unstable                                                       [8/8]
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package chkrootkit.i386 0:0.46a-2.fc5 set to be updated
--> Running transaction check
Dependencies Resolved
===========================================================
Package                 Arch       Version          Repository        Size
===========================================================
Installing:
chkrootkit              i386       0.46a-2.fc5      extras            264 k
Transaction Summary
===========================================================
Install      1 Package(s)
Update       0 Package(s)
Remove       0 Package(s)
Total download size: 264 k
Downloading Packages:
(1/1): chkrootkit-0.46a-2 100% |=====================| 264 kB    00:00
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: chkrootkit                   ######################### [1/1]
Installed: chkrootkit.i386 0:0.46a-2.fc5
Complete!

chkrootkitの実行
chkrootkitディレクトリへ移動します

[root@server ~]# cd /usr/lib/chkrootkit-0.46a

chkrootkitを実行します

[root@server chkrootkit-0.46a]# ./chkrootkit
ROOTDIR is `/'
Checking `amd'... not found
Checking `basename'... not infected
Checking `biff'... not found
Checking `chfn'... not infected
Checking `chsh'... not infected
Checking `cron'... not infected
Checking `date'... not infected
     ・
     ・
     ・
Checking `rexedcs'... not found
Checking `sniffer'... eth0: not promisc and no PF_PACKET sockets
Checking `w55808'... not infected
Checking `wted'... chkwtmp: nothing deleted
Checking `scalper'... not infected
Checking `slapper'... not infected
Checking `z2'... chklastlog: nothing deleted
Checking `chkutmp'... chkutmp: nothing deleted

実行結果中に”INFECTED”という行がなければ問題ありません
chkrootkitの実行(エラーのみ表示)

[root@server chkrootkit-0.46a]# ./chkrootkit -q
/usr/lib/perl5/5.8.8/i386-linux-thread-multi/.packlist /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi/auto/Time-modules/.packlist /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/auto/NKF/.packlist

chkrootkitの定期自動実行設定
chkrootkitの実行スクリプトを作成します

[root@server chkrootkit-0.46a]# vi /root/chkrootkit.sh
cd /usr/lib/chkrootkit-0.46a/
./chkrootkit > /var/log/chkrootkit.log
chmod 600 /var/log/chkrootkit.log
grep INFECTED /var/log/chkrootkit.log

chkrootkitの実行スクリプトに実行権限を与えます

[root@server chkrootkit-0.46a]# chmod 700 /root/chkrootkit.sh

cronを編集します

[root@server chkrootkit-0.46a]# crontab -e
00 02 * * * /root/chkrootkit.sh

毎日2:00にchkrootkitの実行スクリプトを実行します

F-Prot Antivirusのインストール

FC-4まではウイルス対策ソフトに「BitDefender」を使ってたのですが、 FC-5にしたら「BitDefender」が使えなくなったので「F-Prot Antivirus」をインストールしました。
F-Prot Antivirusのダウンロードサイトから以下の情報を入力してダウンロードします。

First Name:*tatsushi
Last Name:*higo
E-mail Address:*higo@gray.plala.or.jp
E-mail Address (again):*higo@gray.plala.or.jp
Country:*Japan
Intended use:*Home User
Number of Computers in Your Network:*1-10
Where did you hear of F-Prot Antivirus?*Other

F-Prot Antivirusインストール
ダウンロードされたファイルはディスクトップに保存されてたのでrootへ移動しておく

[root@server ~]# rpm -ivh fp-linux-ws.rpm
準備中...                   ########################################### [100%]
1:fp-linux-ws            ########################################### [100%]
***************************************
* F-Prot Antivirus Updater            *
***************************************
There's a new version of:
"Document/Office/Macro viruses" signatures on the web.
Starting to download...
Download completed.
There's a new version of:
"Application/Script viruses and Trojans" signatures on the web.
Starting to download...
Download completed.
Preparing to install Application/Script viruses and Trojans signatures.
Application/Script viruses and Trojans signatures have successfully been installed.
Preparing to install Document/Office/Macro viruses signatures.
Document/Office/Macro viruses signatures have successfully been installed.
**********************************
* Update completed successfully. *
**********************************

インストール確認

[root@server ~]# f-prot -verno
F-PROT ANTIVIRUS
Program version: 4.6.6
Engine version: 3.16.14
VIRUS SIGNATURE FILES
SIGN.DEF created 23 March 2006
SIGN2.DEF created 23 March 2006
MACRO.DEF created 23 March 2006

ウィルススキャンテスト

[root@server ~]# f-prot /etc/passwd
Virus scanning report  -  25 March 2006 @ 8:10
F-PROT ANTIVIRUS
Program version: 4.6.6
Engine version: 3.16.14
VIRUS SIGNATURE FILES
SIGN.DEF created 23 March 2006
SIGN2.DEF created 23 March 2006
MACRO.DEF created 23 March 2006
Search: /etc/passwd
Action: Report only
Files: "Dumb" scan of all files
Switches: -ARCHIVE -PACKED -SERVER
Results of virus scanning:
Files: 1
MBRs: 0
Boot sectors: 0
Objects scanned: 1
Time: 0:00
No viruses or suspicious files/boot sectors were found.

ウィルスは検出されなかった
ウィルス定義ファイル最新化

[root@server ~]# /usr/local/f-prot/tools/check-updates.pl
***************************************
* F-Prot Antivirus Updater            *
***************************************
Nothing to be done...

最新になっている
スキャン実行スクリプト作成

[root@server ~]# vi f-prot.sh
/usr/local/f-prot/tools/check-updates.pl > /var/log/f-prot.log
/usr/local/bin/f-prot -auto -disinf -delete / >> /var/log/f-prot.log
grep "Infection" /var/log/f-prot.log

実行権限付加

[root@server ~]# chmod 700 f-prot.sh

スキャン定期自動実行

[root@server ~]# crontab -e
00 03 * * * /root/f-prot.sh

荒らし対策

本家サイトの「よけんさかの掲示板」には「LQアクセス制限ライブラリ」と「.htaccess」でアクセス制限をかけてますが、最近の掲示板荒らしはIPを変えて自動的に書き込みを繰り返すソフトを使用しています。その都度アクセス拒否の設定をするのは結構面倒なものです。もっとも効果的で簡単な方法は掲示板のURLの変更なのですが、URLを変更すると掲示板に直リンクされてる方がアクセスできなくなると思い、今までURLの変更はしませんでした。でも、あまりにも変な書き込みが多いので各掲示板のURLの変更をしてあります。各掲示板へ直接お越しの方は、「お気に入り」のリンク先を変更して下さい。よろしくお願いします。
URL変更に伴い、荒らし対策として以下の投稿はアクセス禁止となるように設定してありますので宜しくお願いします。
① 参照先のURLと同一URLがコメント中に含まれている。
② コメント中に日本語が含まれていない。
③ コメント中のURLが4個を越えている。
設定方法は以下の通りです。バージョンにより多少違うかもしれませんが、
「# フォーム入力チェック」の所に「#▼ここから▼」から「#▲ここまで追加▲」を追加します。
■ joyful/joyful.cgi

sub regist {
local($top,$ango,$f,$match,$tail,$W,$H,@lines,@new,@tmp);
# フォーム入力チェック
&form_check;
#▼ここから▼
$c = $in{'comment'};
if ($in{'url'} && $c =~ /\Q$in{'url'}\E/i) { &error("参照先のURLと同一URLがコメント中に含まれています"); }
if ($c !~ /[\x80-\xff]/) { &error("コメント中に日本語が含まれていません"); }
$urlnum = ($c =~ s/http/http/g);
if ($urlnum > 3) { &error("コメント中のURLが4個を越えています"); }
#▲ここまで追加▲
# 禁止ワードチェック
if ($deny_word) {
&deny_word($in{'name'});
&deny_word($in{'comment'});
}

■ clip/clip.cgi

       ・
       ・
       ・
# フォーム内容をチェック
if (!$PostMode && $in{'name'} eq "") { &error("名前が入力されていません"); }
if ($in{'comment'} eq "") { &error("コメントが入力されていません"); }
if ($in{'email'} && $in{'email'} !~ /^[\w\.\-]+\@[\w\.\-]+\.[a-zA-Z]{2,6}$/) {
&error("Eメールの入力内容が不正です
"); } #▼ここから▼ $c = $in{'comment'}; if ($in{'url'} && $c =~ /\Q$in{'url'}\E/i) { &error("参照先のURLと同一URLがコメント中に含まれています"); } if ($c !~ /[\x80-\xff]/) { &error("コメント中に日本語が含まれていません"); } $urlnum = ($c =~ s/http/http/g); if ($urlnum > 3) { &error("コメント中のURLが4個を越えています"); } #▲ここまで追加▲ # 時間を取得 $ENV{'TZ'} = "JST-9"; $time = time; ($min,$hour,$mday,$mon,$year,$wday) = (localtime($time))[1..6];

■ yybbs/yyregi.cgi

sub regist {
local($flag,$oyaChk,@lines,@data,@new,@tmp);
# 時間取得
&get_time;
# フォーム入力チェック
&formCheck;
#▼ここから▼
$c = $in{'comment'};
if ($in{'url'} && $c =~ /\Q$in{'url'}\E/i) { &error("参照先のURLと同一URLがコメント中に含まれています"); }
if ($c !~ /[\x80-\xff]/) { &error("コメント中に日本語が含まれていません"); }
$urlnum = ($c =~ s/http/http/g);
if ($urlnum > 3) { &error("コメント中のURLが4個を越えています"); }
#▲ここまで追加▲
# 投稿キーチェック