atom v1.0のRSS表示、文字化け及びエラー対策

nucleusのatom v1.0を使ってRSS表示しようとすると、Firefoxだと文字化け、IEだとエラーになってたので、atom.phpを以下のように修正。FirefoxでもIEでもちゃんと表示できるようになった。

} else {
header("Content-Type: application/xml");
// dump feed
echo $feed;
}
   ↓ ↓
} else {
if ($CONF['Language'] == 'japanese-euc') { $feed = mb_convert_encoding($feed, "UTF-8", "EUC-JP");}
header("Content-Type: application/xml");
// dump feed
echo $feed;
}

■追記
サイト内にはいくつかの Nucleus が有るが、atomの表示が文字化けしているサイトと文字化けしてないサイトが有ったので、文字化けしてないサイトのatomのスキンをコピーして貼りつけたら上手く表示されるようになった。見た目にはまったく同じなんだが・・・

RSSが表示されない

データベースを予備サーバーからリストアしたらRSSリーダーが表示されなくなった。どうもMysqlのキャラクタセットがおかしくなったみたいで、うまくRSSを読み込めてないようだ。ブログのRSSをクリックしても空白のページになる。対処方法を調べてみた。検索ではいろいろヒットするがどれもあにょのトラブルに当てはまらない。そんななかで「phpMyAdmin」で照合順序を「ujis_japanese_ci」に変更すれば良さそうだという情報が引っかかった。さっそく試してみることに!!
ビンゴだった。(^o^)
おかしくなってるデータベースを選択、「操作」の照合順序を「ujis_japanese_ci」にして「実行する」を押すだけ。RSSリーダーが表示されるようになった。
20101005-phpmyadmin

CentOS 5 のインストール

