суббота, 24 апреля 2021 г.

postfix, dkim, debian

Установка

sudo apt install opendkim opendkim-tools

После установки конфиг лежит в /etc/opendkim.conf

Теперь надо настроить - создать несколько файликов и ключи

mkdir -p /etc/opendkim/keys
chown -R opendkim:opendkim /etc/opendkim
chmod go-rw /etc/opendkim/keys

 Теперь нам нужно в /etc/postfix/main.cf указать, где искать dkim файлы

ExternalIgnoreList      refile:/etc/opendkim/TrustedHosts
InternalHosts            refile:/etc/opendkim/TrustedHosts
KeyTable                 refile:/etc/opendkim/KeyTable
SigningTable             refile:/etc/opendkim/SigningTable

Также, там есть ещё ряд настроек

AutoRestart             Yes
AutoRestartRate         10/1h
UMask                   002
Syslog                  yes
SyslogSuccess           Yes
LogWhy                  Yes

Canonicalization        relaxed/simple

Mode                    sv

UserID                  opendkim:opendkim

Umask, Syslog уже есть в оригинальном конфиге, их можно не копировать.

Замечание на тему Socket: если нужно работать через tcp, формат такой: inet:12301@localhost, но по умолчанию открывается Unix socket в /var/run/opendkim/opendkim.sock (легко проверяется через netstat -plan | grep dkim). И если надо переопределить, то по ряду мануалов это делается в /etc/default/opendkim

Ключ генерируется так

sudo -u opendkim opendkim-genkey -s <some_name> -D /etc/opendkim/keys -d <yourdomain.com> -b 2048

!!! В некоторых мануалах перепутаны -b и -s. -b это СКОЛЬКО БИТ ключ, а -s это префикс для dns, так называемый селектор! Тот что <some_name>._domainkey, если планируется несколько мест для отправки - лучше использовать технический префикс сервера типа srv01, и избегать имён вида mail - может быть конфликт с рядом сервисов автогенерации, включая почту от яндекса - мне и такое довелось увидеть...

И второй момент -- после создания ключа файлы создаются только по селектору без учёта доменов, поэтому лучше в keys сразу создать папку с доменом и в -D поправить на keys/<yourdomain.com>. Ниже keyTable с учётом этой папки.

Теперь лучше записать публичную часть в dns

cat /etc/opendkim/keys/<yourdomain.com>/<some_name>.txt

Теперь надо заполнить файл, где описаны для каких доменов какие селекторы подключать.

В /etc/opendkim/KeyTable

 <some_name>._domainkey.<yourdomain.com> <yourdomain.com>:<some_name>:/etc/opendkim/keys/<yourdomain.com>/<some_name>.private

В /etc/opendkim/TrustedHosts пишем хосты, которые будут подписаны нашей подписью, обычно это только сама машина

127.0.0.1
localhost
# можно указать подсети, вида 192.168.0.0/24

В /etc/opendkim/SigningTable пишем, каким ключом что подписываем

*@<yourdomain.com> <some_name>._domainkey.<yourdomain.com>

 Не путаем KeyTable и TrustedHosts! В KeyTable - где искать ключи по домену и селектору, а TrustedHosts - каким ключом подписываем почту для каких адресов. Можно вообще сделать отдельные ключи для отдельных ящиков.

проверьте, что в /etc/postfix/main.cf

    # Milter configuration
    # Postfix ≥ 2.6 milter_protocol = 6, Postfix ≤ 2.5 milter_protocol = 2
    milter_protocol = 6
    milter_default_action = accept
    smtpd_milters = unix:/var/spool/postfix/var/run/opendkim
    non_smtpd_milters = unix:/var/spool/postfix/var/run/opendkim

И перезапустите opendkim, postfix

 

Проверка

после настройки opendkim можно обнаружить в mail.log:

postfix/cleanup[13428]: warning: connect to Milter service unix:/var/run/opendkim/opendkim.sock: No such file or directory

Хотя и файл такой есть, и с правами всё хорошо. Но, слава chroot, работать так не будет.

Фикс:

  1. Then do the following

    sudo adduser postfix opendkim
  2. Postfix running in chroot

    Modify /etc/default/opendkim, change SOCKET option to postfix chroot location

    SOCKET="local:/var/spool/postfix/var/run/opendkim/opendkim.sock"

    You will have to create directory /var/spool/postfix/var/run/opendkim and change its permission

    sudo mkdir -p /var/spool/postfix/var/run/opendkim
    sudo chown opendkim:opendkim /var/spool/postfix/var/run/opendkim
    
  3. Restart opendkim

    sudo service opendkim restart
    https://unix.stackexchange.com/questions/74477/postfix-smtpd-warning-connect-to-milter-service-unix-var-run-opendkim-opendki

 

Links

Относительно свежая дока, но читать аккуратно

https://www.linode.com/docs/guides/configure-spf-and-dkim-in-postfix-on-debian-9/

Вроде и официальная, но очень старая

https://wiki.debian.org/opendkim

Комментариев нет:

Отправить комментарий