タグ「Postfix」が付けられているもの


rspamd + rmiter の組み合わせに、ClamAV を連携させてみた

以前、インストールメモをエントリーとしてあげていた、 rspamd と rmilter の組み合わせ、なかなか調子良く動作してくれている。
せっかくなので、以前書いていたけど連携させていなかった clamav との連携についてもまとめておきます。

rspamd は rmilter を使うことで ClamAv とも連携出来るようだし、DKIM 対応も rspam 側に取り込めるみたいだし、個別にフィルタ書いたりと色々と弄りどころが多そうなので、しばらく様子見て調子が良ければ、全部 rspamd を使うようにしちゃおうかな?とか思い始めていたりします。

[From rspamd + rmilter をセットアップ - Soukaku's HENA-CHOKO Blog]

一応、英語ではインストールから設定まで解説してくれているページはあるので、そちらを見れば設定出来ると思いますが。

Rmilter is a milter-daemon by the same author of Rspamd. You can use it to integrate clamav (Anti Virus) scanning for your emails on postfix, and you will also need it if you want to integrate postfix with Rspamd itself. Click here for the compile & install how to of Rspamd under Debian Wheezy.

[From Perl Hipster: How to compile & install rmilter + clamav under Debian Wheezy]

インストールとセットアップ

rspamd と rmilter は、既に動作している事が前提なので、その部分の説明は省略。必要であれば、以前のエントリーを参照のこと。
イントールのターゲットは、 Debian なので、それ以外の Linux ディストリビューションの場合は、インストールの部分を適宜読み替えてくださいね。
#jessie では rspamd 、 rmilter ともに取り込まれていますね。

opendkim でもエラーは、出続けてるんだよな

とりあえず、opendkimに入れ替えた以降、From:がgmail.comなメールが受信できない、というのは無くなったようなのだけど、ログをチェックしてみると、やっぱり"bad signature"ということで、エラーは出続けている模様。

Apr  3 00:05:02 nexus01 opendkim[10125]: B76D9BC2: s=20120113 d=gmail.com SSL error:04091068:rsa routines:INT_RSA_VERIFY:bad signature
Apr  3 00:05:02 nexus01 opendkim[10125]: B76D9BC2: bad signature data

dkim-milterだと、エラー即一時的配送拒否になっていたのだから、状況は改善しているのだけどね...。
でもこれって、やっぱりGoogle側だよなぁ、原因は...。

dkim-milter から opendkim に切り替えてみる

ダウングレードしてみたり、再び最新パッケージに戻してみたり、と足掻いているにも関わらず、一向に改善される気配のない、gmail.comカラのメール受信ができない件。
ようやくというか、海外でも似たような事例が出てきたようで、その流れの中で「opendkimをに切り替えてみては?」というアドバイスが出ていたので、試して見ることにした。
#OpenDKIMは、dkim-milterからforkしたプロジェクト、ということらしい。

Gmailからのメールが受け取れないんだが

最近気がついたのだけど、Gmailから自分のトコ宛にメールを出すと、

ar  6 22:46:08 nexus01 postfix/smtpd[6313]: 4E99F84C: client=mail-vw0-f48.google.com[209.85.212.48]
Mar  6 22:46:08 nexus01 postgrey[3654]: 4E99F84C: action=pass, reason=client whitelist, client_name=mail-vw0-f48.google.com, client_address=209.85.212.48, sender=soukaku@gmail.com, recipient=soukaku@downtown.jp
Mar  6 22:46:08 nexus01 postfix/cleanup[4664]: 4E99F84C: message-id=
Mar  6 22:46:08 nexus01 dkim-filter[2639]: 4E99F84C: dkim_eoh(): internal error from libdkim: ar_addquery() for `20120113._domainkey.gmail.com' failed
Mar  6 22:46:08 nexus01 postfix/cleanup[4664]: 4E99F84C: milter-reject: END-OF-MESSAGE from mail-vw0-f48.google.com[209.85.212.48]: 4.7.1 Service unavailable - try again later; from= to= proto=ESMTP helo=

という感じで、DKIMの署名検証に失敗していて、そのせいで家のサーバが一時的な受取拒否状態になってる。

自分んトコ → Gmail については問題ないし、Gmailから以外のメールについても問題は無いので、なんでなんでしょうねぇ、と...。

設定覚え書き:Postfixともろもろ(2011年版)

むか〜し、書いておいたPostfixとその周辺の設定に関するエントリーが、ずいぶんとアクセスがあるので、改めて現在の設定状態を書きだしてみる。

以前書いておいたSMTPサーバ関連の設定の覚え書きから、かなり内容が変わっているんで、新しく残しておきます。

[From 設定覚え書き:Postfix編 | Linux - Soukaku's HENA-CHOKO Blog]

このエントリー、日付てみると7年も前なのに、アクセスはなぜか一番多いんだよねぇ。不思議不思議。
まぁ、SMTPサーバなんて一度安定して動いてしまったら、余程の事ない限りは設定弄ることないんで、

postfix + amavisd-new + clamav + spamassassin

という基本的な構成は変わらずに、

postgrey
postfix-policyd-spf-perl
dkim-filter

を組み合わせているのが、現状の構成。

順番の問題でハマるなんてなぁ

reject_mails.png

思いも寄らぬところで、はまっていたので、備忘録。まぁ、古い話なんだけどさ。

自分のところでは、ずいぶん前からgreylistingを使うことでbotを送信元としていると思われるスパムメールをかなり弾くことが出来ていたのだけど、3月中頃から、突然gleylistingが効かなくなってしまい、右往左往。

postgreyの起動時にオプションを指定する

ほぼ日課のようになっている、パッケージのアップデート。
いつものようにaptitudeでパッケージデータベースのアップデートをして、アップデート対象を確認。「postgrey、アップデートされたんだ〜」と思いつつ、パッケージのインストールに進んだら、なんかpostgreyが起動しないというメッセージ。
aptitudeを抜けて、改めてpostgreyを起動させてみると、

eswat2:~# /etc/init.d/postgrey start
Starting postfix greylisting daemon: postgreyERROR: --unix or --inet must be specified

というメッセージ。
どうやら、UNIX Socketかportが指定されていないことが起動しない原因のようなので、postgreyのmanやhelpメッセージをチェックして、/etc/default/postgreyの中にあるPOSTGREY_OPTS行の先頭の#を消して、


POSTGREY_OPTS="--inet=10023"

と、portを指定するオプションを記述。再度postgreyを起動して、無事復旧〜。

導入時点でのメモがエントリーにしてあったので、見直してしたら、

インストール自体は、aptitude install postgreyで終わり。

postgrey - Soukaku's HENA-CHOKO Blog

と、特にpostgreyに関する設定は何も行っていなかったのよね。
少なくとも直前の1.31まではアップデートの時に起動しなくなるということは無かったと記憶しているので、1.32でパッケージング時のデフォルト設定が変わった模様デス。

SPFの効果をMuninでグラフにしてみる[補足&修正]

以前書いたmuninにSPF(Sender Policy Freamwork)の頑張り具合をグラフ化させる方法ですが、方法自体は良いのだけど、どうも集計すべき値が間違っているような気がしてきた。

修正ポイントは、「ログの中の、どのキーワードで集計するのか」ということになるので、postfixのログを確認してみると・・・。

Dec 8 16:54:46 eswat2 postfix/policy-spf[12781]: : Policy action=550 Please see http://www.openspf.org/Why?s=mfrom&id=prashant%40paratype.com&ip=82.131.186.125&r=eswat2.downtown.jp

"Policy action="のあたりが集計に使えそうなので、実際に"action="のうしろにどんなキーワードが来るのかを確認。

SPFの効果をMuninでグラフにしてみる - Soukaku's HENA-CHOKO Blog

なので、ちょっと手直しをしてみた。

dkim-filterをインストール

メール送信者の正当性を確認するための技術であるDKIMが、IETFに正式に承認されたというので、うちのサーバでも対応させてみました。

ITmedia エンタープライズ:送信ドメイン認証「DKIM」、IETFが承認:
DKIMはドメインレベルでメールに署名、その署名を検証するシステム。メールの受信側が署名の部分からドメイン名を特定、暗号化技術を使って署名を検証する。迷惑メールやスパム、フィッシング対策として有力視されている規格だ。

Debianなので、必要なソフトのインストールは、

aptitude install dkim-filter

で、OKなのだけど、設定でちょっとハマった・・・。

特定ドメイン宛のメールを外部のSMTPサーバに転送する

とあるML宛にメールを出すと

Feb 14 12:22:56 eswat2 postfix/smtp[488]: D199170E91: to=<example@example.or.jp>, relay=lists.example.or.jp[210.xxx.yyy.47]:25, delay=15, delays=0.05/0.01/15/0, dsn=4.0.0, status=deferred (host lists.example.or.jp[210.xxx.yyy.47] refused to talk to me: 450 Client host rejected: cannot find your hostname, [218.219.149.234])

相手側のメールサーバが、「こちらのメールサーバの逆引きが出来ない」事が原因で、受信を一時的に拒否している、とログに記録されて、送信できない状況。
答えられる内容のメールが流れても、メールが送れなくてはどうしようもないので、ちょっとメールサーバに手を入れてみた。

FuzzyOcrPluginを入れてみる

このところ、うちのドメインを騙って送られたspamの弾かれた奴が戻ってくるのが目に付くようになってるんだけど、その中に画像付きの奴がいくつか見られるのと、ふつーに送られてくるspamの中にも画像付きの奴が来、ちらほら。
なので「対策をしてみよう!」ということで、SpamAssassinの機能を拡張するためのPlugin、FuzzyOcrPluginを入れてみた。

まずは、前準備と言うことで、FuzzyOcrを動かすための前提となるパッケージからインストール。
Debianの場合(ただしEtchsid)、Operating System specific notesを見ると

postgrey

SPAM対策の一つに「GreyListing」という方法があるんだが、Postfixでそれを実現するためのパッケージも出てきたので、使ってみることにした。

apt-cacheを使って検索してみると、

eswat2:/etc/postfix# apt-cache search greylisting
greylistd - Greylisting daemon for use with Exim 4
postfix-gld - greylisting daemon for postfix, written in C, uses MySQL
postgrey - greylisting implementation for Postfix
whitelister - a Postfix Whitelister daemon

Postfix用には二つのパッケージが存在しているんだけど、今回はMySQLを使わないpostgreyを選択。

設定覚え書き:Postfix編

以前書いておいたSMTPサーバ関連の設定の覚え書きから、かなり内容が変わっているんで、新しく残しておきます。

現時点では、

postfix+amavisd-new+clamav+spamassassin+courier-imap&courie-pop

という組み合わせで、pop-before-smtpパッケージを利用してPOP-Before-SMTP、IMAP-Before-SMTPを実現しています。

設定覚え書き:Postfix関連

[2004/10/15]最新状態で、エントリーを作り直しましたので、そちらもご覧下さい。

-----

インストール済みパッケージの一覧

eswat2:~# dpkg -l postfix* amavis* *clam* *spam* | grep -e ^ii
ii  postfix        2.0.19-1       A high-performance mail transport agent
ii  postfix-doc    2.0.19-1       Postfix documentation
ii  postfix-pcre   2.0.19-1       PCRE map support for Postfix
ii  amavisd-new    20030616p7-3   Interface between MTA and virus scanner/cont
ii  clamav         0.69-0.70-rc-2 Antivirus scanner for Unix
ii  clamav-base    0.69-0.70-rc-2 Base package for clamav, an anti-virus utili
ii  clamav-daemon  0.69-0.70-rc-2 Powerful Antivirus scanner daemon
ii  clamav-freshcl 0.69-0.70-rc-2 Downloads clamav virus databases from the In
ii  clamav-getfile 0.3-3          Update script for clamav
ii  clamav-testfil 0.69-0.70-rc-2 Use these files to test that your Antivirus
ii  libclamav1     0.69-0.70-rc-2 Virus scanner library
ii  libclamav1-dev 0.69-0.70-rc-2 Clam Antivirus library development files
ii  spamassassin   2.63-1         Perl-based spam filter using text analysis
ii  spamc          2.63-1         Client for perl-based spam filtering daemon