■ CentOS 5 の取得
CentOSをhttp://www.centos.org/より取得
2種類あるので目的に合ったものをダウンロード
Direct Download
i386 – http://mirror.centos.org/centos/5/isos/i386/
x86_64 – http://mirror.centos.org/centos/5/isos/x86_64/
あにょはhttp://ftp2.riken.jp/Linux/centos/5.5/isos/i386/ からCentOS-5.5-i386-bin-DVD.isoをダウンロード。ダウンロードしたファイルは、ISOイメージファイルなので、別途DVD-Writerソフト等でDVD-Rに焼いて準備しておく。
※2010年9月20日現在(CentOS-5.5-i386-bin-DVD.iso)
Release Notesは以下のサイト
CentOS – http://wiki.centos.org/Manuals/ReleaseNotes/CentOS5.5/Japanese
■ CentOS 5 のインストール
グラフィカルモード(GUI)でインストール作業を進めるが、サーバー用途で linux を使用する際には、X Window Systemを利用することをあまり推薦していない。もし常にX Window Systemを利用する必要が無いのであれinittab を編集し、 “id:5:initdefault:” を “id:3:initdefault:” に変更。そうする事で次回起動時よりランレベル3(CUI)で起動できる。また、ランレベル3でX Window Systemを起動したい場合には、 startx コマンドを実行。
1.インストーラーの起動
CentOS 5 のインストールDVDをDVD-ドライブに挿入し、電源を入れる。
※BIOSの設定で1番最初にDVDからブートできるようになっている必要である。
* [Install or upgrade an existing system] を選択して[Enter]キーを押す。
2.メディアのテスト
CD Found
* [Skip] を選び、[Enter]キーを押す。
3.CentOS のGUIが立ち上がるので
* [Next] ボタンをクリック。
4.言語の設定
インストール作業中に使用する言語の選択
* 「Japanese(日本語)」 を選び、[Next] ボタンをクリック。
* 実際にシステムを使用するときの言語選択に関しては、後で設定を行う。
5.キーボードの設定
* 106日本語キーボードを使っている場合は、「日本語」を選択して、[次]ボタンをクリック。
6.インストール方法の選択
* 新しくインストールするか、既存のシステムにインストールするかを選択。
7.ハード・ディスクの初期化
* 新しいハード・ディスクの場合、「警告」ダイアログが表示される。「OK」を選択すると、ハード・ディスクが初期化される。
8.ディスクパーティションの作成
* 「選択したドライブ上のすべてのパーテーションを削除してデフォルトのレイアウトを作成します。」を選択
* 警告メッセージが出るが「はい」を選択。
9.ネットワークの設定
* [編集] ボタンをクリックして、ネットワークデバイスを編集。
* IPv4 サポートを有効にする: チェックを入れる
* 手動による設定: チェックを入れる
* IP アドレス: yokensaka.com / プレフィックス(ネットマスク):24 を入力
* IPv6 サポートを有効にする: チェックを外す
チェックを外したら [次] をクリック
10. ホスト名・その他の設定
* ホスト名を設定は 手動設定 を選択して「server.yokensaka.com」と入力
* ゲートウェイ : 192.168.1.1
* 1番目のDNS : 192.168.1.1
入力したら [次] をクリック
1番目のDNSは通常サーバー自身をDNSサーバーとして設定するときにサーバー自身に割り当てた yokensaka.com をDNSサーバーアドレスとして設定。 しかし、ここで yokensaka.com に設定するとインターネットに繋がらなくなり、wgetによるダウンロードができなくなる為、この段階では1番目のDNSは 192.168.1.1 とする。
11.タイムゾーンの選択
* アジア/東京 を選択
* システムクロックでUTCを使用のチェックをはずして [次] をクリック
12.Rootパスワードを設定
* Root パスワード : xxxxxxxx
* 確認 : xxxxxxxx
スーパーユーザ(Root)のパスワードを入力。確認の為にもう一回同じパスワードを入力。
入力したら [次] をクリック
注意 : このパスワードは絶対に忘れない様に! 何もできなくなってしまう。
13ソフトウェアセットの選択
* 「今すぐカスタマイズする」を選択して [次] をクリック
14.ソフトウェアセットの選択
* デスクトップ環境  デフォルト
* アプリケーション  デフォルト
* 開発 開発ツール、開発ライブラリ を選択
* サーバ  デフォルト
* ベースシステム  デフォルト 
*
*
*
* 言語  デフォルト
サーバーを構築する際は極力不要なパッケージはインストールせず、すべてのチェックをはずして必要になったときにその都度インストールすべきだが、 ここでは、作業の行いやすさを考え、「開発」以外はデフォルトにして [次] をクリック
15.インストールの準備完了
* [次] をクリックしてインストールを開始。
16.パッケージのインストール
* インストール完了したらDVDドライブよりDVD-Rが自動的に排出される。
17.インストール作業の終了
* [再起動] を押してインストールを終了。
18.CentOS 5 の起動
* コンピューターの再起動が行われ、しばらくすると CentOS 5 が起動し、初期設定を行う画面が表示される。
19.インストール後の初期設定
* ようこそ画面では [進む] を押す。
20.ファイアーウォールの設定
* 無効 を選択して [進む] を押す。
ファイアーウォールは先に有効にしておくと、各サーバの設定が正しいにも関わらず、ファイアウォールによって通信が遮断されてしまうことがあるので、 セキュリティーに関しては後から設定することにする。
21.SELinuxの設定
* 無効 を選択して [進む] を押す。
SELinux を有効にすると、LInux の全てのユーザー(rootも含む)にさまざまな制限をかけることができ、 万が一rootが乗っ取られても影響を最小限にすることが出来る。本来はSELinuxを有効にするべきだが、 トラブル時の対応が複雑になる為、ここでは無効にする。
22.日付と時刻
* 日付と時刻を 正しい設定 に変更して [進む] を押す。
23.ユーザーの作成
* ここではそのまま [進む] を押す。警告が表示されるので [続ける] を押す。
ユーザーの追加は後でコマンドを使った方法で追加する。
24.サウンドカード
* サウンドカードが認識された場合に表示される。[進む] を押す。
25.追加のCD
* 追加ソフトウェアのインストール画面になるが、追加がなければ [終了] を押す。
26.ログイン
* ログイン画面が表示されたら、rootユーザーでログインするので「root」と入力。
* rootユーザーのパスワード「********」を入力し、[Enter] を押す。
パスワードが正しければそのユーザーで作業が出来るように CentOS 5 のデスクトップ画面が表示される。

