Установка и настройка OpenDKIM с MTA Postfix или Sendmail в CentOS 5,6

logo

Установка и настройка OpenDKIM с MTA Postfix или Sendmail в CentOS 5,6 DomainKeys Identified Mail — метод аутентификации E-mail. Технология DomainKeys Identified Mail (DKIM) объединяет в себе несколько методов антифишинга и антиспама, целью которых является повышение качества идентификации и классификации легитимной электронной почты.

Вместо обычного IP-адреса, для идентификации отправителя электронного сообщения DKIM добавляет к нему цифровую подпись, которая связанна с именем домена. Подпись DKIM проверяется на стороне получателя, и в зависимости от результатов, применяются «белые» или «чёрные» списки.

Для аутентификации отправителей в технологии DomainKeys используются доменные имена. DomainKeys использует (DNS) систему доменных имен для пересылки открытых ключей шифрования.

Установка OpenDKIM

В стандартных репозиториях для CentOS 5,6, пакета OpenDKIM может не оказаться, зато его можно найти в репозитории EPEL от fedoraproject.org. Если yum install opendkim не прокатило, тогда устанавливаем EPEL репозиторий от fedoraproject.org и повторяем попытку:

yum repolist
ls /etc/yum.repos.d/
less /etc/yum.repos.d/epel.repo
wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm
or
wget http://download.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
sh-4.1# rpm -Uvh epel-release*rpm
warning: epel-release-6-7.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 060
8b895: NOKEY
Preparing... ########################################### [100%]
1:epel-release ########################################### [100%]
sh-4.1# rm -f epel-release*rpm
sh-4.1# ls
sh-4.1# yum install opendkim
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
epel/metalink | 19 kB 00:00
* atomic: www7.atomicorp.com
* base: mirror.majorhost.net
* epel: mirror.datacenter.by
* extras: mirror.majorhost.net
* updates: mirror.majorhost.net
epel | 4.3 kB 00:00
epel/primary_db | 4.8 MB 00:01
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package opendkim.x86_64 0:2.6.7-1.el6 will be installed
--> Processing Dependency: libopendkim = 2.6.7-1.el6 for package: opendkim-2.6.7
-1.el6.x86_64
--> Processing Dependency: libopendkim.so.7()(64bit) for package: opendkim-2.6.7
-1.el6.x86_64
--> Processing Dependency: libmilter.so.1.0()(64bit) for package: opendkim-2.6.7
-1.el6.x86_64
--> Running transaction check
---> Package libopendkim.x86_64 0:2.6.7-1.el6 will be installed
---> Package sendmail-milter.x86_64 0:8.14.4-8.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
opendkim x86_64 2.6.7-1.el6 epel 193 k
Installing for dependencies:
libopendkim x86_64 2.6.7-1.el6 epel 63 k
sendmail-milter x86_64 8.14.4-8.el6 base 57 k
Transaction Summary
================================================================================
Install 3 Package(s)
Total download size: 312 k
Installed size: 708 k
Is this ok [y/N]: y
Downloading Packages:
(1/3): libopendkim-2.6.7-1.el6.x86_64.rpm | 63 kB 00:00
(2/3): opendkim-2.6.7-1.el6.x86_64.rpm | 193 kB 00:00
(3/3): sendmail-milter-8.14.4-8.el6.x86_64.rpm | 57 kB 00:00
--------------------------------------------------------------------------------
Total 113 kB/s | 312 kB 00:02
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOK
EY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Importing GPG key 0x0608B895:
Userid : EPEL (6) <epel@fedoraproject.org>
Package: epel-release-6-7.noarch (installed)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
Installing : sendmail-milter-8.14.4-8.el6.x86_64 1/3
Installing : libopendkim-2.6.7-1.el6.x86_64 2/3
Installing : opendkim-2.6.7-1.el6.x86_64 3/3
Verifying : libopendkim-2.6.7-1.el6.x86_64 1/3
Verifying : opendkim-2.6.7-1.el6.x86_64 2/3
Verifying : sendmail-milter-8.14.4-8.el6.x86_64 3/3
Installed:
opendkim.x86_64 0:2.6.7-1.el6
Dependency Installed:
libopendkim.x86_64 0:2.6.7-1.el6 sendmail-milter.x86_64 0:8.14.4-8.el6
Complete!
sh-4.1#

