自宅サーバ死す

朝から気合を入れて、衣替え準備→衣替え→洗車とこなして、一日も終わろうとした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*1を用意していたので、これを使うことにします。

  1. FDDからNetwork bootで起動
  2. HTTP installを選択
    1. Serverは、www.ring.gr.jp
    2. Directoryは、pub/linux/Vine/Vine-2.6/i386
  3. Xや不要なserverは省いて、とにかく小さめにpackageを選択
  4. install開始
    HTTPでdownloadしつつ、installを開始したのですが、途中でstallしてしまいます。
    Alt+F4でlogを見てみたところ、どうやらPCMCIAのNIC driverがpanicってます。
    どうも粗悪品の古いNIC*2のため、あまり早い回線だと処理が追いつかないようです。
    回線速度を下げる手段も無いので、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

  1. pxeboot imageの取得
    http://www.ring.gr.jp/pub/linux/fedora/linux/core/3/i386/os/images/pxeboot/ で配布されているpxeboot用のvmlinuzとinitrd.imgをdownloadします。
  2. pxeboot imageでのboot準備
    pxeboot imageでbootできるように/etc/lilo.confにentryを追加しておきます。
  3. DVD imageの取得
    http://www.ring.gr.jp/pub/linux/fedora/linux/core/3/i386/iso/ で配布されているDVD imageをinstall先ではないpartitionにdownloadします。
    例えば、うちの場合は以下のpartition構成でした。
    PartitionSize
    /boot100MB
    /2GB
    /work5.9GB
    なので、/workにDVD imageをdownloadしました。install先にDVD imageがあるpartitionは含められないので、backupなんかもここにおいておきます。
  4. boot
    pxeboot imageで起動すると、Fedoraのinstall画面になります。
  5. install
    後は、いつもどおりのinstall作業です。

installが終わったら、backupを復活させて、partition構成を以下の状態に戻しておきました。

PartitionSize
/boot100MB
/2GB
/var5.9GB

その後は、気を抜かずにyum updateです。
が、しかし、RAMが少ないためTransaction TestがOom Killが多発し異常終了してしまいます。仕方が無いのでyumで取得したrpmを手動で入れていきました。

Cyrus IMAP、postfix、dhcp daemon、ddclient、php-mbstringのpackageを追加して、設定が復活した頃には夜が明けてしまいました。
もちろんsshd_configでは、PermitRootLogin=noで、AllowedUser=管理アカウントのみとしておきました。

教訓

  1. rootでremoteから直接loginは、ありえない設定
  2. OS領域とData領域は分けといて正解
  3. もう少し早いPCだと、寝れたかも

*1 http://www.ring.gr.jp/pub/linux/Vine/Vine-2.6/i386/images/ で配布されています。
*2 http://buffalo.melcoinc.co.jp/products/catalog/item/l/lpc3-tx/ です。安かったからなー

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS   Amazon.co.jp
Last-modified: Sat, 21 May 2005 09:57:52 JST (7623d)