chkrootkitのアラーム

先日、以下のメールが来るようになった。
Checking `bindshell’… INFECTED (PORTS: 1008)
bindshellが仕掛けられたのかと思い、色々調べたら、どうもポート1008がrpc.statdのプロセスによって使用されていることが分かり、bindshellではなかったようなので、まずは一安心。

ポート1008が使ってるプロセスを確認
[root@server ~]# lsof -i:1008
COMMAND    PID    USER   FD   TYPE DEVICE SIZE NODE NAME
rpc.statd 2098 rpcuser    7u  IPv4   5737       TCP *:1008 (LISTEN)
rpc.statdが、rpcuserによって起動している。
バックアップしてあったchkrootkitで使用するコマンド群使って再検査を行うことに。
[root@server ~]# shutdown -r now
クライアントマシンにバックアップしてあったchkrootkitcmd.zipを、/home/higo/にアップロードしてから以下の作業を行う。
[root@server ~]# cd /home/higo/
[root@server higo]# mv -v chkrootkitcmd.zip /root
`chkrootkitcmd.zip' -> `/root/chkrootkitcmd.zip'
[root@server higo]# cd
[root@server ~]# unzip chkrootkitcmd.zip
Archive:  chkrootkitcmd.zip
creating: chkrootkitcmd/
inflating: chkrootkitcmd/id
inflating: chkrootkitcmd/egrep
inflating: chkrootkitcmd/sed
inflating: chkrootkitcmd/netstat
inflating: chkrootkitcmd/echo
inflating: chkrootkitcmd/find
inflating: chkrootkitcmd/awk
inflating: chkrootkitcmd/head
inflating: chkrootkitcmd/strings
inflating: chkrootkitcmd/ps
inflating: chkrootkitcmd/uname
inflating: chkrootkitcmd/ls
inflating: chkrootkitcmd/cut
[root@server ~]# ls -l ./chkrootkitcmd/
合計 1084
-rwxr-xr-x 1 root root 320416  7月 12 09:20 awk
-rwxr-xr-x 1 root root  34408  7月 12 09:20 cut
-rwxr-xr-x 1 root root  19852  7月 12 09:20 echo
-rwxr-xr-x 1 root root  85060  7月 12 09:20 egrep
-rwxr-xr-x 1 root root 151244  7月 12 09:20 find
-rwxr-xr-x 1 root root  31660  7月 12 09:20 head
-rwxr-xr-x 1 root root  22600  7月 12 09:20 id
-rwxr-xr-x 1 root root  95116  7月 12 09:20 ls
-rwxr-xr-x 1 root root 121300  7月 12 09:20 netstat
-r-xr-xr-x 1 root root  79004  7月 12 09:20 ps
-rwxr-xr-x 1 root root  51764  7月 12 09:20 sed
-rwxr-xr-x 1 root root  25892  7月 12 09:20 strings
-rwxr-xr-x 1 root root  20024  7月 12 09:20 uname
/root/chkrootkitcmd/の外部コマンドで、chkrootkitを実行。
[root@server ~]# which chkrootkit
/usr/sbin/chkrootkit
[root@server ~]# chkrootkit -p /root/chkrootkitcmd/
INFECTEDは無いようだが、INFECTEDのみ表示させてみる。
[root@server ~]# chkrootkit -p /root/chkrootkitcmd/ | grep INFECTED
INFECTEDは無かった。
rpc.statdの待ち受けポートを確認してみる。
[root@server ~]# netstat -anp|grep rpc.statd
tcp        0      0 0.0.0.0:1006                0.0.0.0:*                   LISTEN      2096/rpc.statd
udp        0      0 0.0.0.0:1000                0.0.0.0:*                               2096/rpc.statd
udp        0      0 0.0.0.0:1003                0.0.0.0:*                               2096/rpc.statd
unix  2      [ ]         DGRAM                    5427   2096/rpc.statd
rpc.statdが使ってた1008はすでに違うものになってる。
ポート1008番は、どのプロセスも使用してないことを確認。
[root@server ~]# lsof -i:1008
[root@server ~]#
再検査で使ったファイル群を削除。
[root@server ~]# rm -v -f -R ./chkrootkitcmd/
removed `./chkrootkitcmd//id'
removed `./chkrootkitcmd//egrep'
removed `./chkrootkitcmd//sed'
removed `./chkrootkitcmd//netstat'
removed `./chkrootkitcmd//echo'
removed `./chkrootkitcmd//find'
removed `./chkrootkitcmd//awk'
removed `./chkrootkitcmd//head'
removed `./chkrootkitcmd//strings'
removed `./chkrootkitcmd//ps'
removed `./chkrootkitcmd//uname'
removed `./chkrootkitcmd//ls'
removed `./chkrootkitcmd//cut'
removed directory: `./chkrootkitcmd/'
zipファイルも削除
[root@server ~]# rm -v chkrootkitcmd.zip
rm: remove 通常ファイル `chkrootkitcmd.zip'? y
removed `chkrootkitcmd.zip'
以前のコマンドでchkrootkitを実行
[root@server ~]# chkrootkit | grep INFECTED
[root@server ~]#
rootkitは検出されなかった。

