Hagex-day info

紅茶とお菓子について書いているほっこりブログです

辿ってみると

自宅鯖の /var/log/secure を見てみると案の定SSHDのアタックがたくさん残っていた。最新のアクセスは「May 6 10:03:25」でIP 220.100.243.157 海外かと思って逆引きしてみるとなんとJPドメイン。調べてみると12個ほどポート開いているし… http://弐弐零.壱零零.弐四参.壱五七:壱零零零零/ とかヤバイなあ
あと、もう一件66.12.107.59からアタックがあったので、調べてみると…
21/tcp open ftp
25/tcp open smtp
993/tcp open imaps
3306/tcp open mysql
4000/tcp open remoteanything
7070/tcp open realserver
8081/tcp open blackice-icecap
8888/tcp open sun-answerbook
いろいろ開いている。

自宅鯖安定

あんなに不安定だった自宅鯖を「2.6.9-1.6_FC2」から「2.6.8-1.521」カーネルを変更したらとても安定。もう8日間ぐらいこけずに動いてる。犬さんのアドバイスで「/var/log/messages.*」の過去ログをみるが、特に変なメッセージは見つからず。一体なんだったろう?

カーネルが増えた?

最近Fedora鯖がこけまくり。6時〜12時間ぐらいでこけてしまう。調べてみようと鯖マシンにモニターくっつけてリブート。最近はリモートでしか作業をしていなかったので、GRUBの画面をみるのは久しぶり。そしたらなんとカーネルが「2.6.9-1.6_FC2」「2.6.8-1.521」「2.6.6-1.383」と3つもある。「2.6.9-1.6_FC2」なんていれて記憶がないなぁ(汗) とりあえず「2.6.8-1.521」で起動。現在15時間ぐらいこけずに回っている。調子が悪いのはカーネルの影響だったのかな?

久々のFedora

Apacheアクセスログ解析をココを参照にしながらやってみた。以下の内容は同じですが、個人的なメモということで。

使うソフトはWebalizerとういうものだ。現在配布されているRPM版では日本語表示がされていないので、ソース版RMP「SRPM」というを使って日本語化してRPMパッケージを作らなければならないようだ。
とりあえずWebalizerSRPMパッケージダウンロード
# wget http://ftp.riken.go.jp/pub/Linux/fedora/core/3/i386/os/SRPMS/webalizer-2.01_10-25.src.rpm
--12:54:49-- http://ftp.riken.go.jp/pub/Linux/fedora/core/3/i386/os/SRPMS/webalizer-2.01_10-25.src.rpm

と無事にダウンロード完了。次に日本語化オプションを設定する。WebalizerのSPECファイル、usr/src/redhat/SPECS/webalizer.spec を編集する。
%configure --enable-dns --with-dblib=/lib

%configure --enable-dns --with-dblib=/lib --with-language=japanese

次に、WebalizerSRPMパッケージからRPMパッケージを作成するのに必要なgd-devel、libpng-develをインストールするが…
# yum -y install gd-devel libpng-devel
とタイプするが…途中で
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30978) from db->get: DB_RUNRECOVERY: Fatal error, run database recovery
error: error(-30978) getting "libpng" records from Name index
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30978) from db->sync: DB_RUNRECOVERY: Fatal error, run database recovery
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30978) from db->cursor: DB_RUNRECOVERY: Fatal error, run database recovery
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30978) from db->get: DB_RUNRECOVERY: Fatal error, run database recovery
error: error(-30978) getting "libpng.so.3" records from Basenames index
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30978) from db->get: DB_RUNRECOVERY: Fatal error, run database recovery
error: error(-30978) getting "libpng.so.3.1.2.8" records from Basenames index
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30978) from db->get: DB_RUNRECOVERY: Fatal error, run database recovery
error: error(-30978) getting "libpng12.so.0" records from Basenames index
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30978) from db->get: DB_RUNRECOVERY: Fatal error, run database recovery
error: error(-30978) getting "libpng12.so.0.1.2.8" records from Basenames index
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30978) from db->get: DB_RUNRECOVERY: Fatal error, run database recovery
error: error(-30978) getting "libpng-1.2.8" records from Basenames index
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30978) from db->get: DB_RUNRECOVERY: Fatal error, run database recovery
error: error(-30978) getting "CHANGES" records from Basenames index
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30978) from db->get: DB_RUNRECOVERY: Fatal error, run database recovery
error: error(-30978) getting "README" records from Basenames index
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30978) from db->get: DB_RUNRECOVERY: Fatal error, run database recovery
error: error(-30978) getting "TODO" records from Basenames index
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30978) from db->get: DB_RUNRECOVERY: Fatal error, run database recovery
error: error(-30978) getting "example.c" records from Basenames index
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30978) from db->get: DB_RUNRECOVERY: Fatal error, run database recovery
error: error(-30978) getting "libpng.txt" records from Basenames index
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30978) from db->get: DB_RUNRECOVERY: Fatal error, run database recovery
error: error(-30978) getting "png.5.gz" records from Basenames index
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30978) from db->sync: DB_RUNRECOVERY: Fatal error, run database recovery
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30978) from db->open: DB_RUNRECOVERY: Fatal error, run database recovery
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30978) from db->close: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Group index using db3 - (-30978)
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30978) from db->open: DB_RUNRECOVERY: Fatal error, run database recovery
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30978) from db->close: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Requirename index using db3 - (-30978)
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30978) from db->open: DB_RUNRECOVERY: Fatal error, run database recovery
(以下略)

