next up previous
次へ: この文書について... 上へ: 1月勉強会発表レポート 戻る: フレッツISDNを利用した常時接続Serverの構築-2

番外-不正中継の踏台にされたsendmail Serverの実例と改善

*きちんと対策していなかったためにSPAMの踏台にされていた例

私が勤めている会社(仮にA社としておきます)では、HP-UX上でsendmailを使用して mailを受け取っているのですが、(a.com)と(a.co.jp)の二つサーバがあり、 (a.co.jp)の方は存在を忘れられていたために、SPAM中継の踏台にされてしまって いたのです。ある日、Internetが異常に遅くなったために、情報をいろいろ調べていたところ、そのサーバの事を前任者から聞きました。調べてみたところ、sendmailが凄い数で立ち上がっていて、あちこちにSPAMを投げていたのが原因だったらしいです。

Webで調べたところ、MAPSのリストに登録されていました。次のページに、その情報があります。

\includegraphics[width=15cm,clip]{MAPS_1.ps}
Tue Oct 17 10:41:25 2000 ---- Received: (qmail 17970 invoked by uid
	407); 16 Oct 2000 08:54:41

-0000 Received: (qmail 17968 invoked from network); 16 Oct 2000 08:54:40 -0000 Received: from
ns.a.co.jp (@***.***.***.***) by mail.pimpdaddy.com with
	SMTP; 16 Oct 2000 08:54:40

-0000 Received: from 216.76.216.45 (host-216-76-216-45.dab.bellsouth.net [216.76.216.45]) by
ns.a.co.jp with SMTP (8.7.1/8.7.1) id SAA13665; Mon, 16 Oct
	2000 18:07:18 +0900 (JST)

From: money1jesus@usa.net Message-ID: <0000037447a2$000056d8$00006a46@216.76.216.45> To:
Subject: Ever see this? 27206 Date: Mon, 16 Oct 2000 04:42:39 -0400
	X-Priority: 3

X-MSMail-Priority: Normal Reply-To: christina_andrews38@yahoo.com -----Original
Message----- From: money1jesus@usa.net [mailto:money1jesus@usa.net] Sent: Monday, October
16, 2000 4:43 AM 

Subject: Ever see this? 27206 ~~~ Free Audio Cassette ~~~~ 

Learn all about Currency Trading and how YOU can profit from it! Learn..then make a decision! To receive this
information simply reply with your name, mailing address and telephone number! To be removed from

*対策

話が、Linuxとは離れてしまうので、ざっとやったことだけ説明します。

踏台にされたHP-UXは、

sendmail-8.6.*

bind-4.* (細かいバージョンは忘れました)

この辺を新しいものに入れ換える必要があります。また、telnetでrootで直に入れるは、パスワードが 「firewall」とかいう、教科書そのマンマの設定なので、この辺も直してやる必要 があります。

