プラグイン「NP_CommentEdit」のインストール

Nucleusでかなり古い記事にコメント頂いた場合、それを編集するような時には、管理画面から出来ますが、その記事のコメントにたどり着くには、かなりさかのぼらないといけません。正直言って面倒です。そこで、コメントの表示画面から編集できるように「NP_CommentEdit」をインストールしました。ログインしないと編集ボタンも表示されませんので一般ユーザーには見えません。本当は一般ユーザーが自分のコメントを編集できるような物があればいいのですが・・・・
プラグイン:NP_CommentEdit

ClamAV自動アップデート失敗

■ Fedora8
ClamAVの最新版がリリースされると自動でアップデートしてくれるツールclamav-updateをインストールしてたのですが、最新版がリリースされたにもかかわらずアップデートに失敗してるようです。clamav-updateのインストール時にオプション設定しなければならないようですが、暮れで忙しいのでとりあえずソースから手動で最新版をインストールして後日clamav-updateを見直してみたいと思います。
■ ソースからインストールした古いバージョンのclamavをアンインストールします

アンインストール用にバックアップしてあったモジュールを展開。
[root@server ~]# tar zxvf clamav-0.91.2_self.tar.gz
clamav-0.91.2のディレクトリへ移動
[root@server ~]# cd clamav-0.91.2
clamav-0.91.2のアンインストール
[root@server clamav-0.91.2]# make uninstall
clamav-0.91.2のファイルとディレクトリーを削除
[root@server clamav-0.91.2]# cd
[root@server ~]# rm -f clamav-0.91.2_self.tar.gz
[root@server ~]# rm -rf clamav-0.91.2
古いバージョンのディレクトリーの削除
[root@server ~]# rm -rf /usr/local/clamav

■ 最新版のClamAVをダウンロードします 最新版は公式サイトで確認できます。

[root@server ~]# wget http://freshmeat.net/redir/clamav/29355/url_tgz/clamav-0.92.tar.gz
clamav-0.92を展開
[root@server ~]# tar zxvf clamav-0.92.tar.gz
ダウンロードしたファイルを削除
[root@server ~]# rm -f clamav-0.92.tar.gz
clamav-0.92ディレクトリーへ移動
[root@server ~]# cd clamav-0.92
Makefileを自動作成するためのツール「configure」を実行。
[root@server clamav-0.92]# ./configure --prefix=/usr/local/clamav
makeを実行し、clamavをインストール
[root@server clamav-0.92]# make
[root@server clamav-0.92]# make install

■ アンインストール用にバックアップしておきます

[root@server clamav-0.92]# cd
[root@server ~]# tar cvf clamav-0.92_self.tar ./clamav-0.92
[root@server ~]# gzip clamav-0.92_self.tar

■ 設定ファイル変更
インストールが正常に完了したらまず、二つの設定ファイル
/usr/local/clamav/etc/freshclam.conf
/usr/local/clamav/etc/clamd.conf
をエディタで開きExampleと書かれた行をコメントアウトし、保存します。

[root@server ~]# vi /usr/local/clamav/etc/freshclam.conf
# Comment or remove the line below.
Example
↓
#Example
[root@server ~]# vi /usr/local/clamav/etc/clamd.conf
# Comment or remove the line below.
Example
↓
#Example

■ 「freshclam」を使用してVirusDBをアップデート

[root@server ~]# /usr/local/clamav/bin/freshclam
ClamAV update process started at Sat Dec 22 12:21:11 2007
main.cvd is up to date (version: 45, sigs: 169676, f-level: 21, builder: sven)
WARNING: getfile: daily-5111.cdiff not found on remote server (IP: 121.116.26.171)
ERROR: getpatch: Can't download daily-5111.cdiff from database.clamav.net
WARNING: getfile: daily-5111.cdiff not found on remote server (IP: 121.116.26.171)
ERROR: getpatch: Can't download daily-5111.cdiff from database.clamav.net
WARNING: getfile: daily-5111.cdiff not found on remote server (IP: 219.117.246.122)
ERROR: getpatch: Can't download daily-5111.cdiff from database.clamav.net
WARNING: Incremental update failed, trying to download daily.cvd
Downloading daily.cvd [100%]
daily.cvd updated (version: 5216, sigs: 10553, f-level: 21, builder: ccordes)
Database updated (180229 signatures) from database.clamav.net (IP: 61.205.61.201)

■ ウィルススキャン確認(/etc/passwdをスキャンしてみる)