Tripwire、/backupディレクトリーのチェック対象外設定

下記のようなTripwireのエラーメールが届いた。

### Warning: File system error.
### Filename: /backup/backup.tar.bz2
### Value too large for defined data type
### Continuing...

/backup/backup.tar.bz2のファイルサイズが2Gを超えてしまったため、2Gを超えるファイルに対応してないtripwireがエラーを出したようだ。なので、/backupのディレクトリーをチェック対象外にすることにした。

ポリシーファイル(テキスト版)の復活
[root@server ~]# twadmin -m p -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key > /etc/tripwire/twpol.txt
ポリシーファイル(テキスト版)の編集
[root@server ~]# vi /etc/tripwire/twpol.txt
################################################
#                                              ##
################################################ #
#                                              # #
#  Monitor Filesystems                         # #
#                                              ##
################################################
(
rulename = "Monitor Filesystems",
)
{
/                             -> $(ReadOnly) ;
/home                         -> $(ReadOnly) ;  # Modify as needed
/usr                          -> $(ReadOnly) ;
/var                          -> $(ReadOnly) ;
!/backup; ← /backupをチェック対象外にするので追加
}
ポリシーファイル(暗号署名版)を作成
[root@server ~]# twadmin -m P -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key /etc/tripwire/twpol.txt
Please enter your site passphrase: ← サイトパスフレーズを入力
Wrote policy file: /etc/tripwire/tw.pol
ポリシーファイル(テキスト版)を削除
[root@server ~]# rm -f /etc/tripwire/twpol.txt
ポリシーファイルよりデータベースを作成
[root@server ~]# tripwire -m i -s -c /etc/tripwire/tw.cfg
Please enter your local passphrase: ← ローカルパスフレーズを入力
※データベースを作成するには結構時間がかかる

CentOS 5.4リリース

Webサーバ(Apache)のドキュメントルートの所有者がrootに戻ってるようで、サーバー内のファイルが削除できない状態になってた。調べたらOSが5.4にバージョンアップしてたようだ。

[root@server ~]# cat /etc/redhat-release
CentOS release 5.4 (Final)

カーネルバージョンは古いままのようだ。

[root@server ~]# uname -r
2.6.18-128.4.1.el5.centos.plus

再起動してカーネルも更新することに。

[root@server ~]# shutdown -r now
[root@server ~]# uname -r
2.6.18-164.2.1.el5.plus

Webサーバ(Apache)のドキュメントルートの所有者変更。

[root@server ~]# chown higo:higo /var/www/html/

CentOS 5.4 リリースノート

Tripwire エラー

/root/tripwire.shを実行すると以下のようなエラーが出るようになった。

