ML宛へのスパム(MAILER-DAEMON)送信のお詫び

※実際は10/16のネタです。
メーリングリスト宛へのスパム(MAILER-DAEMON)送信のお詫び

■local内でループしたメールが合計1000件、
 MAILER-DAEMONとしてbounceされたメールを受け取る事が可能な
 メーリングリストの返信先に宛てて送信されてしまいました。

 私の不備で1000件分のスパム送信を行ったという状況です。

 原因は内部メールからもう一台のメールサーバに配送した際、
 配送先のサーバにヤフーメールの転送、認証設定が残ったままだったためです。

 弾かれても行き先の無い通常メールは対象外です。

 ※「labunix.net」は私が所持するyahoo mailの転送専用のドメインです。

 2011/10/16 18:01以降の現在は転送に必要な下記3種が無効です。

 許可(access)、転送(transport)、認証(userpasswd)

 関係者の皆様、申し訳ございません。

■概要

 17:50:06 外部smtpの無い単独サーバでのfetchmail。
 17:5255 外部smtpの在るもう一台のサーバに、上記サーバからfetchmailで取得
 
     ※外部smtp経由でMAILER-DAEMONが送信される。

 18:00:27 smtp送信に気づきfetchmailの強制終了
 18:01:26 ログからsmtpの送信先を確認、access、transportの変更、
      postmapの実行、.forwardのチェック。
 18:03:01 fetchmailの再実行、外部への送信が無いことを確認。
 18:29:35 ログからまだpostfixをreloadしていないことに気づき、再読み込み。
      ※reloadしなくてもpostmapで問題無かった。
18;30頃 メールの送信先がメーリングリストで1000件ある事を確認。
      gmail、YahooMail共に自分宛にこの件についてのメールは無かった為、解析を開始。
 18:41:31 溜まっていたキューの削除。
 18:45 lists.debian.orgよりスパムの連絡有り
 19:00頃 上記メールを元にループとなった原因を追う。
 20:00頃 SSL認証エラーななるケースとboucedされるケースの違いは、
      bounceを受け取る返信先があるかないかの違いである事を突き止める。
 20:30頃 影響範囲をリストアップ完了。
      ただし、ヘッダのアドレスまでは追えない事を確認。

      ※17:33のlsチェック時に仮想マシンの容量を消費しており、
       17:52fetchmail実行中に未読のメールを削除していた為。
       これはちょうどループが起こり、smtp送信していた時間と一致する。

 22:00頃 追える範囲でのmail.infoを再度確認。
      リストアップしたメーリングリスト以外のアドレスでのstatus=sentは無い事を確認。 
 23:00頃 このブログを作成開始
 01:16  現在、時系列の概要を書き出し、ひとまず完了とした。

■「18:01:26」のfetchmail実行時以降、送信できないように変更
 設定修正後の最初のログ

Oct 16 18:03:01 ibm-amddebian postfix/error[6078]: XXXXXXXXXXX: to=<*****@*****>, relay=none, delay=550, delays=549/0.73/0/0.03, dsn=4.3.0,
 status=deferred (mail transport unavailable)

■MAILER-DAEMON送信サーバは、転送が可能になっていたYahooMailのみです。

$ sudo grep status=sent /var/log/syslog | grep -v procmail | awk '{print $8}' | sort |uniq -c
 1000 relay=smtp.mail.yahoo.co.jp[114.111.99.228]:587

■該当のqidで確認したところ、SASL認証に失敗し、535の認証エラーも返していますので、
 YahooMailの問題ではありません。

