Здесь мы настроим подпись писем DKIM’ом, проверку входящих Spamassasin’ом на спам и Clamav’ом на вредоносы.
Для проверки SPF, DKIM, DMARC рекомендую использовать мыло: check-auth@verifier.port25.com
spamassasin
Ставим:
apt install spamassassin spamass-milter spamc
Настройка самого Assasin’а обычно не требуется. В /etc/postfix/master.cf для сервиса smtp добавим:-o content_filter=spamassassin
И добавим в конец сервис spamassasin:
spamassassin unix - n n - - pipe
flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
Итого получилось:
smtp inet n - n - - smtpd
-o content_filter=spamassassin
spamassassin unix - n n - - pipe
flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
opendkim
Установка
apt install opendkim opendkim-tools
Сгенерируем ключ и дадим на него права для opendkim:
mkdir /etc/opendkim && opendkim-genkey -D /etc/opendkim -d xz777.ru -s mx && chown opendkim /etc/opendkim/*
Правим конфиг /etc/opendkim.conf:
KeyTable refile:/etc/opendkim/keytable
SigningTable refile:/etc/opendkim/signing
Canonicalization relaxed/simple
LogWhy yes
Тут мы указали таблицы с ключами и подписями, логгирование, а также Canonicalization. Создадим файлы с таблицами:
/etc/opendkim/keytable:
mx._domainkey.example.com example.com:mx:/etc/opendkim/mx.private
/etc/opendkim/signing:
*@example.com mx._domainkey.example.com
- добавляем milter postfix’у:
non_smtpd_milters = unix:/run/opendkim/opendkim.sock
smtpd_milters = unix:/run/opendkim/opendkim.sock
Создаем DNS TXT запись для поддомена mx._domainkey
со значением из файла /etc/opendkim/mx.txt. Алярм! кавычки и длинные пробелы убрать, а еще публичная часть DKIM’а разделена на 2 части (долго мучался с этим).
АЛЯРМ
эта срань переносит итоговую DNS запись! необходимо учитывать это
clamav
!!! Алярм !!! Служба жрет 1 Гб ОЗУ, рекомендую ставить только на системы с 2 Гб ОЗУ (край — 1.5 Гб)
- Ставим:
apt install clamav-milter clamav-daemon
- Ставим корректную группу на milter-socket:
MilterSocketGroup postfix
- (Дополнительно) Включаем детальное логгирование:
/etc/clamav/clamav-milter.conf:
LogTime true
LogSyslog true
LogVerbose true
- вынимаем smtp из chroot’а:
Без этого postfix smtp сервис не сможет получить доступ к сокету.
/etc/postfix/master.cf:
smtp inet n - y - - smtpd
Заменяем на
smtp inet n - n - - smtpd
В конфиге /etc/postfix/main.cf указываем:
non_smtpd_milters = unix:/run/opendkim/opendkim.sock unix:/var/run/clamav/clamav-milter.ctl
smtpd_milters = unix:/run/opendkim/opendkim.sock unix:/var/run/clamav/clamav-milter.ctl
- (пере)запускаем службы:
systemctl restart clamav-daemon.service clamav-milter.service
- Демон надо включить
systemctl enable clamav-daemon.service
Готово
Отправляем письмо счастья на ящик check-auth@verifier.port25.com или другой, на котором есть проверки, и радуемся.