Назад | Перейти на главную страницу

Как интегрировать postfix и mimedefang

Как использовать MIMEDefang с Postfix для фильтрации электронной почты? Я не хочу писать обработчик SMTPD, и вся информация, которую я могу найти о MIMEDefang, относится к тому, как использовать его с Sendmail.

Собираюсь бросить это сюда, поскольку я сделал это вчера:

Вам не нужно ничего катить самостоятельно. Все, что тебе нужно postfix, libmilter, и mimedefang RPM, для которых доступны в EPEL, поэтому они должны быть доступны в других дистрибутивах, которые на самом деле есть ток версии пакетов, а не версии 4-6-летней давности, которые делают репозитории EL. Но я отвлекся.

На Centos 6.5 просто:

yum install mimedefang

который выйдет и получит sendmail-milter [он же libmilter] как часть зависимостей. [Также SpamAssassin]

После этого я рекомендую изменить настройки сокета для MIMEdefang, чтобы использовать сокет inet, а не сокет unix. В основном это делается для того, чтобы избежать проблем с разрешениями, поскольку я не могу найти комбинацию пользователя и разрешений, которая работает как для Postfix, так и для MD.

в /etc/sysconfig/mimedefang раскомментируйте и отредактируйте SOCKET строка к:

SOCKET=inet:10997

Сделайте порт любым, 10997 - мой случайный выбор.

Сейчас:

service mimedefang start
chkconfig mimedefang on

А теперь вы можете просто добавить конфигурацию milter в main.cf или как smtpd -o в master.cf вот так:

smtpd_milters = inet:10997

Либо построить, либо установить mimedefang (Я использовал yum, поскольку это было сделано в системе CentOS 6.4). Это также установит sendmail, но не беспокойтесь - это требование для программного обеспечения. Если вы создаете, заметьте, что вам понадобится эта зависимость.

Чтобы написать milter, используя этот процесс, вам нужно найти и изменить файл с именем mimedefang-filter. Доступно множество примеров, и в зависимости от того, выполняли ли вы самостоятельную сборку или использовали RPM, в вашей системе может быть один или несколько. Поместите этот файл в / etc / mail и убедитесь, что он исполняемый.

Создайте папку под названием / var / spool / MIMEDefang.

Найдите код управления службой для mimedefang и положи это в /etc/init.d. Сделайте его исполняемым. Откройте этот код в редакторе и найдите такой раздел:

# Tricky stuff below... "echo -E" won't work, hence the two-step.
daemon $PROGDIR/$prog-multiplexor -p /var/spool/MIMEDefang/$prog-multiplexor.pid \
    $([ -n "$FILTER" ] && echo "-f $FILTER") \
    $([ -n "$SYSLOG_FACILITY" ] && echo "-S $SYSLOG_FACILITY") \
    $([ -n "$SUBFILTER" ] && echo "-F $SUBFILTER") \

... more lines follow with the same formatting...

    $([ "$MX_STATS_SYSLOG" = "yes" ] && echo "-T") \
    $([ "$MD_ALLOW_GROUP_ACCESS" = "yes" ] && echo "-G") \
    $([ -n "$MX_NOTIFIER" ] && echo "-O $MX_NOTIFIER") \
    echo "-U defang" \    <--------****** ADD THIS LINE ****
    -s $MX_SOCKET

Найдите следующий раздел, который начинается так:

daemon $PROGDIR/$prog -P /var/spool/MIMEDefang/$prog.pid \
    -m $MX_SOCKET \
    $([ -n "$LOOPBACK_RESERVED_CONNECTIONS" ] && echo "-R $LOOPBACK_RESERVED_CONNECTIONS") \
    $([ -n "$MX_USER" ] && echo "-U $MX_USER") \

... follow it down....

    $([ "$ALLOW_NEW_CONNECTIONS_TO_QUEUE" = "yes" ] && echo "-q") \
    echo "-U defang" \   <----------*** ADD THIS LINE ****
    -p $SOCKET

Следуйте этому разделу кода вниз вправо перед строкой «return $ RETVAL». Добавьте эту строку:

chmod oug+rw /var/spool/MIMEDefang/*.sock

Если вы этого не сделаете, postfix не сможет связаться с mimedefang обработать.

Выйдите, сохраните и добавьте это к своим службам, используя chkconfig или что-то еще, что вас устраивает.

Последний шаг: открыть /etc/postfix/main.cf и добавьте эти строки:

smtpd_milters = unix:/var/spool/MIMEDefang/mimedefang.sock
milter_default_action = accept

Теперь - остановите postfix, запустите mimedefang, а затем перезапустите postfix. Проверяйте свои журналы, чтобы узнать больше, и продолжайте заниматься своими делами.