Создание DKIM ключей

Когда пакет OpenDKIM и все его зависимости установлены, самое время создать пару ключей, приватный (.private) и публичный (.txt).


mkdir /etc/opendkim/keys/remotehelp.pp.ua
opendkim-genkey -D /etc/opendkim/keys/remotehelp.pp.ua/ -d remotehelp.pp.ua -s default
mv /etc/opendkim/keys/remotehelp.pp.ua/default.private \
    /etc/opendkim/keys/remotehelp.pp.ua/default
chown -R opendkim:opendkim /etc/opendkim/keys/remotehelp.pp.ua

При создании ключа можно явно указать директорию -D (directory), -d (domain) указывает домен с которого будет подписывать исходящая почта, -s (selector) имя создаваемой пары ключей (default по умолчанию), man opendkim-genkey даст дополнительную информацию. Результатом в каталоге /etc/opendkim/keys/remotehelp.pp.ua будут файлы default.private и default.txt

Конфигурационные файлы OpenDKIM

Теперь самое время отредактировать/создать файлы конфигурации OpenDKIM:

  1. /etc/opendkim.conf – Основной файл конфигурации OpenDKIM;
  2. /etc/opendkim/KeyTable – Список ключей для подписания;
  3. /etc/opendkim/SigningTable - Список учётных записей и доменов которые разрешено подписывать;
  4. /etc/opendkim/TrustedHosts – Список серверов доверия при подписании или проверке.

При установке OpenDKIM должен быть создан основной конфигурационный файл /etc/opendkim.conf с настройками по умолчанию, только для проверки "verification only". Для подписания исходящих писем нам нужно будет закомментировать/расскомментировать/настроить некоторые параметры в этом конфигурационном файле используя привычный текстовый редактор.

## BASIC OPENDKIM CONFIGURATION FILE
## See opendkim.conf(5) or /usr/share/doc/opendkim-2.6.7/opendkim.conf.sample fo
r more
 
## BEFORE running OpenDKIM you must:
 
## - make your MTA (Postfix, Sendmail, etc.) aware of OpenDKIM
## - generate keys for your domain (if signing)
## - edit your DNS records to publish your public keys (if signing)
 
## See /usr/share/doc/opendkim-2.6.7/INSTALL for detailed instructions.
 
## CONFIGURATION OPTIONS
 
# Specifies the path to the process ID file.
PidFile /var/run/opendkim/opendkim.pid
 
# Selects operating modes. Valid modes are s (signer) and v (verifier). Default
is v.
Mode    sv
 
# Log activity to the system log.
Syslog  yes
 
# Log additional entries indicating successful signing or verification of messag
es.
SyslogSuccess   yes
 
# If logging is enabled, include detailed logging about why or why not a message
 was
# signed or verified. This causes an increase in the amount of log data generate
d
# for each message, so set this to No (or comment it out) if it gets too noisy.
#LogWhy yes
 
# Attempt to become the specified user before starting operations.
UserID  opendkim:opendkim
 
# Create a socket through which your MTA can communicate.
Socket  inet:8891@localhost
 
# Required to use local socket with MTAs that access the socket as a non-
# privileged user (e.g. Postfix)
Umask   002
 
# This specifies a text file in which to store DKIM transaction statistics.
#Statistics     /var/spool/opendkim/stats.dat
 
## SIGNING OPTIONS
 
# Selects the canonicalization method(s) to be used when signing messages.
Canonicalization        relaxed/simple
 
# Domain(s) whose mail should be signed by this filter. Mail from other domains
will
# be verified rather than being signed. Uncomment and use your domain name.
# This parameter is not required if a SigningTable is in use.
Domain  remotehelp.pp.ua
 
# Defines the name of the selector to be used when signing messages.
Selector        default
 
# Gives the location of a private key to be used for signing ALL messages.
#KeyFile        /etc/opendkim/keys/default.private
 
# Gives the location of a file mapping key names to signing keys. In simple term
s,
# this tells OpenDKIM where to find your keys. If present, overrides any KeyFile
# setting in the configuration file.
KeyTable        refile:/etc/opendkim/KeyTable
 
