Как заставить spamassassin работать с постфиксом как milter
Я пытаюсь заставить spamassassin работать на Ubuntu 16.04 с постфиксом.
При получении почты я получаю сообщения, подобные следующим в моих журналах:
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)
Я вижу это как две проблемы:
- Необоснованная проблема с длиной пакета
- Тайм-аут чтения формы сокета при чтении ввода
У меня установлены следующие соответствующие пакеты:
- постфикс 3.1.0-3
- spamassassin 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_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
Разрешения для сокетов хороши, и они находятся там, где они должны быть для postfix в chroot, а пользователь 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
Любая помощь приветствуется:
2 ответа
TLDR: Ваш постфикс подключается к сокету spamd, но должен подключаться к сокету spamass-milter, который стоит между ними. Ищите определение второго сокета в ваших скриптах конфигурации / запуска spamass-milter (/etc/init.d/spamass-milter).
Пояснение (на основе моей конфигурации Gentoo /etc/conf.d/ похоже на /etc/default/): Цепочка выглядит следующим образом:
POSTFIX> spamass-milter.sock> MILTER> spamd.sock> СПАМД
/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
PS Спасибо идет в отладку spamassassin с постфиксом
Я прочитал эту статью и обнаружил, что она предназначена для Debian, но может также применяться для Ubuntu. http://www.stefan-seelmann.de/wiki/mailserver-postfix-dovecot