■ 最近のDiary
2006年03月24日
「XML_RPC for PHP」の脆弱性を利用したBotワーム
うちのお客さんで、「XML_RPC for PHP」の脆弱性を突かれ、/tmpにbotワームを仕込まれました(><)。うちで保守・メンテしていたわけではないので、責任はないです。ただ、初めてその痕跡を目の当たりにしたのでビックリしました。会社のサーバもログを緊急点検すると攻撃を多数受けていたことがわかりました。会社のサーバは最新版が出ればすぐにアップデートしてますので問題はないのですが、お客様のところのサーバは全然アップデートしていないのでやられたわけです。
2006年03月03日
AtermWR6650S ワイヤレスセット(SC)
IODATAの無線LANルータが安定して動かないので、無線LANルータを買い換えました。AtermWR6650S ワイヤレスセット(SC)

今の802.11aで使っていますが、安定して動いてます。
インストールも説明書(パソコンからは音声ガイドが出ます)に沿ってやれば暗号化設定まで自動でやってくれるので楽ちんです。
速度も気持ち速くなったような。。。
2006年02月28日
19インチ液晶モニタ
会社で19インチ液晶モニタを3台購入しました。物はサムソンのSyncMaster 940Bです。本当はEIZOのM1900-Rが良かったのですが、予算の関係で安いサムソンになりました。まぁ、自分が使うわけではないので、どちらでもいいんですけど、保証内容を考えると5年保証で代替機まで出してくれるEIZOの方が楽ですよねぇ。
何かあれば私が手続きしなきゃいけないんで・・・(汗)
2006年02月06日
VirtualRD for Windows
RD-XD71からパソコンにLAN経由でのダビング(ネットdeダビング)ができるようにするソフト「VirtualRD for Windows」を使ってみました。先週録画していた「アンフェア」をパソコンにダビングしてみたところ、問題なくダビングできました(無線LANでネットワーク(Home LAN)に接続しているパソコンにMPEG2形式でファイルが出来ました)。時間は有線LANの方が安定した速度が出る分速いでしょうけど、無線LANでも十分許容範囲かと思います(電波干渉で不安定なところではダメでしょうけど)。
2006年02月03日
FAX受信サーバ
社内のファイルサーバ(samba)にFAXモデムを取り付けて、FAX受信サーバを構築しました。※FAX専用機の用紙が感熱ロール紙なので節約(ペーパーレス)という名目です。。。
以下の3つのRPMパッケージをインストールします。
mgetty-viewfax-1.1.21-4
mgetty-sendfax-1.1.21-4
mgetty-1.1.21-4
ファイルサーバのOSがVine 2.1.5なのでapt-getコマンドでインターネットからダウンロード・インストールします。
mgettyの設定ファイル/etc/mgetty+sendfax/mgetty.configを編集します。
debug 4
fax-id +81-23-622-xxxx
speed 38400
port ttyS0
switchbd 0
fax-only yes
ringback no
modem-type cls2
fax-id +81-23-622-xxxx
speed 38400
port ttyS0
switchbd 0
fax-only yes
ringback no
modem-type cls2
FAXモデムはサン電子のMS56KAFを使いました(余っていたやつです)。Rockwell互換らしく"switchbd"の指定が必要でした。
次にFAX受信後の動作を決める/etc/mgetty+sendfax/new_faxを作成します。
#!/bin/sh
PATH="/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin"
HUP="$1"
SENDER="$2"
PAGES="$3"
shift 3
CONVERT="/usr/X11R6/bin/convert"
TIFFDIR="/home/FAX"
MAILTO="user@domain"
MAILER="/usr/sbin/sendmail"
# convert to Multi-Paged TIFF
BASENAME=`basename $1 .01`
TIFFPATH=$TIFFDIR/$BASENAME.tiff
case $BASENAME in
fn*) GEOMETRY="" ;; # find out resolution
*) GEOMETRY="-geometry 1728x2339!"
esac
files=
for i in $@
do
files="$files fax:$i"
done
$CONVERT -monochrome -size 1728x2339 $GEOMETRY $files $TIFFPATH
if [ $? -eq 0 ]; then
chown nobody:nobody $TIFFPATH
# rm -f /var/spool/fax/incoming/$BASENAME.*
fi
(
echo "Subject: fax received ($PAGES Pages)"
echo "To: $MAILTO"
echo ""
echo "see file \\\\fileserver\\FAX\\$BASENAME.tiff"
) | $MAILER $MAILTO
exit 0
↑は受信したFAXデータをImageMagickに付属のconvertツールでマルチページTIFFに変換したファイルをsambaでアクセスできるディレクトリに置き、メールでファイルの場所を知らせるスクリプトです。PDFも作成できるのですが、セグメンテーションフォルトが発生するので止めました。
PATH="/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin"
HUP="$1"
SENDER="$2"
PAGES="$3"
shift 3
CONVERT="/usr/X11R6/bin/convert"
TIFFDIR="/home/FAX"
MAILTO="user@domain"
MAILER="/usr/sbin/sendmail"
# convert to Multi-Paged TIFF
BASENAME=`basename $1 .01`
TIFFPATH=$TIFFDIR/$BASENAME.tiff
case $BASENAME in
fn*) GEOMETRY="" ;; # find out resolution
*) GEOMETRY="-geometry 1728x2339!"
esac
files=
for i in $@
do
files="$files fax:$i"
done
$CONVERT -monochrome -size 1728x2339 $GEOMETRY $files $TIFFPATH
if [ $? -eq 0 ]; then
chown nobody:nobody $TIFFPATH
# rm -f /var/spool/fax/incoming/$BASENAME.*
fi
(
echo "Subject: fax received ($PAGES Pages)"
echo "To: $MAILTO"
echo ""
echo "see file \\\\fileserver\\FAX\\$BASENAME.tiff"
) | $MAILER $MAILTO
exit 0
2006年02月02日
heartbeat
DRBDの設定が完了したので、DRBDと連携して動作するHAクラスタソフトウェアのheartbeatをインストールします。本家サイトに置いてあるRPMパッケージは依存関係で素直にインストールできないので、Ultra Monkeyから3つのファイル(rhel3用)をダウンロードします。
heartbeat-2.0.2-1.i386.rpm
heartbeat-pils-2.0.2-1.i386.rpm
heartbeat-stonith-2.0.2-1.i386.rpm
masterとslaveの両方にダウンロードしたRPMパッケージをインストールします。
rpm -ivh heartbeat-2.0.2-1.i386.rpm \
heartbeat-pils-2.0.2-1.i386.rpm \
heartbeat-stonith-2.0.2-1.i386.rpm
heartbeat-pils-2.0.2-1.i386.rpm \
heartbeat-stonith-2.0.2-1.i386.rpm
master側に設定ファイル/etc/ha.d/ha.cfを作成します。
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport 694
ucast eth0 10.0.2.11
auto_failback on
watchdog /dev/watchdog
node master slave
※11行目のucast~の行をbcastにするとmasterとslaveで同じ設定に出来るのですが、eth0インターフェースを使う関係上(他に複数のホストがあるので)、ブロードキャスト(bcast)ではなくユニキャスト(ucast)を使います。heartbeat専用のインターフェース(eth1等)があればブロードキャスト(bcast)で問題ありません。
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport 694
ucast eth0 10.0.2.11
auto_failback on
watchdog /dev/watchdog
node master slave
2006年02月01日
DRBD(インストール)
前回作成したRPMパッケージをmasterとslaveの両方にインストールします。# rpm -ivh drbd-0.7.15-1.i386.rpm \
> drbd-debuginfo-0.7.15-1.i386.rpm \
> drbd-km-2.4.21_37.0.1.EL-0.7.15-1.i386.rpm
※おまけで2.4.21-37.EL用のDRBDモジュールもアップしておきます。> drbd-debuginfo-0.7.15-1.i386.rpm \
> drbd-km-2.4.21_37.0.1.EL-0.7.15-1.i386.rpm
masterとslaveの両方に設定ファイルを作成します(内容は同じもの)
設定サンプルが/usr/share/doc/drbd/drbd.conf にあるので/etc/drbd.confに上書きコピーして書き換えます。
resource r0 {
protocol C;
incon-degr-cmd "echo '!DRBD! pri on incon-degr' | wall ; sleep 60 ; halt -f";
startup {
wfc-timeout 120;
degr-wfc-timeout 120;
}
disk {
on-io-error detach;
}
net {
timeout 60;
connect-int 10;
ping-int 10;
max-buffers 2048;
max-epoch-size 2048;
}
syncer {
rate 10M;
group 1;
}
on master {
device /dev/drbd0;
disk /dev/hda3;
address 10.0.2.10:7788;
meta-disk internal;
}
on slave {
device /dev/drbd0;
disk /dev/hda3;
address 10.0.2.11:7788;
meta-disk internal;
}
}
protocol C;
incon-degr-cmd "echo '!DRBD! pri on incon-degr' | wall ; sleep 60 ; halt -f";
startup {
wfc-timeout 120;
degr-wfc-timeout 120;
}
disk {
on-io-error detach;
}
net {
timeout 60;
connect-int 10;
ping-int 10;
max-buffers 2048;
max-epoch-size 2048;
}
syncer {
rate 10M;
group 1;
}
on master {
device /dev/drbd0;
disk /dev/hda3;
address 10.0.2.10:7788;
meta-disk internal;
}
on slave {
device /dev/drbd0;
disk /dev/hda3;
address 10.0.2.11:7788;
meta-disk internal;
}
}
※「on master」 や「on slave」の"master""slave"ところにはホスト名を書きます。DNSで名前解決できないときは/etc/hostsファイルに
master 10.0.2.10
slave 10.0.2.11
と書きます。
slave 10.0.2.11
2006年01月31日
DRBD(RPMパッケージの作り方)
googleで検索していたら情報を見つけました。drbd(RPMパッケージの作成)
うちの環境は CentOS 3.6(kernel 2.4.21-37.0.1.EL)、DRBD-0.7.15なので適宜読み替えて作業する必要があります。
●カーネルソースを入れていない場合はカーネルソースのインストールをします。
# yum install kernel-source
●コンパイルの前にバージョン情報を書き換えます。
※/usr/src/linux-2.4/Makefile の3行目
# cd /usr/src/linux-2.4
# vi Makefile
EXTRAVERSION = -37.0.1.ELcustom
↓
EXTRAVERSION = -37.0.1.EL
# make mrproper
# cp /boot/config-2.4.21-37.0.1.EL .config
# make oldconfig
# make dep
●drbdの展開
# cd /root
# wget http://oss.linbit.com/drbd/0.7/drbd-0.7.15.tar.gz
# tar -xvzf drbd-0.7.15.tar.gz
●RPMパッケージの作成
# cd drbd-0.7.15
# make rpm KDIR=/usr/src/linux-2.4/
これで /root/drbd-0.7.15/dist/RPMS/i386にRPMパッケージが作成されます。
drbd-0.7.15-1.i386.rpm
drbd-debuginfo-0.7.15-1.i386.rpm
drbd-km-2.4.21_37.0.1.EL-0.7.15-1.i386.rpm
2006年01月30日
DRBD
Linuxで動作するDRBDというソフトウェアをテストしています。詳細はホームページに載っているので割愛しますが、簡単に説明するとネットワーク経由でサーバのパーテーションをミラーリングできるものです。
ホームページよりDRBD-0.7.15をダウンロードしてきて、RPMパッケージを作ろうと思っているのですが、うまくいきません。
# rpmbuild --tb drbd-0.7.15.tar.gz
エラー: Name field must be present in package: (main package)
エラー: Version field must be present in package: (main package)
エラー: Release field must be present in package: (main package)
エラー: Summary field must be present in package: (main package)
エラー: Group field must be present in package: (main package)
エラー: License field must be present in package: (main package)
エラー: Name field must be present in package: (main package)
エラー: Version field must be present in package: (main package)
エラー: Release field must be present in package: (main package)
エラー: Summary field must be present in package: (main package)
エラー: Group field must be present in package: (main package)
エラー: License field must be present in package: (main package)
tarballの中にspecファイルがあるのは確認したのですが・・・・う~む。LinbitのサポートページにRPMパッケージがあるのを発見したけど、有償のようです(ユーザ認証ダイアログが出る)。商売上手やね(^^;
2005年12月30日
QEMU on Windows
PCエミュレータである「QEMU on Windows」を実験中です。PCエミュレータというとVMwareやVirtualPCが有名ですが商用ソフトなのでお金を出して買わないと使えません(最近出たVMware Playerはフリーですが、仮想マシンの作成が出来ないので単体では使えません)。対するQEMUはオープンソースなので無償で使えます。
実際にCentOS-3.6をインストールしてみましたが、速度がちょっと遅いことを除けば普通に動きます。coLinuxではX-Window-Systemがローカルで動作しません(別にWindowsで動作するXサーバが必要)が、QEMUでは小細工なしで問題なく動作します。

