web-dev-qa-db-ja.com

ミルターとしてpostfixでspamassassinを動作させる方法

私はspamassassinをUbuntu16.04でpostfixを使って動作させようとしています。

メールを受信すると、ログに次のようなメッセージが表示されます。

Jun 11 14:29:47 myhost postfix/smtpd[2387]: connect from mail-oi0-f54.google.com[209.85.218.54]
Jun 11 14:29:47 myhost spamd[2349]: spamd: got connection over /var/spool/postfix/spamassassin/spamd.sock
Jun  11 14:30:17 myhost postfix/smtpd[2387]: warning: milter unix:/spamassassin/spamd.sock: unreasonable packet length: 1397768525 > 1073741823
Jun 11 14:30:17 myhost postfix/smtpd[2387]: warning: milter unix:/spamassassin/spamd.sock: read error in initial handshake
Jun 11 14:30:17 myhost spamd[2349]: spamd: timeout: (30 second socket timeout reading input from client)

私はそれを2つの問題として見ています:

  1. 不当なパケット長の問題
  2. 入力を読み取るときにフォームソケットの読み取りをタイムアウトします

次の関連パッケージをインストールしています。

  • 接尾辞3.1.0-3
  • スパムアサシン3.4.1-3
  • spamass-milter 0.3.2-1

私の/ etc/default/spamass-milterには

OPTIONS="-u spamass-milter -i 127.0.0.1 -m -I -- --socket=/var/spool/postfix/spamassassin/spamd.sock"

/ etc/default/spamassassinに含まれるもの

SAHOME="/var/lib/spamassassin"
SAGLOBALCFGPATH="/etc/spamassassin"
ENABLED=1
OPTIONS="-x --max-children 5 --helper-home-dir /var/lib/spamassassin -u  debian-spamd -g debian-spamd --siteconfigpath /etc/spamassassin --socketpath=/var/spool/postfix/spamassassin/spamd.sock --socketowner=debian-spamd --socketgroup=debian-spamd --socketmode=0660"
PIDFILE="/var/run/spamd.pid"
CRON=1

/etc/postfix/main.cfには、次のmilter関連の行があります。

milter_default_action = accept
milter_connect_macros = j {daemon_name} v {if_name} _
non_smtpd_milters = $smtpd_milters
smtpd_milters = unix:/spamassassin/spamd.sock unix:/opendkim/opendkim.sock

ソケットのパーミッションは適切であり、chrootのpostfixに必要な場所であり、postfixユーザーはdebian-spamdグループに属しています。

$ ls -l /var/spool/postfix/spamassassin/spamd.sock
srw-rw----  1 debian-spamd debian-spamd    0 Jun 11 14:21 spamd.sock

どんな助けでも大歓迎です:

1

[〜#〜] tldr [〜#〜]:接尾辞はspamのソケットに接続していますが、spamass-milterのソケットに接続する必要があります。間にある。 spamass-milter構成/起動(/etc/init.d/spamass-milter)スクリプトで2番目のソケットの定義を探します。

説明(私のGentoo構成に基づくと、/ etc/conf.d /は/ etc/default /に似ています):チェーンは次のようになります:

POSTFIX> spamass-milter.sock> MILTER> spamd.sock> SPAMD

  • /etc/postfix/main.cf

    unix:/var/run/milter/spamass-milter.sock

  • /etc/conf.d/spamass-milter

    SOCKET=/var/run/milter/spamass-milter.sock OPTIONS="-i 127.0.0.1 -m -I -- --socket=/var/spool/postfix/spamassassin/spamd.sock"

  • /etc/conf.d/spamd

    --socketpath=/var/spool/postfix/spamassassin/spamd.sock

P.S.おかげで 接尾辞でspamassassinをデバッグする

この記事を読んだところ、Debian用であることがわかりましたが、Ubuntuにも適用される可能性があります。 http://www.stefan-seelmann.de/wiki/mailserver-postfix-dovecot

0
K-ICT