というエラーが延々続く。調べてみるとアラートの通りRPMDBがトラブルっているようで、以下のおまじないを唱えると治るようだ。
# rpmdb --rebuilddb
上のコマンドをタイプしてみるても何も反応がない(笑)。上手くフィックスしたのか? 修正されたことを願いつつ、同じようにタイプすると…
# yum -y install gd-devel libpng-devel
Gathering header information file(s) from server(s)
Server: Fedora Core 2 - i386 - Base
Server: Fedora Core 2 - i386 - Released Updates
Finding updated packages
Downloading needed headers
Resolving dependencies
.Dependencies resolved
I will do the following:
[install: libpng-devel 2:1.2.8-1.fc2.i386]
[install: gd-devel 2.0.21-5.20.1.i386]
I will install/upgrade these to satisfy the dependencies:
[deps: libpng 2:1.2.8-1.fc2.i386]
Downloading Packages
Running test transaction:
Test transaction complete, Success!
libpng 100 % done 1/4
libpng-devel 100 % done 2/4
gd-devel 100 % done 3/4
Completing update for libpng - 4/4
Installed: libpng-devel 2:1.2.8-1.fc2.i386 gd-devel 2.0.21-5.20.1.i386
Dep Installed: libpng 2:1.2.8-1.fc2.i386
Transaction(s) Complete

と無事に完了。ほ。
# yum clean packages
Gathering header information file(s) from server(s)
Server: Fedora Core 2 - i386 - Base
Server: Fedora Core 2 - i386 - Released Updates
Finding updated packages
Cleaning packages

で、ダウンロードしたパッケージを削除。続いてWebalizerSRPMパッケージからRPMパッケージを作成するために
# rpmbuild -ba --clean /usr/src/redhat/SPECS/webalizer.spec
次にインストール
# rpm -ivh /usr/src/redhat/RPMS/i386/webalizer-2.01_10-25.i386.rpm
Preparing... ############################# [100%]
1:webalizer ############################# [100%]

SRPMからRPMへのビルドにより作成されたファイルを削除する。
# rm -f webalizer-2.01_10-25.src.rpm
# rm -f /usr/src/redhat/SRPMS/*
# rm -f /usr/src/redhat/SPECS/*
# rm -f /usr/src/redhat/SOURCES/*
# rm -f /usr/src/redhat/RPMS/i386/*

アクセスログ日本語コード変換スクリプト作成する。その前に日本語コード変換Perlモジュール(perl-Jcode)インストール。
# cpan2rpm --install Jcode
アクセスログ日本語コード変換スクリプト作成をする
# vi convertlog.pl
とタイプして、以下のスクリプトを打ち込む
#!/usr/bin/perl

use Jcode;

open (IN ,$ARGV[0]);
while (){
$_ =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
Jcode::convert(\$_,euc);
print $_;
}
close (IN);
exit;

そして権限を設定
# chmod 700 convertlog.pl
次にWebalizer設定を設定するために、
# vi /etc/webalizer.conf
で、webalizer設定ファイルを編集する。
LogFile /var/log/httpd/access_log

LogFile /var/log/httpd/jaccess_log

#HostName localhost

HostName fedorasrv.com

#HTMLHead
HTMLHead  

#ReallyQuiet no

