Главная
Главная Руководства FreeBSD › Установка и настройка spamd на FreeBSD



Автор:

Статья опубликована: 2022-08-14 21:08:10
Последние правки: 2022-08-14 23:25:13

Установим и настроим spamd на FreeBSD. В качестве брандмауера для spamd будем использовать IPFW.
И спойлер: после установки, настройки и запуска, первое же тестовое письмо, отправленное на сервер, не дошло, в логах сервера-отправителя следующее: "status=deferred (TLS is required, but was not offered by host...". Почтовик хочет TLS, но spamd такое не умеет. На данный момент spamd без поддержки TLS бесполезен. Плюс в логах spamd вылезла давняя болячка: IPFW setsockopt(IP_FW_TABLE_FLUSH) (No such process). Как лечить - не нашел.


  • Исходные данные
    # uname -sr
    FreeBSD 12.3-RELEASE-p5
    # pkg info | grep spamd
    spamd-4.9.1_6                  Traps spammers with a very slow smtp-login and return 4xx error
    


  • Установка

    Как известно, spamd портирован с OpenBSD, и поэтому по умолчанию хочет видеть PF в качестве брандмауера. Как известно, мы не мейнстримщики, у нас в системе уже есть IPFW и почему бы не использовать его? Предварительные настройки, добавляем в файл /etc/make.conf:
    .if ${.CURDIR} == ${PORTSDIR}/mail/spamd
    WITH_IPFW=yes
    .endif
    
    Устанавливаем:
    # cd /usr/ports/mail/spamd
    # make install clean
    
    Автозапуск, добавляем строчки в /etc/rc.conf
    obspamd_enable="YES"
    obspamd_flags="-m ipfw"
    #obspamlogd_enable="YES"
    
    Добавляем записи в /etc/services, для этого нужно запустить специальный файл:
    # /usr/local/sbin/add-spamd-to-etc-service
    Checking /etc/services for missing spamd service entries
    ==> add entry "spamd 8025/tcp"
    ==> add entry "spamd-sync 8025/udp"
    ==> add entry "spamd-cfg 8026/tcp"
    
    Логи в свой файл через syslog, добавляем в файл /etc/syslog.conf:
    !spamd
    *.* /var/log/spamd.log
    
    Создаем файл и перезапускаем syslog:
    # touch /var/log/spamd.log
    # /etc/rc.d/syslogd restart
    
    Ротация логов, файл /etc/newsyslog.conf:
    /var/log/spamd.log 640 5 100 * JC
    
    spamlogd хочет файл для данных, создаем:
    # touch /var/db/spamd
    # chown _spamd:_spamd /var/db/spamd
    


  • Взаимодействие с IPFW

    Если при установке вы выбрали опцию DOC, то можно почитать тут: /usr/local/share/doc/spamd/ipfw-spamd.txt. Из этого файла мы узнаем следующее:
    1. spamd по умолчанию в IPFW использует таблицы 1 и 2. Если хотите использовать другие, то, например, для использования таблиц 4 и 5, в /etc/rc.conf должна быть такая строчка:
    obspamd_flags="-m ipfw -t 4"
    
    Добавляем правила в ipfw:
    $fw add fwd 127.0.0.1,8025 tcp from table\(5\) to me 25 in
    $fw add allow tcp from table\(4\) to me 25 in
    $fw add fwd 127.0.0.1,8025 tcp from any to me 25 in
    
    # /etc/rc.d/ipfw restart
    # /usr/local/etc/rc.d/obspamd restart