Как создать свой почтовый сервер и избежать попадания вашей почты в спам?
Необходимо настроить подписи DKIM, DMARC и SPF записи!
Postfix
- Устанавливаем программное обеспечение:
apt-get install opendkim opendkim-tools postfix-policyd-spf-python postfix-pcre
sudo adduser postfix opendkim
Opendkim
Конфигурация opendkim
- Создаем директорию с ключами:
mkdir -p /etc/opendkim/keys
- Генерируем ключи:
export DOMAIN=burlutsky.su
cd /etc/opendkim/keys/
mkdir $DOMAIN
cd $DOMAIN
opendkim-genkey -s mail -d $DOMAIN
Тут используется селектор с именем mail
. Замените burlutsky.su на имя вашего домена.
- Создаем таблицу подписей:
cat >>/etc/opendkim/SigningTable <<EOF
*@$DOMAIN mail._domainkey.$DOMAIN
cat /etc/opendkim/TrustedHosts
127.0.0.1
localhost
$DOMAIN
*.$DOMAIN
EOF
- Создаем таблицу ключей:
cat > /etc/opendkim/KeyTable <<EOF
mail._domainkey.$DOMAIN $DOMAIN:mail:/etc/opendkim/keys/$DOMAIN/mail.private
- Добавляем наши файлы в
/etc/opendkim.conf
:
AutoRestart Yes
AutoRestartRate 10/1h
SyslogSuccess Yes
LogWhy Yes
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
Mode sv
Socket inet:12301@localhost
- Настраиваем работу службы opendkim на интерфейсе localhost и TCP сокете. Изменяем:
/etc/defaults/opendkim
SOCKET="inet:12301@localhost"
- Добавляем postfix фильтр (milter) с opendkim сокетом. В файле
/etc/postfix/main.cf
:
milter_protocol = 2
milter_default_action = accept
smtpd_milters = inet:localhost:12301
non_smtpd_milters = inet:localhost:12301
policyd-spf_time_limit = 3600
smtpd_helo_required = yes
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
check_policy_service unix:private/policyd-spf
smtp_tls_security_level = may
smtp_tls_ciphers = export
smtp_tls_protocols = !SSLv2, !SSLv3
smtp_tls_loglevel = 1
- Устанавливаем права на новые файлы:
chown -R opendkim:opendkim /etc/opendkim
- Добавляем новую политику в конце файла /etc/postfix/master.cf:
policyd-spf unix - n n - 0 spawn
user=policyd-spf argv=/usr/bin/policyd-spf
- Включаем в автозагрузку и запускаем службы:
systemctl enable postfix
systemctl restart postfix
systemctl enable opendkim
systemctl restart opendkim
DNS
Пришло время конфигурации DNS. Необходимо добавить следующие записи:
- SPF запись.
TXT "v=spf1 a:burlutsky.su -all"
замените burlutsky.su на имя вашего домена.
- Теперь необходимо получить сгенерированный открытый ключ DKIM:
cat /etc/opendkim/keys/$DOMAIN/mail.txt
Вы увидите что-то типа:
mail._domainkey IN TXT ( "v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq+...) ; ----- DKIM key mail
Добавьте эту запись в DNS.
- Включаем DMARC:
_dmarc.burlutsky.su IN TXT "v=DMARC1; p=none; sp=none;"
- Можно тестировать вашу почту с gmail или онлайн сервисами, например: https://mxtoolbox.com/dkim.aspx . В качестве селектора укажите selector =
mail
.