[root@server ~]# /usr/local/clamav/bin/clamscan --infected --remove --recursive /etc/passwd
----------- SCAN SUMMARY -----------
Known viruses: 180229
Engine version: 0.92
Scanned directories: 0
Scanned files: 1
Infected files: 0
Data scanned: 0.00 MB
Time: 3.234 sec (0 m 3 s)

version: 0.92でスキャンされてることを確認
■ Clam AntiVirusの定期自動実行設定
毎日自動的にウィルス定義ファイル最新化して、全てのファイルのウィルススキャンを行うスプリクトの作成

[root@linux ~]# vi clamav.sh
#!/bin/bash
PATH=/usr/bin:/bin
# excludelist
excludelist=/root/clamscan.exclude
if [ -s $excludelist ]; then
for i in `cat $excludelist`
do
if [ $(echo "$i"|grep \/$) ]; then
i=`echo $i|sed -e 's/^\([^ ]*\)\/$/\1/p' -e d`
excludeopt="${excludeopt} --exclude-dir=$i"
else
excludeopt="${excludeopt} --exclude=$i"
fi
done
fi
CLAMSCANTMP=`mktemp`
/usr/local/clamav/bin/freshclam > /dev/null
/usr/local/clamav/bin/clamscan --recursive --remove ${excludeopt} / > $CLAMSCANTMP 2>&1
[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \
grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found in `hostname`" root
rm -f $CLAMSCANTMP

■ Clam AntiVirus定期自動実行スクリプトに実行権限付加

[root@linux ~]# chmod 700 clamav.sh

■ cron編集

[root@linux ~]# crontab -e
00 03 * * * /root/clamav.sh ← 追加(毎日3:00にClam AntiVirusの定期自動実行)

■ スキャン除外設定
backupディレクトリをスキャン対象外にするように設定

[root@linux ~]# echo "/backup/" >> clamscan.exclude

コメント内の自動リンク表示変更

Nucleusはコメント内にurlがあった場合、表示されるurlは
最後が[…]になってしまいますので、全部表示されるようにしました。
ただし、以前のコメントに関しては全部表示になりません。
nucleus/libs/COMMENT.phpの最下行を編集

return $pre . '<a href="'.$linkedUrl.'">'.shorten($displayedUrl,30,'...').'</a>' . $post;
↓
return $pre . '<a href="'.$linkedUrl.'">'.$displayedUrl.'</a>' . $post;

Fedora 8 のインストール

■Fedora 8 の取得
前回の Fedora 7 から、ディスクイメージは DVD版のみとなってます。Fedora Projectから(Fedora-8-i386-DVD)をダウンロードします。ダウンロードしたファイルは、ISOイメージファイルですので、別途DVD-Writerソフト等でDVD-Rに焼いて準備します。CPUの種類によってダウンロードする物が違ってきますから環境に合わせてください。
Direct Download
i386 – Install DVD
x86_64 – Install DVD
ppc – Install DVD
■Fedora 8 のインストール
グラフィカルモード(GUI)でインストール作業を進めますが、サーバー用途で linux を使用する際には、X Window Systemを利用することをあまり推薦していません。なぜならGUIが余計なリソースを使用するからです。もし常にX Window Systemを利用する必要が無いのであれば、後で /etc/inittab を編集し、 “id:5:initdefault:” を “id:3:initdefault:” に変更します。そうする事で次回起動時よりランレベル3(CUI)で起動します。また、ランレベル3でX Window Systemを起動したい場合には、 startx コマンドを実行します。
1.インストーラーの起動
Fedora 8 のインストールDVDをDVD-ドライブに挿入し、電源を入れます。
※BIOSの設定で1番最初にDVDからブートできるようになっている必要があります。
* Install or upgrade an existing system を選択してエンターをキーを押します。
2.CDメディアのテスト
* Skip にあわせて Enter を押します。
3.Welcomeメッセージ
* Next を押します。
4.インストール時の言語の選択
* Japanese(日本語) を選び、 Next を押します。
* ここでの言語の選択は、あくまでインストール作業を進めていくときに使用する言語の選択です。 実際にシステムを使用するときの言語選択に関しては、後で設定を行います。
5.キーボード設定
* 日本語 になっていることを確認して、 を押します。
* キーボードに「半角/全角」キーが無い場合は、「U.S.English」を選択します。
6.ディスクパーティションの作成
* 選択したドライブ上のすべてのパーテーションを削除してデフォルトのレイアウトを作成します。を選択
*パーティションを自動設定にして を押します。
* 本当にすべてを削除しますか?と言う警告が出ますが はい を押します。
7.ネットワークの設定
* 編集ボタン をクリックして、ネットワークデバイスを編集します。
* Enable IPv4 support: チェックを入れる
* Manual configuration: チェックを入れる
* IP Address: 192.168.1.2 / Prefix(Netmask):24
を入力
* Enable IPv6 support: チェックを外す
チェックを外したらOK をクリック
8. ホスト名・その他の設定
* ホスト名を設定は 手動設定 を選択して linux.yokensaka.com と入力
* ゲートウェイ : 192.168.1.1
* 1番目のDNS : 192.168.1.1
1番目のDNSは通常サーバー自身をDNSサーバーとして設定するときにサーバー自身に割り当てた 192.168.1.2 をDNSサーバーアドレスとして設定します。 しかし、ここで 192.168.1.2 に設定するとインターネットに繋がらなくなり、wgetによるダウンロードができなくなる為、この段階では1番目のDNSは 192.168.1.1 とします。
9.タイムゾーンの選択
* アジア/東京 を選択して、 を押します。
10.Rootパスワードを設定
* Root パスワード : xxxxxxxx
* 確認 : xxxxxxxx
スーパーユーザ(Root)のパスワードを入力します。確認の為にもう一回同じパスワードを入力します。
注意 : このパスワードは絶対に忘れない様に! 何もできなくなってしまいます。
11.ソフトウェアセットの選択
* チェックボックスは全て外す
* 「今すぐカスタマイズする」を選択して を押します
12.ソフトウェアセットの選択
* デスクトップ環境  デフォルト
* アプリケーション  デフォルト
* 開発 開発ツール、開発ライブラリ を選択
* サーバ  デフォルト
* ベースシステム  デフォルト 
* 言語  デフォルト
サーバーを構築する際は極力不要なパッケージはインストールせず、すべてのチェックをはずして必要になったときにその都度インストールすべきですが、 ここでは、作業の行いやすさを考え、「開発」以外はデフォルトにして ボタンを押します。
13.インストールの準備完了
* を押してインストールを開始します。
14.パッケージのインストール
* インストール完了したらDVDドライブよりDVD-Rが自動的に排出されます。
15.インストール作業の終了
* 再起動 を押してインストールを終了します。
16.Fedora 8 の起動
* コンピューターの再起動が行われ、しばらくすると Fedora 8 が起動し、初期設定を行う画面が表示されます。
17.インストール後の初期設定
* ようこそ画面では 進む を押します。
18.ライセンスの同意書
* はい、私はライセンス同意書に同意します を選択して、 進む を押します。
19.ファイアーウォールの設定
* 無効 を選択して 進む を押します。
ファイアーウォールは先に有効にしておくと、各サーバの設定が正しいにも関わらず、ファイアウォールによって通信が遮断されてしまうことがありますので、 セキュリティーに関しては後から設定することとします。
20.SELinuxの設定
* 無効 を選択して 進む を押します。
SELinux を有効にすると、LInux の全てのユーザー(rootも含む)にさまざまな制限をかけることができ、 万が一rootが乗っ取られても影響を最小限にすることが出来ます。本来はSELinuxを有効にするべきですが、 トラブル時の対応が複雑になる為、ここでは無効にします。
21.日付と時刻
* 日付と時刻を 正しい設定 に変更して 進む を押します。
22.Hardware Profile
* ハードウェアーの情報を送信しても良い方は「Send Profile」を、送信したくない方は「Do not send profile」を選択して、進む を押します。
  *「Do not send profile」を選択した場合は再メッセージが出てきますので、「No,do not send」ボタンをクリック して、進む を押します。
23.ユーザーの作成
* ここではそのまま 進む ボタンを押します。警告が表示されますので 続ける ボタンを押します。
ユーザーの追加は後でコマンドを使った方法で追加します。
24.サウンドカード
* サウンドカードが認識された場合に表示されます。 終了 を押して再起動します。
25.ログイン
* ログイン画面が表示されたら、rootユーザーでログインしますので root と入力します。
* rootユーザーのパスワード ******** を入力し、 Enter を押します。
パスワードが正しければそのユーザーで作業が出来るように Fedora 8 のデスクトップ画面が表示されます。

文字化け

■ Fedora8
インストール時に言語の選択で「Japanese(日本語)」を選択してインストールしましたが、フォルダ名も日本語になる為、GNOME 端末や putty を起動するとフォルダ名が文字化けを起こしてしまいます。当然(CUI)での作業が出来ません。サーバー機なので常にX Window Systemを利用する必要もありませんので、言語を「English (USA)」に戻しました。いくら日本語対応したとはいえフォルダ名まで日本語にする必要は無いと思うのですが・・・・・

Fedora 8 にバージョンアップ

11月9日、 Linuxディストリビューション Fedora 8 がリリースされました。早速ダウンロードして自宅サーバーの予備機に Fedora 8 をインストールしました。特にトラブルも無くすんなりインストール出来ました。 Fedora 7 でうまくいかなかった Snort はインストールしてませんが、カテゴリーにある、他の各種サーバー設定、セキュリティー設定等、全て Fedora 7 と同じでいけました。今のところ問題なく動いてます。暫く様子見て安定してるようならメインサーバーも Fedora 8 にしようと思ってます。今までに比べて、インストールする際にメモリーが足りないという警告が出たり、なんかもたつく感じがしましたが、これは予備サーバーのマシンが非力な為ですから仕方ないですね。
3種類のInstall DVD が用意されてますからマシンに合ったものをインストールします。
管理人は i386 – Install DVD をダウンロードしました。
Direct Download
i386 – Install DVD
x86_64 – Install DVD
ppc – Install DVD
Fedora 8 のログイン画面とデスクトップ画面です。Fedora 7 より落ち着いた色合いになりましたね。
20071109-Fedora-8.jpg

clamav-updateのインストール

■ Fedora7 / Fedora8
ClamAVの最新版がリリースされると手動でアップデートしてたんですが、それを手助けしてくれるツールclamav-updateがあったのでインストールしました。clamav-updateはソースからインストールしたClamAVを、最新版と現在インストールされているバージョンを比較し、新しいバージョンがリリースされているときに、新しいものを自動でダウンロードして、ビルド、インストールしてくれる便利なツールです。
■ clamav-updateのインストール
clamav-updateの最新版はclamav-updateプロジェクトのページからダウンロードできます。

clamav-updateをダウンロード
[root@server ~]# wget http://osdn.dl.sourceforge.jp/clamav-update/26300/clamav-update-2.2.3.tar.gz
アーカイブファイルを展開
[root@server ~]# tar zxvf clamav-update-2.2.3.tar.gz
展開されたディレクトリへ移動
[root@server ~]# cd clamav-update-2.2.3
clamav-updateをインストール
[root@server clamav-update-2.2.3]# ./install.sh
展開先ディレクトリから出る
[root@server clamav-update-2.2.3]# cd
展開先ディレクトリを削除
[root@server ~]# rm -rf clamav-update-2.2.3
ダウンロードしたアーカイブファイルを削除
[root@server ~]# rm -f clamav-update-2.2.3.tar.gz

■ freshclamとclamav-updateの連携
ClamAVを常に最新に保つにはfreshclamがroot権限で動作する必要があります。そのためにはfreshclamのウィルスデータベース更新設定ファイルfreshclam.confでDatabaseOwnerディレクティブをrootに変更します。そして、OnOutdatedExecuteディレクティブをfreshclamがClamAV本体のアップデートを検知したらclamav-updateが実行されるよう設定します。

[root@server ~]# vi /usr/local/clamav/etc/freshclam.conf
# By default when started freshclam drops privileges and switches to the
# "clamav" user. This directive allows you to change the database owner.
# Default: clamav (may depend on installation options)
#DatabaseOwner clamav
↓追記
DatabaseOwner root
# Run command when freshclam reports outdated version.
# In the command string %v will be replaced by the new version number.
# Default: disabled
#OnOutdatedExecute command
↓追記
OnOutdatedExecute /usr/local/bin/clamav-update.pl --config /usr/local/etc/clamav-update.conf

crontabsのバグ対策

■ Fedora7
crontabsのバグで自動スクリプトが自動起動しないようなので対処しました

[root@server ~]# vi /usr/bin/run-parts
#!/bin/bash
# if cron.daily was run today
下記をコメントアウト
AUX1=`cat /var/spool/anacron/cron.daily`
AUX2=`date +%Y%m%d`
[ "$AUX1" == $AUX2 ] || exit 0
↓
#!/bin/bash
# if cron.daily was run today
#AUX1=`cat /var/spool/anacron/cron.daily`
#AUX2=`date +%Y%m%d`
#[ "$AUX1" == $AUX2 ] || exit 0

NP_ShowBlogs.php 編集

ブログ内をいろいろ見ていく内にTOPに戻るにはどうしたらいいの? という事が有ります。Homeというところや、ブログのタイトルをクリックするとTOPページに戻れるのですが、分かりやすいように上下のページスイッチのところに「TOP」を追加しました。
NP_ShowBlogs.phpの683行目に以下を追加

if ($type >= 1) {
$buf .= '<div class="pageswitch">' . "\n";
$buf .= '<a href="index.php" title="TOP page">TOP</a>  ';    ← 追加