カテゴリー別アーカイブ: Courier

FreeBSDで不自然にcronメールが届いてた

FreeBSDを使っていたら不自然にcronの実行結果のメールが届いてた。

shell> more 80056.M80664P9205V005BI007FCAB0_0.aaaa.l2tp.org,S=1649:2,S
X-Spam-Checker-Version: SpamAssassin 3.3.0 (2010-01-18) on aaaa.l2tp.org
X-Spam-Level:
X-Spam-Status: No, score=-2.9 required=5.0 tests=ALL_TRUSTED,BAYES_00,
TVD_SPACE_RATIO autolearn=ham version=3.3.0
Received: from bbbb.l2tp.org ([192.168.1.1])
(TLS: TLSv1/SSLv3,256bits,AES256-SHA)
by aaaa.l2tp.org with esmtp; Mon, 27 Feb 2012 03:14:12 +0900
id 00022ABF.4F4A7674.000023EF
Received: from bbbb.l2tp.org (localhost [127.0.0.1])
by host005.l3tp.org (8.14.4/8.14.4) with ESMTP id q1QIAPnh047625
for <[email protected]>; Mon, 27 Feb 2012 03:10:25 +0900 (JST)
(envelope-from <a href="mailto:[email protected]">[email protected]</a>)
Received: (from <a href="mailto:[email protected]">[email protected]</a>)
by bbbb.l2tp.org (8.14.4/8.14.4/Submit) id q2EIA47579;
Mon, 27 Feb 2012 03:10:05 +0900 (JST)
(envelope-from yousan)
Date: Mon, 27 Feb 2012 03:10:05 +0900 (JST)
Message-Id: <[email protected]>
From: <a href="mailto:[email protected]">[email protected]</a> (Cron Daemon)
To: <a href="mailto:[email protected]">[email protected]</a>
Subject: Cron <a href="mailto:[email protected]">[email protected]</a>  /usr/local/sbin/portversion -vL= > /home/yousan/var/portversion.`hostname`
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin>
X-Cron-Env: <HOME=/home/hogetan>
X-Cron-Env: <LOGNAME=hogetan>
X-Cron-Env: <USER=hogetan>

[Updating the portsdb <format:bdb_btree> in /var/tmp ... - 23289 port entries found .........1000.........2000.........3000.........4000.........5000.........6000.........7000.........8000.........9000.........10000.........11000.........12000.........13000.........14000.........15000.........16000.........17000.........18000.........19000.........20000.........21000.........22000.........23000.. ..... done]

メールの内容は上記。見たところcronでの実行結果がメールで来ているようだ。でもこのメールはちょっと不審な点が。

というのも宛先のToになっている [email protected]” というアドレスは存在しないアドレスだ。それなのにメールが [email protected] 宛てに届いていた。bbbb.l2tp.org はMXレコードに登録されていない。まずは下記の点いついて調べてみた。

  1. ホスト “bbbb.l2tp.org” でcrontabの環境変数、MAILTOについて
  2. ホスト “bbbb.l2tp.org” で/etc/aliasesでのエイリアス状況
  3. “l2tp.org”ドメインのMXに割り当てられているホストでのaliases

上記について、すべての点において [email protected] へメールを送るような設定は見られなかった。1は設定が無かった。2はファイルはデフォルトでの設定だった。3についてすべてのaliasを見たがそれらしき設定は無かった。

にもかかわらず [email protected] 宛てにメールが届いてしまう。

試しにテストメールを送ってみた。

bbbb.l2tp.org> sendmail <a href="mailto:[email protected]">[email protected]</a> < mail.txt

当初は単にメールが送れないだけだったんだけど、しばらくして mailer daemon から返答が。よく見るとその戻り先はToが [email protected]” となっていたけれど、このメールも [email protected]” に届いてしまった。なんかおかしい。

.cshrcとか.zshrcとかにMAILTOが設定されてそうな気がして改めてホームディレクトリをgrepを掛けてみた、ら、答えが出た。

.forwardファイルを設定してた。

shell> ls –lat .forward; more .forward

-rw-------  1 hogetan hogetan  16 Jan 26  2008 .forward
\[email protected]

しかも結構古い。コレが原因でした。

Courierが利用するaliases.datの中身を確認する

1. Courierのaliasシステム

現在、メールのMTAとしてcourierを利用している。courierさんはメールを配送する際、aliasというメールアドレスに別名を付ける仕組みを持っている。

この仕組みがあると仮想的にメールアドレスを増やせたりして結構便利だったり。もともとsendmailにあったものをそのまま引き継いでいるような。

で、このaliasを利用するにはちょっと一癖ある。

続きを読む Courierが利用するaliases.datの中身を確認する

FreeBSDからメールの配送がうまくいってなかった

1. メールがこない!

現在、いくつかのホストでは監視用にメールを飛ばすようにしてる。これってsmtpでメールサーバを立てて・・・、って訳ではなく、各ホストのsendmailがmailコマンドでメールを投げてくる、という簡単なものだ。

先日メールサーバを移行したのだけれど、このタイミングであるホストからのメールが来なくなった。送りたいメールはローカルのドメイン宛てで、送りたいプログラムはcactiのアラートメール。phpのmailコマンドを呼んでいると思われるのでシステムのmailコマンドを利用しているような気がしてる。