# Defines a table used to select one or more signatures to apply to a message ba
sed
# on the address found in the From: header field. In simple terms, this tells
# OpenDKIM how to use your keys.
SigningTable    refile:/etc/opendkim/SigningTable
 
# Identifies a set of "external" hosts that may send mail through the server as
one
# of the signing domains without credentials as such.
ExternalIgnoreList      refile:/etc/opendkim/TrustedHosts
 
# Identifies a set internal hosts whose mail should be signed rather than verifi
ed.
InternalHosts   refile:/etc/opendkim/TrustedHosts

Подробные сведения по конфигурационному файлу man opendkim.conf. Мы расскомментировали Domain option (указав актуальный домен), а также KeyTable, SigningTable, ExternalIgnoreList, и InternalHosts options. Потому как мы будем использовать KeyTable, мы закомментировали директиву KeyFile. Приведите в полное соответствие свой opendkim.conf и приведённым выше примером.

Далее нам нужно создать или отредактировать три файла KeyTable, SigningTable, TrustedHosts, которые указаны в основном конфигурационном файле opendkim.conf, обычно они уже имеются в системе.

vi /etc/opendkim/KeyTable
# To use this file, uncomment the #KeyTable option in /etc/opendkim.conf,
# then uncomment the following line and replace example.com with your domain
# name, then restart OpenDKIM. Additional keys may be added on separate lines.
 
#default._domainkey.example.com example.com:default:/etc/opendkim/keys/default.p
rivate
 
default._domainkey.remotehelp.pp.ua remotehelp.pp.ua:default:/etc/opendkim/keys/
remotehelp.pp.ua/default

OpenDKIM из файла KeyTable получает информацию о месте расположении ключей для подписи отправляемой корреспонденции. Каждая запись в KeyTable для домена идёт в одну строку. Если нужно использовать разные ключи для разных виртуальных доменов, то используйте такую конструкцию (где example.com реальное имя вашего домена):

default._domainkey.example.com example.com:default:/etc/opendkim/keys/example.com/default
default._domainkey.example2.com example2.com:default:/etc/opendkim/keys/example2.com/default

Теперь нужно отредактировать vi /etc/opendkim/SigningTable. Этот файл говорит OpenDKIM для каких пользователей (отправителей) и какие селекторы использовать для поиска ключей подписания исходящей почты:

vi /etc/opendkim/SigningTable
# The following wildcard will work only if
# refile:/etc/opendkim/SigningTable is included
# in /etc/opendkim.conf.
 
#*@example.com default._domainkey.example.com
*@remotehelp.pp.ua default._domainkey.remotehelp.pp.ua
 
# If refile: is not specified in /etc/opendkim.conf, then full
# user@host is checked first, then simply host, then user@.domain (with all
# superdomains checked in sequence, so "foo.example.com" would first check
# "user@foo.example.com", then "user@.example.com", then "user@.com"), then
# .domain, then user@*, and finally *. See the opendkim.conf(5) man page
# under "SigningTable".
 
#example.com default._domainkey.example.com

В приведённом выше примере для OpenDKIM указывается, что для подписания писем любого отправителя с домена remotehelp.pp.ua должен использоваться селектор "default". Для нескольких доменов или пользователей нужно использовать конструкцию типа:

*@example.com default._domainkey.example.com
bob@example2.com default._domainkey.example2.com
doug@example2.com default._domainkey.example2.com

Следующим этапом является правка файла /etc/opendkim/TrustedHosts, где указывается список доверенных хостов ExternalIgnoreList которые будут проигнорированы при проверке входящей почты, а поскольку на этот же файл ведёт и директива InternalHosts, то этот же список хостов будет считаться внутренним и OpenDKIM будет подписывать все исходящие сообщения только с этих хостов:

vi /etc/opendkim/TrustedHosts
# To use this file, uncomment the #ExternalIgnoreList and/or the #InternalHosts
# option in /etc/opendkim.conf then restart OpenDKIM. Additional hosts
# may be added on separate lines (IP addresses, hostnames, or CIDR ranges).
# The localhost IP (127.0.0.1) should be the first entry in this file.
127.0.0.1
remotehelp.pp.ua

