Чтобы мой почтовый сервер доставлял почту пользователям Microsoft, Gmail и Yahoo, мне нужно настроить DKIM. Я следую этому руководству Debian: https://wiki.debian.org/opendkim .
Я написал сценарий для выполнения большей части работы, хотя редактирование файлов конфигурации я оставил делать вручную (с предоставленными возможностями). Вот сценарий:
read mydomain
echo "Enter Selector (e.g. default, 2020, dkim):"
read myselector
echo "Installing opendkim..."
apt install opendkim opendkim-tools
echo "Generating keys..."
mkdir -p /etc/dkimkeys/"$mydomain"
chown -R $USER /etc/dkimkeys/"$mydomain"
#cd /etc/dkimkeys/"$mydomain"
sudo opendkim-genkey -D /etc/dkimkeys/"$mydomain" -d "$mydomain" -s "$myselector"
echo "Check location /etc/dkimkeys/$mydomain for created files. Optional (via SFTP would be best)"
echo "Continue?"
read
echo "Open /etc/opendkim.conf (via SFTP), so you can edit the parameters"
echo "(see https://wiki.debian.org/opendkim)..."
echo "When done, press ENTER"
read
echo "Restarting opendkim..."
systemctl restart opendkim
echo "Open /etc/postfix/main.cf (via SFTP), so you can edit the parameters"
echo "(see https://wiki.debian.org/opendkim)..."
echo "When done, press ENTER"
read
echo "Restarting postfix..."
systemctl reload postfix.
echo "Done! Publish your public key as a TXT record in DNS at $myselector._domainkey.$mydomain."
echo "The generated file /etc/dkimkeys/$mydomain/$myselector.txt contains the record."
После редактирования файла /etc/opendkim.conf мой Postfix SMTP больше не принимает никаких подключений. Клиенты не могут подключиться и использовать внешнюю программу проверки, я получаю:
[006.573] --> STARTTLS
[006.635] <-- 454 4.3.0 Try again later
[006.636] STARTTLS command rejected
[006.636] --> MAIL FROM:<test@checktls.com>
[006.782] <-- 451 4.7.1 Service unavailable - try again later
[006.782] Cannot proof email address (reason: MAIL FROM rejected)
Я думаю, что что-то не так с этой строкой в руководстве:
Socket inet:8891@localhost
Я закомментировал:
Socket local:/var/run/opendkim/opendkim.sock
... но это не имело никакого значения.
У кого-нибудь есть рабочая установка DKIM на Postfix? Не могли бы вы сравнить мои файлы main.cf и opendkim и посоветовать, что я делаю не так? Возьмите их отсюда: https://filebin.net/gwqv1ge2qpz9yy65
Спасибо
Есть 2 места, где указан слушатель. В /etc/default/opendkim нужно добавить:
SOCKET="inet:8891@localhost"
.
Закомментируйте остальные сокеты.
В /etc/postfix/main.cf вам нужно будет добавить:
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
У меня также есть SOCKET inet:8891@localhost в моем /etc/opendkim.conf, но я не уверен, что это необходимо.
Мой сервер снова заработал после сбоя обновления. Почему-то opendkim не запустится, если у другого пользователя есть права на ключи. Я исправил эту покупку, скопировав ключ в папку, принадлежащую пользователю и группе opendkim. Описание ошибки не отображалось в статусе systemctl opendkim, пока я не переустановил opendkim. До этого он просто показывал код ошибки, но не объяснял. Сервер работает уже 4 года без происшествий.