本当は、この辺でHP-UXを諦めてLinux+qmailでやろうとしていたのですが(実際、設定まで終っていた)、 本社側の意向ということでHP-UX+sendmailを使用せざるを得ませんでした。

  1. HP-UX(11.0)のCDを取り出して、Installします。 この時点で、CDに入っているsendmailが古いので、HPのサイトにあったPatchを入れ てsendmail-8.9.3にしてやります。

  2. rootのパスワードは覚えにくいもの(プログラム書いてランダムに出させた )やつを使用(気合いで覚える)。root以外のユーザを作り、リモートから入るとき は、そのユーザからsuでrootになるようにします。/etc/securettyをman読みながら 自分で書いて、rootはtelnetで入れないようにします。

  3. tcpwrapperを導入して、セキュリティの強化を図る。HPにはgccが無いので、 最初にgcc使える環境にして(書いてしまえば簡単だが、これが意外に面倒)、 /etc/inetd.confからwrapperの方を呼び出すようにしてtelnetdなどを立ち上げます。 また、/etc/servicesをいじったり、inetd.confを変更して、余分な Serviceは立ち上げないようにします。また、/etc/hosts.allow, /etc/hosts.denyを書いてやって、特定のworkstationからじゃないと受け付けないようにします。

  4. bindを8.2.2P7に上げます。HPのサイトには、こいつのBinaryが無いので、 Sourceを 持って来て、makeしてやらなくちゃいけないです。でも、こいつが、デフォルトの HP用のmakeファイルでやると、必ず失敗します。時間が無いので、Linux用のファ イルを見ながら、デフォルトのHP-UXの環境ではなくGNUの方を参照するようにしま した。これで、makeしてみたら、今度は成功です。init.dの方で、新しいnamedを 動かすようにして、/etc/named.confを書いてやります。

  5. sendmail.cfの記述を新しくします。これは、CF-3.7Wp2を利用して作成し ました。CFを解凍して、manualを読んでシコシコと書きあげます。今回は、relayの踏台にされていたので、relay関係のところを特に考えて記述します。

    参考として、

    http://www.mnc.waseda.ac.jp/security/mail.html (sendmailのセキュリティ説明 が載ってます)

    http://www.mail-abuse.org/tsi/ar-fix.html(いろいろなmail serverのセキュリティ対策が載ってます)

    http://www.sendmail.org/m4/anti-spam.html

    http://www.sendmail.org/ ca/email/relayingdenied.html

    http://www.sendmail.org/ ca/email/chk-89f.html#ACCESS_RELAY

    あたりを読みました。sendmail.orgとsendmail.net上の情報は、手助けになりました。

最後に、新しくなったsendmailサーバを立ち上げて、実験します。

設定が妥当かどうかのチェックは、mail-abuse.orgにserverからtelnetで接続する とやってもらえます。長いので省略して書きますが、これで(少なくとも当分は)安 全で あろうことが分かります。(でも、きちんとSecurity情報は追いかけなきゃね)

# telnet mail-abuse.org
Trying...
Connected to mail-abuse.org.
Escape character is '^]'.
Connecting to ***.***.***.*** ...
<<< 220 A.co.jp ESMTP Sendmail 8.9.3 (PHNE_18546)/3.7W01/22/01; Tue
<<< 220 A.co.jp ESMTP Sendmail 8.9.3 (PHNE_18546)/3.7W01/22/01; Tue
, 23 Jan 2001 11:41:57 -0500 (EST)
>>> HELO dante.mail-abuse.org
<<< 250 A.co.jp Hello dante.mail-abuse.org [204.152.184.35], please
<<< 250 A.co.jp Hello dante.mail-abuse.org [204.152.184.35], please
d to meet you
:Relay test: #Quote test
>>> mail from: <spamtest@ns.A.co.jp>
<<< 250 <spamtest@ns.A.co.jp>... Sender ok
>>> rcpt to: <"nobody@mail-abuse.org">
<<< 553 <"nobody@mail-abuse.org">... Relay operation rejected
>>> rset
<<< 250 Reset state
:Relay test: #Test 1
>>> mail from: <nobody@mail-abuse.org>
<<< 250 <nobody@mail-abuse.org>... Sender ok
>>> rcpt to: <nobody@mail-abuse.org>
<<< 553 <nobody@mail-abuse.org>... Relay operation rejected
>>> rset
<<< 250 Reset state

----------------------------------snip--------------------------------------
:Relay test: #test 19
>>> mail from: <postmaster@ns.A.co.jp>
<<< 250 <postmaster@ns.A.co.jp>... Sender ok
>>> rcpt to: <nobody@mail-abuse.org>
<<< 553 <nobody@mail-abuse.org>... Relay operation rejected
>>> rset
Local flow control off
<<< 250 Reset state
>>> QUIT
<<< 221 a.co.jp closing connection
Tested host banner: 220 a.co.jp ESMTP Sendmail 8.9.3 (PHNE_18546)/3
.7W01/22/01; Tue, 23 Jan 2001 11:41:57 -0500 (EST)
System appeared to reject relay attempts
Connection closed by foreign host.



平成13年1月29日