自宅鯖の /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
いろいろ開いている。
久々のFedora
Apacheアクセスログ解析をココを参照にしながらやってみた。以下の内容は同じですが、個人的なメモということで。
使うソフトはWebalizerとういうものだ。現在配布されているRPM版では日本語表示がされていないので、ソース版RMP「SRPM」というを使って日本語化してRPMパッケージを作らなければならないようだ。
とりあえずWebalizerのSRPMパッケージダウンロード
# 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
次に、WebalizerのSRPMパッケージから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
で、ダウンロードしたパッケージを削除。続いてWebalizerのSRPMパッケージから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 の設定ファイルの
その後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 によるデバイスファイルのダイナミック管理
メーラー
・Mutt Japanese Edition
なんだか使いやすそうなメーラー。SSHで自宅鯖に入ったときように入れておくかな?
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のサービス所が新潟にあって大変! というコメントがおもしろい。
Apacheログ解析ツール
とりあえず、Apacheのログでも気軽に見れるようにしよう。というわけでメモ。
・AWStats Ver.6.0完全日本語版のページ
・ログ解析スクリプトAWStats 6.0ドキュメント
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]
SSHがうまく走らない
ので、今回は別ユーザーを1人つくって、接続してみると見事に接続可能! どうやら当該ユーザーの設定に問題があったようだ。全く同じ手順でキーやら認証を行ったのに、なぜ? 原因をさらに調べてみよう。
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クライアントでアップすると。。。。
yumのFTP設定サイトを国内に
yumを使うのは初めて、最初に立ち上げるとやたらと大量のヘッダファイルをダウンロード。ダウンロード先がおそくなんども止まってしまうので、ココをみてをみてyum.confを書き換える。
つまった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いじっていて久々暴れたくなった。