まずはDNSでの名前解決を当たった。というのも、移行された旧メールサーバこそがこのメールが送れなくなったホストであり、ついでにDNSの機能まで積んでいたものだから、そこのMXレコードあたりの参照が出来なくなったんだろう、っていう予測を。

でもMXレコードでローカルのドメインを引いてもちゃんと引けてる。こまったなぁ。

続きを読む FreeBSDからメールの配送がうまくいってなかった

時刻のズレが呼ぶサービスダウン

1. メールが見れない!

ある日突然、メールが見れなくなった。imapでcourier-mtaのサーバに接続してメールを取得しようとしたらエラーが出ていた。

OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE AUTH=PLAIN ACL ACL2=UNION] Courier-IMAP ready. Copyright 1998-2010 Double Precision, Inc.  See COPYING for distribution information.
0000 CAPABILITY
CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE AUTH=PLAIN ACL ACL2=UNION
0000 OK CAPABILITY completed
0001 LOGIN ******** ********
BYE Clock skew detected. Check the clock on the file server

エラーとしては “BYE Clock skew detected. Check the clock on the file server” と言うものらしい。どうやら時刻がズレているようだ。

続きを読む 時刻のズレが呼ぶサービスダウン

CourierでSpamAssassinを利用してスパム対策

1. やっぱり面倒スパムメール

現在、メールサーバを運用しているのだけれど、やっぱりスパムメールがいっぱいくる。来るだけで害はない、はずなんだけれど、見通しが悪くなる点とかあって、できれば自動的にスパムを省いたりしたい。

で、導入されたのがSpamAssassin。

スパムメール対策としては結構有名なものらしく、解説してくれてるページもそれなりにあってインストールもお手軽。

そして実際、すでに運用されている。

今回はメールサーバを移転するに当たって、再度SpamAssassinを入れる事になった。

続きを読む CourierでSpamAssassinを利用してスパム対策

courierで.forwardを使ってメールを転送する

courierで.forwardを使ってメールを転送する。

The dotforward program is a compatibility module that reads forwarding instructions in $HOME/.forward. dotforward is used for compatibility with sendmail or other mail servers that use the $HOME/.forward file. The dotforward program is intended to be executed from a dot-courier(5) delivery instruction file. The system administrator can add it to the default set of delivery instructions, thus unilaterally implementing $HOME/.forward systemwide. To read forwarding instructions from $HOME/.forward, put “|| dotforward” on the first line of $HOME/.courier*. “|| dotforward” can also be added to the DEFAULTDELIVERY setting in the courierd configuration file. In both cases it must be followed by a newline, and the remaining delivery instructions, which will be used if $HOME/.forward does not exist.

dot-forward - couerie.mta

勘を便りに適当に要約すると、sendmailとかで使ってた.forwardを使えるようにするには、$HOMEで指定されたディレクトリに、.courier (-*)的なファイルを作って、そこに下記のとおり書きます。

|| dotforward
./Maildir

こうやって書くと$HOMEにある.forwardファイルを読んで、転送を適当にやってくれますよ、ってことらしいです。

二行目の./Maildirが無いと、そこのアカウント自身に配送されなくて困りました。

$HOMEはuserdbで定義してあるやつです。うちだとMaildirが入ってるディレクトリでした。

IMAP over SSLが繋がらなかった

IMAP over SSLで使われるポート番号993が、ypbindによって使われていたのが問題だった。

https://bugzilla.redhat.com/show_bug.cgi?id=103401
Redhatに同様の問題が報告されていて、ここではポート番号をPIDから算出している記述があった。

とりあえずypbindを再起動して解決した。
誰かypbindが使うポート番号を指定する方法を求ム。

SpamAssassinルールメモ

## 無効ルール
# Subjectが複数行に渡るパターン。日本語の場合MIMEエンコードにより長くなるためよく発生するのでOK
score GAPPY_SUBJECT 0
# SubjectでMIMEエンコードが複数回行われるパターン。日本語では「あfooあ」のように英語が挟まった場合に普通に発生するのでOK
score SUBJECT_ENCODED_TWICE 0
# 本文で水平空白文字が0~10%の割合で出現するパターン。日本語の場合普通は単語の区切りにスペースを入れないのでOK
score TVD_SPACE_RATIO 0
# Fromに "<" があって ">" が無いパターン。Fromに日本語があるとマルチバイト中の 0x3c や 0x3e にマッチして誤判定するので無効化
score FM_FRM_RN_L_BRACK 0
# Subjectに!と?が含まれるパターン。日本語があるとマルチバイト中の 0x21 や 0x3f にマッチして誤判定するので無効化
score PLING_QUERY 0

http://www.kawaz.jp/pukiwiki/?Postfix%2FClamSMTP%A4%C8SpamPD%A4%C7%A5%A6%A5%A3%A5%EB%A5%B9%A1%F5SPAM%A5%D5%A5%A3%A5%EB%A5%BF#u2ab1e6d

Spamassassinがおかしい

courierのログを眺めていたら、ルールが見つからないからアップデートしろやゴルアっていわれた。

spamd[61507]: logger: removing stderr method
spamd[61509]: config: no rules were found! Do you need to run ‘sa-update’?
spamd[61507]: child process [61509] exited or timed out without signaling production of a PID file: exit 25 at /usr/local/bin/spamd line 2541.

spamasassin

で、404だし、http://www.sa-update.pccc.com/はForbiddenだし。