[root@server ~]# /root/tripwire.sh
### Warning: File system error.
### Filename: /var/lib/rpm/__db.001
### \xa4\xbd\xa4\xce\xa4\xe8\xa4\xa6\xa4\xca\xa5\xd5\xa5\xa1\xa5\xa4\xa5\xeb\xa4\xe4\xa5\xc7\xa5\xa3\xa5\xec\xa5\xaf\xa5\xc8\xa5\xea\xa4\xcf\xa4\xa2\xa4\xea\xa4\xde\xa4\xbb\xa4\xf3
### Continuing...
### Warning: File system error.
### Filename: /var/lib/rpm/__db.002
### \xa4\xbd\xa4\xce\xa4\xe8\xa4\xa6\xa4\xca\xa5\xd5\xa5\xa1\xa5\xa4\xa5\xeb\xa4\xe4\xa5\xc7\xa5\xa3\xa5\xec\xa5\xaf\xa5\xc8\xa5\xea\xa4\xcf\xa4\xa2\xa4\xea\xa4\xde\xa4\xbb\xa4\xf3
### Continuing...
### Warning: File system error.
### Filename: /var/lib/rpm/__db.003
### \xa4\xbd\xa4\xce\xa4\xe8\xa4\xa6\xa4\xca\xa5\xd5\xa5\xa1\xa5\xa4\xa5\xeb\xa4\xe4\xa5\xc7\xa5\xa3\xa5\xec\xa5\xaf\xa5\xc8\xa5\xea\xa4\xcf\xa4\xa2\xa4\xea\xa4\xde\xa4\xbb\xa4\xf3
### Continuing...

rpmのデータベース/var/lib/rpm/__db.001~/var/lib/rpm/__db.003を念のため移動してから再構築する。

[root@server ~]# ls -l /var/lib/rpm/
合計 46964
-rw-r--r-- 1 rpm  rpm    196608  8月 11 17:17 Requireversion
-rw-r--r-- 1 rpm  rpm     81920  8月 11 17:17 Sha1header
-rw-r--r-- 1 rpm  rpm     49152  8月 11 17:17 Sigmd5
-rw-r--r-- 1 rpm  rpm     12288  7月 15 06:01 Triggername
-rw-r--r-- 1 root root    24576  8月 11 18:46 __db.001
-rw-r--r-- 1 root root  1318912  8月 11 18:46 __db.002
-rw-r--r-- 1 root root   450560  8月 11 18:46 __db.003
[root@server ~]# mv /var/lib/rpm/__db.00? /tmp
[root@server ~]# rpm --rebuilddb

再構築が終了したら正常に動作するか確認する。

[root@server ~]# rpm -qa
[root@server ~]# yum list

再度/root/tripwire.shを実行

[root@server ~]# /root/tripwire.sh

エラーは出ないようになった。

yumのミラーサイトに関するエラー

久々に手動でyum updateしてみたら以下のようなエラーが出た。ネットで調べたらyumのミラーサイトに関するエラーのようだ。yum clean allしてからyum updateすれば大丈夫らしい。
Error: Missing Dependency: bind-libs = 30:9.3.4-10.P1.el5_3.1 is needed by package 30:bind-9.3.4-10.P1.el5_3.1.i386 (updates)

[root@server ~]# yum clean all
Loaded plugins: fastestmirror
Cleaning up Everything
Cleaning up list of fastest mirrors
[root@server ~]# yum update

カーネルも上がってるようなので、まずはバージョンチェック。

[root@server ~]# uname --kernel-release
2.6.18-128.2.1.el5.centos.plus

カーネルは再起動しないと反映されないので、再起動してみる。

[root@server ~]# shutdown -r now

再起動できたので、再度カーネルのバージョン確認

[root@server ~]# uname --kernel-release
2.6.18-128.4.1.el5.centos.plus  ← 新しくなっている。

Webサーバ(Apache)のドキュメントルートの所有者がrootに戻るので所有者変更が必要。
ドキュメントルート所有者変更確認