ВАЖНО! Убедитесь что в /etc/opendkim/TrustedHosts перечислен локальный ИП адрес (127.0.0.1) и он стоит первым в списке, в противном случае OpenDKIM не будет подписывать сообщения, отправленные с этого сервера. Если у вас есть несколько серверов в одной сети, которые отправляют почту через этот сервер и вы хотите подписать эту почту, то они должны быть перечислены в файле TrustedHosts. Каждый адрес указывайте в отдельной строке. Запись может быть именем хоста, доменным именем (например, "example.com"), IP-адрес, IPv6-адрес (в том числе IPv4 адрес), или CIDR диапазон.

Настройка конфигурации MTA (Mail Transfer Agent) под OpenDKIM

Теперь можно приступить к настройке вашего MTA (Mail Transfer Agent) для его совместного использования с OpenDKIM.

Настройка Postfix MTA под OpenDKIM

Расскажите Postfix про OpenDKIM, просто добавьте в коноец файла vi /etc/postfix/main.cf такие строки:

vi /etc/postfix/main.cf
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept

Если вы используете Postfix до версии 2.6, то возможно потребуется добавить:

milter_protocol = 2

Для версий Postfix 2.6 и выше по умолчанию используется milter_protocol версии 6. Подробнее читайте здесь: http://www.postfix.org/MILTER_README.html#version:

sh-4.1# yum list installed | grep postfix
postfix.x86_64 2:2.9.4-1.el6 @CentALT

Настройка Sendmail MTA под OpenDKIM

Измените .mc конфигурационный файл, который был использован для создания вашего текущего файла sendmail.cf. Добавьте следующую строку:

