比例道
| フロントページ | 新着 | 一覧 |
<-domain ijino tamedesu

diary/20070507

俺を踏み台にした〜!(qmail)

最新の失敗談である.とあるアパートでqmailのメールサーバーを建てていた.4月までは問題なく動いていたのだがGWになってスパムメールの踏み台にされてしまい,数万通のスパムメールを送出してしまった.全く申し訳ない.しかも,これはうっかりではなく踏み台にされる可能性があることを知っていて放置していたので言い訳できない.このマシンの25番ポートを見つける輩などいるまいと甘く見ていたのだ.
この輩の手口はmaillogに全て残っていた。
1. 5月3日13:40 antelop7@ms1.hinet.netから同じアドレス宛へのメール送信を試していた
2. 5月4日11:07 antelop.chen@msa.hinet.netで同じことを試した
3. 5月4日11:37 スパムメール送信を開始 fromはvonybr(ランダム)@yahoo.com toはabc318@ms13.hinet.net形式でabc318の部分とms13の部分をランダムに変えながら送信していた
4. 5月7日10:49に私が気付いて止めるまでずっと送信し続けていた.その数約4万通.マシンがlibrettoだったので処理速度が遅かったのが幸いした.今時の通常のマシンだと1桁以上多く送出してしまっていただろう.
気づいたときはすぐにqmailを止めた.リモートキューに溜まっていたスパムメールはqmHandleを使って削除した.このマシンはRedhat6.2JでPerlはV5.005であったのでqmHandleの最新版1.2.2はperlのエラーで動かず,ちょっと古めの1.1.1で処理した.
踏み台になった理由は簡単で,同じqmailサーバーを外からのメールを受けるメールサーバーとLAN内からのメールを受けて外へ出すメールサーバーの両方の役として使っていたからだ.外からのメールを受けるだけなら/var/qmail/control/rcpthostsに自サーバーだけを指定しておけば良いが,LAN内からのメールを受けて外へ出すには同じファイルに.comだの.jpだの宛先になり得るドメインを書いておかねばならない.しかし,これをやると外から自サーバー宛以外のメールを送り込まれても正常に受け取ってしまい,リレーしてしまう.つまりスパムの踏み台にされてしまうのだ.
踏み台にされないようかつ設定を簡単にqmailサーバーで行いたい場合は外からのメールを受けるサーバーとLAN内からのメールを外へ送り出すサーバーを別にすれば良い.外からのメールを受けるサーバーのrcpthostsには受け取るべきメールドメインしか記述しない.もちろんqmail-smtpd-relay-reject.patchは当てておく.LAN内からのメールを外へ送り出すサーバーのrcpthostsには全ドメインを記述して良いが,このサーバーにアクセスできるのをLAN内からのマシンだけにしておく.自宅のサーバーはこうしていたのだが,今回のアパートのサーバーは重要度が非常に低い用途だったので,サーバーを分けることをせず1台だけでいい加減に設定して済ませてしまっていた.反省.1台でもtcp wrapperを使えば同じことができるのにそうしていなかった.