ReallyQuiet yes

#CountryGraph yes

CountryGraph no

と変更。
この解析は外部からの参照できるように /etc/httpd/conf.d/webalizer.conf の設定ファイルのの部分を「Allow from All」を追加して、「#Allow from 127.0.0.1」とコメントアウト。
その後HTTPを再読み込みするために
# /etc/init.d/httpd reload
とタイプ。Webalizer実行スクリプトを作成するために
# vi webalizer.sh
とファイルを作って、以下のスクリプトを打ち込む
#!/bin/sh

# 文字コード変換前アクセスログ
BLOG=/var/log/httpd/access_log

# 文字コード変換後アクセスログ
ALOG=/var/log/httpd/jaccess_log

# 文字コード変換
/root/convertlog.pl $BLOG > $ALOG

# webalizer実行
webalizer

そして実行権限を「~]# chmod 700 webalizer.sh」とする。
いよいよ終了間際。さっそくWebalizer実行するでぇとおまって
# ./webalizer.sh
./webalizer.sh: line 10: /root/convertlog.pl: そのようなファイルやディレクトリはありません

とアラートがでてうまくいかず。あれ…? あ、convertlog.plとwebalizer.shはルート以外のホームディレクトリで作業して、そのまま保存していたから駄目だったようだ。webalizer.shとconvertlog.plを/root に移して再度
# ./webalizer.sh
と打つ。特にエラーがない。念のためもう一度HTTPをリロードさせてWebalizerをみると無事に表示されている。あとは自動実行させるために
# crontab -e
00 00 * * * /root/webalizer.sh

として、毎日深夜0時実行。最後に
# rm -f /etc/cron.daily/00webalizer
としてゴミを消す

CPU info

というコマンドを知ったので、メモ
# cat /proc/cpuinfo
processor : 0
vendor_id : CentaurHauls
cpu family : 6
model : 7
model name : VIA Ezra
stepping : 10
cpu MHz : 800.252
cache size : 64 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu de tsc msr cx8 mtrr pge mmx 3dnow
bogomips : 1576.96

いろいろわかるのね…

Fedora Core 3 リリース

Fedora Core 3 リリースがされたようだ。Webにはまだ掲載されていないが、MLで案内がきていました。以下、のサイトからダウンロードできるようだが、混んでいて入れない。
http://download.fedora.redhat.com/pub/fedora/linux/core/3/i386/iso/
http://ftp.kddilabs.jp/Linux/packages/fedora/core/3/i386/iso/
ftp://ftp.kddilabs.jp/Linux/packages/fedora/core/3/i386/iso/
ftp://ftp.riken.go.jp/pub/Linux/fedora/core/3/i386/iso/
主な変更点は以下のようだ。以下引用

・kernel 2.6.9
GCC 3.4
GNOME 2.8
KDE 3.3.1
XOrg X11 6.8.1
SELinux (新しいターゲットポリシーの使用)
・IIIMF
・インド圏言語サポート
・いろいろなデスクトップアプリケーション
・Pango の Mozilla 対応
VNC でのリモートデスクトップ (GDM 込み)
・印刷の改善
・Evolution 2.0.1
・udev によるデバイスファイルのダイナミック管理

[Fedora 4222] Fedora Core 3 リリース

CPUが100%稼動中!?

MRTGでサーバーのチェックをしているとCPU使用率が常に100%。そしてその状態が5時間ほど続いている。なんでこんなにうごいとるねん? と
# top
と叩いてみると、dicedがCPUを約100%近く使っているじゃありませんか! Dynamic DNSのサービスサイトをみてみると、昨日の夕方からIPの更新がされていません。うーんローカルでしか自宅鯖をみていなかったら全く気づかなかったよ。DiCEが上手く動いていないようなので、設定が変かと思って調べてみるといたって正常。さらに調べてみると、kernel-2.6.8-1.521でdicedがきちんと作動しないことが判明。オイドンのFedora鯖のカーネルはいくつだけっと、カーネルを確認するコマンド
# uname -r
と叩いてみると
2.6.8-1.521
と表示される…… ビンゴじゃないですか!
うーん、困った!と調べてみると対策を書いてあるページを発見。ここにしたがって以下のように変更。
# vi /etc/sysconfig/prelink
PRELINK_OPTS=-mR

PRELINK_OPTS="-mR --no-exec-shield"

