#navi([[Sugi]]);
*自宅サーバ死す
朝から気合を入れて、衣替え準備→衣替え→洗車とこなして、一日も終わろうとした23:50、自宅サーバの異常に気が付きました。とんでもなくサーバが重いです。
管理用アカウントでloginして、rootへsu…。できません。おかしい。rootのpasswordなんぞ変えとらんぞ?
/etc/shadowのtimestampを見ると11:47、外出していた時間に変更されています。くうぅ、誰か他人にroot権限を奪われたようです。どうしてかはさておき。LANケーブルを引っこ抜きます。
psで見ても怪しいprocessは一目ではわかりません。どうやらKernel moduleを使った偽装が仕込まれているようです。
netstat -anでみると、undernetのIRC serverに10本ほどconnectionが張られています。おそらく、IRCの踏み台サーバになっている模様。
/var/log/secureによると、外部からsshでrootに対してbrute force attackが行われていました。fedoraのsshd_configではdefaultでPermitRootLogin=yesとなっています。これが狙われたようです。
findで最近変更されたtimestampを持つfileを検索し、個人データの領域が変更されていない事を確認した後、これらのbackupをあるpartitionにまとめておきました。
rebootしたら、起動すらできなくなりました。kernel imageにも細工をされてしまったようです。
さて、腹を決めてOSをすべて廃棄し、入れ替える事とします。
が、しかし、うちの自宅サーバにはCD-ROMは付いていないのです。FDDで起動するしかありません。ここにFedora Core 3を復活させるのはかなり大変です。
まず、Fedora Coreは、CD-ROM起動が原則です。FDD起動はできません。そこで、別のDistributionを入れることからはじめます。
**Vine Linux 2.6r4のinstall
手元にVine Linux 2.6r4のNetwork(PCMCIA) boot image disk((http://www.ring.gr.jp/pub/linux/Vine/Vine-2.6/i386/images/ で配布されています。))を用意していたので、これを使うことにします。
+FDDからNetwork bootで起動
+HTTP installを選択
++Serverは、''www.ring.gr.jp''
++Directoryは、''pub/linux/Vine/Vine-2.6/i386''
+Xや不要なserverは省いて、とにかく小さめにpackageを選択
+install開始
HTTPでdownloadしつつ、installを開始したのですが、途中でstallしてしまいます。
Alt+F4でlogを見てみたところ、どうやらPCMCIAのNIC driverがpanicってます。
どうも粗悪品の古いNIC((http://buffalo.melcoinc.co.jp/products/catalog/item/l/lpc3-tx/ です。安かったからなー))のため、あまり早い回線だと処理が追いつかないようです。
回線速度を下げる手段も無いので、warningがconsoleに出た時点で、LANケーブルを抜き差しして、driverを初期化することで回避しました。TCP retransmit timerが何度か動いてしまうと、server側がconnectionを切断してしまうようで、warningが出てから数秒以内に抜き差ししなければ、installを最初からやり直すハメに…。寝ずの番をする事になりました。
その後、どうにかinstallが終了し、Vine LinuxでHDD起動することができました。
以前は、Vineで運用していたのですが、Cyrus IMAPやPHPのpackage管理が大変なので、Fedoraに切り替えていました。ということで続けて、
**Fedora Core 3のinstall
+pxeboot imageの取得
http://www.ring.gr.jp/pub/linux/fedora/linux/core/3/i386/os/images/pxeboot/ で配布されているpxeboot用のvmlinuzとinitrd.imgをdownloadします。
+pxeboot imageでのboot準備
pxeboot imageでbootできるように/etc/lilo.confにentryを追加しておきます。
+DVD imageの取得
http://www.ring.gr.jp/pub/linux/fedora/linux/core/3/i386/iso/ で配布されているDVD imageをinstall先ではないpartitionにdownloadします。
例えば、うちの場合は以下のpartition構成でした。
|Partition|Size|h
|/boot|100MB|
|/|2GB|
|/work|5.9GB|
なので、/workにDVD imageをdownloadしました。install先にDVD imageがあるpartitionは含められないので、backupなんかもここにおいておきます。
+boot
pxeboot imageで起動すると、Fedoraのinstall画面になります。
+install
後は、いつもどおりのinstall作業です。
installが終わったら、backupを復活させて、partition構成を以下の状態に戻しておきました。
|Partition|Size|h
|/boot|100MB|
|/|2GB|
|/var|5.9GB|
その後は、気を抜かずにyum updateです。
が、しかし、RAMが少ないためTransaction TestがOom Killが多発し異常終了してしまいます。仕方が無いのでyumで取得したrpmを手動で入れていきました。
Cyrus IMAP、postfix、dhcp daemon、ddclient、php-mbstringのpackageを追加して、設定が復活した頃には夜が明けてしまいました。
もちろんsshd_configでは、PermitRootLogin=noで、AllowedUser=管理アカウントのみとしておきました。
**教訓
+rootでremoteから直接loginは、ありえない設定
+OS領域とData領域は分けといて正解
+もう少し早いPCだと、寝れたかも
#navi([[Sugi]]);