Oct 16 17:55:38 ibm-amddebian postfix/smtp[5685]: XXXXXXXXXX: to=<***@***>, relay=smtp.mail.yahoo.co.jp[114.111.99.228]:587, 
delay=0.33, delays=0.04/0/0.29/0, dsn=4.0.0, status=deferred
 (SASL authentication failed; server smtp.mail.yahoo.co.jp[114.111.99.228] said: 535 authorization failed (#5.7.0))

■弾かれた(bounce)場合のアドレスを持っている先にのみ「status=sent」となっています。
 「mail forwarding loop for」が最初の原因でbounceするのはpostfixのデフォルト動作です。

 ※ここで外部smtpを許可していなければ、今回の事態は起こりませんでした。

$ sudo grep 2XXXXXXXXX /var/log/syslog
Oct 16 17:52:52 ibm-amddebian postfix/cleanup[5487]: 2XXXXXXXXX: message-id=<20111016085252.2XXXXXXXXX@
ibm-amddebian.labunix.net>
Oct 16 17:52:52 ibm-amddebian postfix/bounce[5490]: 1XXXXXXXXX: sender non-delivery notification: 2XXXXXXXXX
Oct 16 17:52:52 ibm-amddebian postfix/qmgr[4220]: 2XXXXXXXXX: from=<>, size=7029, nrcpt=1 (queue active)
Oct 16 17:52:52 ibm-amddebian postfix/smtp[5494]: 2XXXXXXXXX: to=, relay=smtp.mail.yahoo.co.jp[114.111.99.228]:
587, conn_use=2, delay=0.24, delays=0.01/0/0.03/0.21, dsn=2.0.0, status=sent (250 ok 1318755071 qp 97256)
Oct 16 17:52:52 ibm-amddebian postfix/qmgr[4220]: 2XXXXXXXXX: removed

$ sudo grep 1XXXXXXXXX /var/log/syslog
Oct 16 17:52:52 ibm-amddebian postfix/smtpd[5483]: 1XXXXXXXXX: client=localhost[127.0.0.1]
Oct 16 17:52:52 ibm-amddebian postfix/cleanup[5493]: 1XXXXXXXXX: message-id=<***@***1>
Oct 16 17:52:52 ibm-amddebian postfix/cleanup[5493]: 1XXXXXXXXX: resent-message-id=<***@***2>
Oct 16 17:52:52 ibm-amddebian postfix/qmgr[4220]: 1XXXXXXXXX: from=, size=5103, nrcpt=1 (queue active)
Oct 16 17:52:52 ibm-amddebian fetchmail[5481]: SMTP< 250 2.0.0 Ok: queued as 1XXXXXXXXX
Oct 16 17:52:52 ibm-amddebian postfix/local[5488]: 1XXXXXXXXX: to=, relay=local, delay=0.06, delays=0.05/0/0/0.02,
 dsn=5.4.6, status=bounced (mail forwarding loop for labunix@localhost)
Oct 16 17:52:52 ibm-amddebian postfix/bounce[5490]: 1XXXXXXXXX: sender non-delivery notification: 2XXXXXXXXX
Oct 16 17:52:52 ibm-amddebian postfix/qmgr[4220]: 1XXXXXXXXX: removed


■外部に送信されるfechmailの取り込みを実行した時間(17:5217:553分間)
 fetchmailで同期し、localhostでループ、外部smtpに接続可能なサーバへの転送されたタイミング
 この時間帯のみ外部へのMAILER-DAEMON返信が成功しています。

$ sudo grep status=sent /var/log/syslog | grep -v procmail | \
  awk '{print $3}' | awk -F\: '{print $1 ":" $2}' | sort |uniq
17:52
17:53
17:54
17:55

■受信用サーバのfetchmailへの到着ログ(1件抽出)

 Oct 16 17:54:52 ibm-amddebian fetchmail[5481]: labunix@vmsqueeze.labunix.net 宛に届いた 2041 番目のメッセージ
(全部で 13283)を読み込んでいます (3617 バイト)
Oct 16 17:54:52 ibm-amddebian fetchmail[5481]: サーバからメッセージを削除しませんでした。

■受信用サーバから外部へのsmtp転送が可能なpostfixサーバへの転送ログ。

$ sudo grep "smtp." /var/log/syslog | grep status=sent
Oct 16 17:54:52 vmsqueeze postfix/smtp[19462]: XXXXXXXXXX: to=, relay=192.168.1.88[192.168.1.88]:25, delay=0.2,
 delays=0.03/0.03/0.07/0.07, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as XXXXXXXXXX)

■外部へのsmtp転送が可能なサーバから外部へのpostfix送信時の該当ログ(1件分)

Oct 16 17:54:52 ibm-amddebian postfix/cleanup[5635]: XXXXXXXXXX: message-id=<20111016085452.0042XXXXXX@
ibm-amddebian.labunix.net>
Oct 16 17:54:52 ibm-amddebian postfix/bounce[5625]: XXXXXXXXXX: sender non-delivery notification: XXXXXXXXXX
Oct 16 17:54:52 ibm-amddebian postfix/qmgr[4220]: XXXXXXXXXX: from=<>, size=5932, nrcpt=1 (queue active)
Oct 16 17:54:52 ibm-amddebian postfix/smtp[5494]: XXXXXXXXXX: to=<*******=labunix=*****@*****>, relay=smtp.mail.yahoo.co.jp[114.111.99.228]:587, 
conn_use=3, delay=0.39, delays=0.01/0.07/0.03/0.29, dsn=2.0.0, 
status=sent (250 ok 1318755191 qp 14405)
Oct 16 17:54:52 ibm-amddebian postfix/qmgr[4220]: XXXXXXXXXX: removed

■fetchmailの実行ログ
 以下より、「17:52:32」に実行したfetchmail分が外部へ転送された箇所です。
 その前までは内部のサーバ間転送は行ってませんので、外部にsmtp転送は行えません。

Oct 16 17:50:06 ibm-amddebian fetchmail[5447]: サーバ証明書検証エラー: self signed certificate
Oct 16 17:52:32 ibm-amddebian fetchmail[5481]: サーバ証明書検証エラー: self signed certificate
Oct 16 18:01:26 ibm-amddebian fetchmail[6072]: サーバ証明書検証エラー: self signed certificate

■状況に気づいてfetchmailを停止した箇所

Oct 16 18:00:27 ibm-amddebian fetchmail[5481]: シグナル 2 で終了しました。

■postfixをreloadした時間

$ sudo less /var/log/syslog | grep reload
Oct 16 18:29:35 ibm-amddebian postfix/master[4208]: reload configuration /etc/postfix

■postuperでキューを削除した時間。

$ sudo grep postsuper --color /var/log/syslog | head -1
Oct 16 18:41:31 ibm-amddebian postfix/postsuper[7293]: Deleted: 6437 messages


■送信元(転送専用のドメインにホスト名が付いた状態)
 ※返信してもMAILER-DAEMONとなります。

 localhost
 vmsqueeze.labunix.net
 ibm-amddebian.labunix.net

■送信先アドレス/送信数/送信先名(敬称略)

・送信先(nslookupで見つかったドメイン)

 cm.impress.co.jp ( 2通)インプレスビジネスメディア IT Leaders編集部
 gnu.org ( 9通)Grub-devel メーリングリスト
 googlegroups.com (787通)googleの各グーグルグループ
 lists.debian.org (155通)Debianの各メーリングリスト
 lists.linux-foundation.org( 2通)The Linux Foundationの各メーリングリスト
 listserv.linux.or.jp ( 3通)JFメーリングリスト
 mysql.gr.jp        ( 5通)日本MySQLユーザ会メーリングリスト
 rcv26.smp.ne.jp      ( 1通)LPI-Japan メールマガジン編集局

・送信先(digで見つかったアドレス/スパム判定されたものと思われる)

 alerts.bounces.google.com ( 7通)Google Alerts
 list.cr.yp.to       ( 15通)QMAILメーリングリスト
 reply.yahoo.co.jp     ( 1通)Yahoo Japan
 samba.gr.jp        ( 7通)日本 Samba ユーザー会
 *** ( 6通)その他私の管理するメーリングリスト

■この件についての連絡先

 unix_lab@yahoo.co.jp