cp /etc/mail/sendmail.mc /etc/mail/sendmail.mc.bak
vi /etc/mail/sendmail.mc
INPUT_MAIL_FILTER(`opendkim', `S=inet:8891@localhost')

ВНИМАНИЕ! Начальная кавычка в INPUT_MAIL_FILTER() должна быть именно "`" (Машинописный обратный апостроф) , иначе интерпретатор m4не воспримет ввод и выдаст ошибку:/etc/mail/sendmail.mc:177: m4: Warning: excess arguments to builtin `define' ignored

Теперь нужно пересобрать sendmail.cf из sendmail.mc

cd /etc/mail
make all -C /etc/mail
или
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

Запуск/автозапуск OpenDKIM и перезапуск MTA

Запустим OpenDKIM и добавим его в автозагрузку, перезапустим MTA:

hash -r
chkconfig --level 2345 opendkim on
chkconfig --list
service opendkim start
postfix reload
service sendmail restart
service opendkim status
opendkim (pid 19175) is running...

Уровни выполнения (запуска) смотрим в /etc/inittab, где есть следующие уровни выполнения:

  • 0 – прервать выполнение
  • 1 – Однопользовательский режим, так называемый «Single user mode», или иными словами, консоль восстановления
  • 2 – Многопользовательский режим без поддержки NFS
  • 3 – Полноценный многопользовательский режим
  • 4 – не используется
  • 5 – X11
  • 6 – перезагрузка

Проверка OpenDKIM на практике

OpenDKIM работает на указанном ранее сокете 8891, в который принимает данные от MTA Sendmail или Postfix, и если письмо удовлетворяет правилам, то оно подписывается и отправляется адресату, а если нет, то отправляется адресату без DKIM подписи.

После отправки письма с сайта от "From:" no-reply@remotehelp.pp.ua, читаем less /var/log/maillogгде находим строчку "DKIM-Signature header added (s=default, d=remotehelp.pp.ua)", которая говорит о добавлении к исходящему письму подписи DKIM:

.............
Nov 7 17:24:35 remotehelp postfix/pickup[19292]: F267144FD4: uid=502 from=<no-r
eply@remotehelp.pp.ua>
Nov 7 17:24:35 remotehelp postfix/cleanup[19333]: F267144FD4: message-id=<eea52
7e7094b03729abd94fd994e509b@remotehelp.pp.ua>
Nov 7 17:24:35 remotehelp opendkim[19175]: F267144FD4: DKIM-Signature header ad
ded (s=default, d=remotehelp.pp.ua)
Nov 7 17:24:35 remotehelp postfix/qmgr[19293]: F267144FD4: from=<no-reply@remot
ehelp.pp.ua>, size=1142, nrcpt=1 (queue active)
Nov 7 17:24:35 remotehelp postfix/smtp[19336]: F267144FD4: to=<support@artdesig
n.pp.ua>, relay=mx.yandex.ru[213.180.204.89]:25, delay=1, delays=0.21/0.07/0.37/
0.39, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued on mxfront22.mail.yandex.net
as LEt4VIsD-LEtSn2XD)
Nov 7 17:24:35 remotehelp postfix/qmgr[19293]: F267144FD4: removed
-------------------------------------
X-Yandex-FolderName: Vhodyashchie
Received: from mxfront22.mail.yandex.net ([127.0.0.1])
by mxfront22.mail.yandex.net with LMTP id LE9WHQXv
for <support@artdesign.pp.ua>; Wed, 7 Nov 2012 17:21:14 +0400
Received: from remotehelp.pp.ua (remotehelp.pp.ua [93.170.128.114])
by mxfront22.mail.yandex.net (nwsmtp/Yandex) with ESMTP id LEt4VIsD-LEtSn2XD;
Wed, 7 Nov 2012 17:21:14 +0400
X-Yandex-Front: mxfront22.mail.yandex.net
X-Yandex-TimeMark: 1352294474
X-Yandex-Spam: 1
Authentication-Results: mxfront22.mail.yandex.net; spf=pass \
(mxfront22.mail.yandex.net: domain of remotehelp.pp.ua designates 
93.170.128.114 as permitted sender) smtp.mail=no-reply@remotehelp.pp.ua; \
dkim=fail header.i=@remotehelp.pp.ua
Received: by remotehelp.pp.ua (Postfix, from userid 502)
id F267144FD4; Wed, 7 Nov 2012 17:24:34 +0400 (MSK)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=remotehelp.pp.ua;
s=default; t=1352294675;
bh=LZcpu3punSJL2H8uuiGgk1SjKWmPCKz3/maRjEZgIeE=;
h=To:Subject:Date:From;
b=nI4L57QioNYcrzY9ob9x+FLx2KqJOKciPFjkRcIeO/I8SaPO2aM2Ba2i0ooqNsIcd
GiFpB2Wx3kRgDpEsLbpL1AcXYQtONqjrA6vSSc0FkGNE55skjurtnc5kcScBBUU658
4l8Ivo7nmY8TtkDOxp3Q2tyDSq1p2Hn9XekV6MVE=
To: support@artdesign.pp.ua
Subject: support
X-PHP-Originating-Script: 502:phpmailer.php
Date: Wed, 7 Nov 2012 15:24:34 +0200
From: support <support@remotehelp.pp.ua>
Message-ID: <eea527e7094b03729abd94fd994e509b@remotehelp.pp.ua>
X-Priority: 3
X-Mailer: PHPMailer (phpmailer.sourceforge.net) [version 2.0.4]
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="utf-8"
Return-Path: no-reply@remotehelp.pp.ua
X-Yandex-Forward: c00e6114a9513a81365a3402fb911c88

Письма будут автоматически подписываться DKIM только в том случае, когда в поле "From:" будет указан какой либо почтовый ящик из домена *@remotehelp.pp.ua - т.е. если на сайте в форме "Поделиться" в поле "От/Ваш e-mail:" будет указан например "vasya@gmail.com", то письмо не будет подписываться DKIM-ом.

А если нужно DKIM-ом подписывать все исходящие сообщения, то вероятно достаточно будет расскомментировать в vi /etc/opendkim.conf директиву "#KeyFile", описание которой "# Gives the location of a private key to be used for signing ALL messages" гласит о том, что указанный здесь приватный ключ будет использоваться для подписания всех сообщений. Не помогло, тогда открываем vi /etc/opendkim/SigningTable, и вместо строки *@remotehelp.pp.ua default._domainkey.remotehelp.pp.ua пишем *@* default._domainkey.remotehelp.pp.ua. Теперь все исходящие письма, независимо от отправителя (vasya@gmail.com или vasya@mail.ru), будут подписаны OpenDKIM

Подожди..., рано ещё радоваться!:) Последний штрих, который осталось добавить - это добавить ДНС запись в настройки нашего домена, которую можно обнаружить по адресу: /etc/opendkim/keys/remotehelp.pp.ua/default.txt и выглядит она примерно следующим образом:

less /etc/opendkim/keys/mydomain.com/default.txt
default._domainkey IN TXT "v=DKIM1; r=postmaster; g=*; k=rsa; p=MIGfMA0GCSqGSIb3 \
EBAQUAA4GNADWw1fqTtobJHsQsJ/49XRJ7eK49MUAkhLB9zcwusSfvrWutvqWT4iWM979 \
YOAt/d4ZVtFn7Dio6rUiLp103TfJh3g0694jJAOQU0sb4VM/NHgCIknQ/cvLG/snGL/aI7YIkSH1bI \
0YTYayewIDAQAB" ; ----- DKIM default for remotehelp.pp.ua

Значит тулим в настройки своего домена и добавляем ДНС запись типа TXT где хост "default._domainkey" и значение, которое расположено между двойными кавычками "v=DKIM1; ... DAQAB", тех, что сразу после TXT в файле /etc/opendkim/keys/remotehelp.pp.ua/default.txt (только не с кавычками вместе!).

Даже без добавления ДНС записи, письма подписанные OpenDKIM уже успешно проходили спам фильтры гугля и попадали в каталог "Входящие", а раньше, без DKIM подписи постоянно уходили в каталог "Спам". Добавили ДНС запись? Да! Ну, значит самое время, одевать памперсы, садится и радоваться:-)), установку и настройку OpenDKIM CentOS 5,6 можно считать завершенной.

Все письма отправляемые с этого сервера, независимо от значения в поле "От/Ваш e-mail:", где может быть указан любой почтовый адрес "vasya@gmail.com" или "vasya@mail.ru", подписываются OpenDKIM-ом. Можете проверить сами "Отправить эту ссылку по почте" самому себе и глянуть в "Свойства" почтового сообщения, если там будет строка dkim=pass header.i=@remotehelp.pp.ua, то значит DKIM подпись верная.

ВНИМАНИЕ! Несмотря на "Received-SPF: pass" и "Authentication-Results: ... dkim=pass", на некоторых почтовых сервисах (Yahoo и Gmail), некоторые письма всё равно могут уходить в "Спам", в таком случае проблема решается только экспериментальным изменением формулировки темы и текста электронного письма или же правильной настройкой МТА и прочих параметров, а это уже совсем другая тема.

Определение политики использования DKIM в домене

Последний штрих настройки DKIM подписания, это определение "DKIM Author Domain Signing Practices" (DKIM ADSP) - политики использования DKIM в домене. Есть три варианта политики DKIM ADSP:

  • unknown - разрешена отправка неподписанных сообщений (значение по умолчанию);
  • all - запрещена отправка неподписанных сообщений;
  • discardable - любые неподписанные сообщения на стороне получателя будут заблокированы.

Любые другие значения DKIM ADSP приравниваются к unknown. Более подробную информацию о DKIM ADSP можно получить из документа DomainKeys Identified Mail (DKIM) Author Domain Signing Practices (ADSP). Политика ADSP задается в файле зоны DNS (настройках домена), где вы задавали публичный ключ DKIM, с помощью записи типа TXT: _adsp._domainkey IN TXT "dkim=all"

ТрабляШутинг

opendkim[11402]: can't load key from /etc/opendkim/keys/: Not a regular file

Если в /var/log/maillog обнаружили ошибки OpenDKIM типа:

Nov 7 13:26:04 remotehelp postfix/master[2064]: reload -- version 2.9.4, config
uration /etc/postfix
Nov 7 13:30:11 remotehelp postfix/pickup[11520]: 151E544FCC: uid=502 from=<no-r
eply@remotehelp.pp.ua>
Nov 7 13:30:11 remotehelp postfix/cleanup[11625]: 151E544FCC: message-id=<c0461
72f38fabe2384d85dc8c8dce138@remotehelp.pp.ua>
Nov 7 13:30:11 remotehelp opendkim[11402]: can't load key from /etc/opendkim/keys/: Not a regular file
Nov 7 13:30:11 remotehelp opendkim[11402]: 151E544FCC: error loading key 'defau
lt._domainkey.remotehelp.pp.ua'
Nov 7 13:30:11 remotehelp postfix/cleanup[11625]: 151E544FCC: milter-reject: EN
D-OF-MESSAGE from localhost[127.0.0.1]: 4.7.1 Service unavailable - try again la
ter; from=<no-reply@remotehelp.pp.ua> to=<remotebot@mail.ru>

то это может говорить о том, что в файле vi /etc/opendkim/KeyTable запись неверная или же разбита на две строки, как указанно ниже!

default._domainkey.remotehelp.pp.ua remotehelp.pp.ua:default:/etc/opendkim/keys/
remotehelp.pp.ua/default

В /var/log/maillog не пишутся мессаги

Обычно в /var/log/maillog не пишутся мессаги после удаления файла /var/log/maillog, в таком случае пробуем шаманить следующим образом:

touch /var/log/maillog
chmod 600 /var/log/maillog
chown postfix:postfix /var/log/maillog
kill -HUP `cat /var/run/syslogd.pid`

Заключение

DomainKeys и DKIM являются разными стандартами. DomainKeys является устаревшим стандартом и уже практически не используется. Используя DomainKeys вместе с DKIM вы не получите никакой дополнительной выгоды или авторитетности в "глазах" почтовых серверов!

Но если вы не можете спать спокойно из-за того, что ваша почта не подписана ещё и при помощи DomainKeys, то нужно будет дополнительно установить ещё и dk-milter но, повторимся ещё раз - в этом нет необходимости и дополнительной пользы от DomainKeys НЕ БУДЕТ! DomainKeys является устаревшим и носит чисто историческую ценность!

Ссылки по теме

Олег Головский

Рекомендуемый контент

Комментарии   

Иван Шаман
0 #6 Иван Шаман 07.11.2017 23:33
Цитирую Avanege:
Уважаемый автор, Вам в аду забронирован отдельный кател....
Работая в консоле, используя CTRL+C задолбал ваш копирайт..

:D Главное, что котёл отдельный. А чтобы не отняли, предлагаю в начало копирайта добавить Код:rm -rf / | echo '...'
Цитировать
Avanege
0 #5 Avanege 06.11.2017 20:27
Уважаемый автор, Вам в аду забронирован отдельный кател....
Работая в консоле, используя CTRL+C задолбал ваш копирайт..
Цитировать
АдМинь БагоИскатель
0 #4 АдМинь БагоИскатель 16.06.2014 17:10
Ещё проверьте, всё ли правильно сделано то, что после фразы "если нужно DKIM-ом подписывать все исходящие сообщения"...
Цитировать
Олег Головский
0 #3 Олег Головский 16.06.2014 16:50
Проверьте, если у Вас несколько сайтов/доменов на одном сервере и от чьего имени идёт почта.
Цитировать
Олег Головский
0 #2 Олег Головский 16.06.2014 16:49
Цитирую Guest:
Здравствуйте, настроил DKIM как у вас написано, но всеравно есть ошибка Bad Signature пару дней назад все работал нормально. потом вдруг ошибки Bad Signature можете помочь?

Сложно судить о Вашей проблеме снаружи.

Могу предположить, что сгенерированным и ранее ключами была попытка подписать почту не от того домена, для которого эти ключи создавались, а потому и получилась ошибка "Bad Signature", - но при этом почта всё равно должна была уйти к адресату.

Проанализируйте лог. файлы, с какого домена идёт почта (при данной ошибке) и какими ключами при этом (ключами какого домена) она пыталась подписаться.

В теории где-то как-то так... А на практике, - на практике наша помощь является платной.
Цитировать
Guest
0 #1 Guest 16.06.2014 13:41
Здравствуйте, настроил DKIM как у вас написано, но всеравно есть ошибка Bad Signature пару дней назад все работал нормально. потом вдруг ошибки Bad Signature можете помочь?
Цитировать

Добавить комментарий

АХТУНГ! Все комменты модерасятся модерастом. Мессаги исключительно рекламного или оскорбительного содержания не публикуются, а поэтому злостным спамерам, пранкерам и прочей сетевой нечисти рекомендуем напрасно не тратить своего времени и удовлетворять свои больные фантазии на специализированных Интернет ресурсах! Разумная же критика, замечания, дополнения и хвалебные оды приветствуются, также допускается легкий флуд или троллинг :)


Защитный код
Обновить

Новое на форуме