[root@server ~]# ll /var/www/
合計 36
drwxr-xr-x  2 root root   4096  7月 14 19:08 cgi-bin
drwxr-xr-x  3 root root   4096  7月 15 06:01 error
drwxr-xr-x 38 root root   4096  7月 14 19:08 html
drwxr-xr-x  3 root root   4096  7月 15 06:01 icons
drwxr-xr-x 10 root apache 4096  1月 23  2009 phpmyadmin

ドキュメントルートの所有者変更と確認

[root@server ~]# chown higo:higo /var/www/html/
[root@server ~]# ll /var/www/
合計 36
drwxr-xr-x  2 root root   4096  7月 14 19:08 cgi-bin
drwxr-xr-x  3 root root   4096  7月 15 06:01 error
drwxr-xr-x 38 higo higo   4096  7月 14 19:08 html
drwxr-xr-x  3 root root   4096  7月 15 06:01 icons
drwxr-xr-x 10 root apache 4096  1月 23  2009 phpmyadmin

CentOS 5.3リリース

CentOSが5.3にバージョンアップされたので yum でアップデートしてみる。
CentOS 5.3は仮想化、米Intelの最新プロセッサ「Core i7(Nehalem)」サポート、OpenJDKサポートなどを特徴としてるようだ。

[root@server ~]# yum update
 ・
 ・
 ・
=============================================================================
Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
kernel                  i686       2.6.18-128.el5   base               15 M
kernel-devel            i686       2.6.18-128.el5   base              4.9 M
Updating:
 ・
 ・
 ・
Transaction Summary
=============================================================================
Install      8 Package(s)
Update     251 Package(s)
Remove       0 Package(s)
Total download size: 452 M

12~13分程度でアップデートは終わる。
CentOSのバージョン確認。

[root@server ~]# cat /etc/redhat-release
CentOS release 5.3 (Final)  ← 新しくなっている。

カーネルのバージョン確認

[root@server ~]# uname -r
2.6.18-92.1.22.el5.centos.plus  ← 以前と同じ。

カーネルは再起動しないと反映されないようなので、再起動してみる。
ちゃんと起動してくれるのか不安だが・・・

[root@server ~]# shutdown -r now

再起動できたので、再度カーネルのバージョン確認

[root@server ~]# uname -r
2.6.18-128.el5  ← 新しくなっている。

各サーバもちゃんと動いてるようだし特に問題なさそうだ・・・・
追記:Webサーバ(Apache)のドキュメントルートの所有者がrootに戻ってるようだ。
ドキュメントルート所有者変更確認

[root@server ~]# ll /var/www/
合計 36
drwxr-xr-x  2 root root   4096  1月 22 12:05 cgi-bin
drwxr-xr-x  3 root root   4096  4月  1 10:59 error
drwxr-xr-x 36 root root   4096  1月 22 12:05 html
drwxr-xr-x  3 root root   4096  4月  1 10:59 icons
drwxr-xr-x 10 root apache 4096  1月 23 20:19 phpmyadmin

ドキュメントルートの所有者変更

[root@server ~]# chown higo:higo /var/www/html/
[root@server ~]# ll /var/www/
合計 36
drwxr-xr-x  2 root root   4096  1月 22 12:05 cgi-bin
drwxr-xr-x  3 root root   4096  4月  1 10:59 error
drwxr-xr-x 36 higo higo   4096  1月 22 12:05 html
drwxr-xr-x  3 root root   4096  4月  1 10:59 icons
drwxr-xr-x 10 root apache 4096  1月 23 20:19 phpmyadmin

CentOSのバージョン確認

そろそろCentOSも5.3にバージョンアップするようだが、現在のバージョンを確認するには次のコマンドで。

[root@server ~]# cat /etc/redhat-release
CentOS release 5.2 (Final)
[root@server ~]# cat /etc/issue
CentOS release 5.2 (Final)
Kernel \r on an \m
[root@server ~]# lsb_release -a
LSB Version:    :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: CentOS
Description:    CentOS release 5.2 (Final)
Release:        5.2
Codename:       Final

※lsb_releaseはredhat-lsbというパッケージをインストールする必要がある。

カーネルのバージョン確認は

[root@server ~]# uname --kernel-release
2.6.18-92.1.22.el5.centos.plus