と変更そして
# touch /var/lib/misc/prelink.force
とタイプして
# /etc/cron.daily/prelink
とコマンド。上記を走らせたらかなり時間がかかる。いつまでたっても終わらないので、とりあえず寝る。朝起きたら無事に終わっており、
# execstack -s /usr/local/bin/DiCE/diced
と打ち
execstack: /usr/local/bin/DiCE/diced: Reshuffling of objects to make room for
program header entry only supported for shared libraries

とコメントがでたら作業終了だ。その後CPUの使用率も下がり、やダイナミックDNSのサービスも無事に動くようになった。
やっぱり監視って大切なのね。これを機会にTripwireやIDSのSnortぐらいはちゃんといれようかな。
ダイナミックDNSについて語ろう Part4
にも同じ症状の報告があったが、適切なアドバイスはない。それより、DDNSのサービス所が新潟にあって大変! というコメントがおもしろい。

Macintoshのバカヤロウ!

以前、コンパイルは上手くいきセレクターでドライブが認識できるが、マウントできなかったnetatalk2.0.0。気合をいれて、なんどもチャレンジするが症状はかわらず(涙)
こんなんじゃ、いつまでたってもMacとのファイル共有ができん! なのでパッケージででている、netatalk1.6のrpmをインストール。インストール、設定、は順調にすすみセレクターからも無事にドライブ確認。無事にマウントが出来た! が、ファイルを実際にピーコしても「50エラー」がでたり、ファイルが見えなかったり……(涙)
この症状はよくあるトラブルらしく、sambaの文字コードを変えてみたり、ファイルのアクセス権を調整してチャレンジするがちっともよくならず。
Macintoshとのファイル共有が目的なので、netatalkにこだわる必要は別にない。なので、当面はFTPでしのごうと考え、FTPを設定。できればSSHを使ってファイルの送受信をしたかったが、Macではあまりいいクライアントがないのであきらめた。vsFTPdはきちんと動くが、当然日本語ファイル名が化けてしまう。うーん、ここは日本語ファイル名を圧縮して、圧縮ファイル名を1バイト文字にしてしのぐ。けれども、解凍したファイルがMacアプリとの関連がうまくいかなかったり、テキストファイルと思われたものが実はバイナリだったりと散々。素直にOS Xとかにしたほうがいいのかな? まあWebDAVという手もあるんだけど、それはまた別の機会に…
2000サーバーの時は、Macとのファイル共有があんなに楽チンだったのに(涙)
[mac]ネットワークファイル共有[windows]

CGIがうまく走らない

HTMLファイルはきちんとみれるけど、CGIがきちんと動かない。当該のファイルを開くと「500エラー」。エラーログを見ると「Premature end of script headers」の文字が。
調べてみると
#! /usr/bin/perl --
と一行目の後ろにハイフンをつけたり、
print"Content-type: text/html; charset=Shift_JIS\n\n";
と二行目に書いたりしたらいいらしいが、やっても駄目。設定ファイルもパーミッションも設定もばっちり!
うーん、いったい何が原因なのか… なにげに「public_html」のフォルダをls -alでみてみると、当該のCGIファイルの所有権がrootになっていた! このファイルをユーザーで作りなおすとすんなりと起動。どうやらうっかりしてrootのまま作業していたのが原因のようだった。

※参考 Premature end of script headers 問題解決策
Premature end of script headersの解決法-超簡易版
CGIを使う
Premature end of script headers:〜」というエラーが必ず出力されます。(はてな)
リンクと解説●CGI
cgi備忘録
CgiをFTPクライアントでアップすると。。。。

つまった2

なぜかOpenSSHの接続まで上手くいかない。これまたはまった。変にリブートしたために、公開鍵をもっているフォルダが壊れているようだ。鍵を作り直して、ログインしなおすが、
Using username "username".
Server refused our key
No supported authentication methods left to try!

とでて何度もやり直して上手くいかず。調べてみると /etc/ssh/sshd_config の
#ServerKeyBits 768
ServerKeyBits 1024

とすればいいようだ。が、まだ未確認。
PCいじっていて久々暴れたくなった。

つまった

netatalk2で詰まった。うまくmakeが通り(ちょっとエラーがでたけど)、マックからのセレクターでフォルダがみれるので、実際に選ぶと「適切なアクセス権がないので、この項目では起動できません。」とアラート。当該のフォルダをCHMODでいろいろと変更するがアラートは相変わらず(涙)