server:/# apt-get install opendkim opendkim-tools |
Создадим отдельную папку для OpenDKIM и перенесем файл конфигурации в эту папку. Для совместимости, оставим ссылку на прежнем месте.
|
1
2
3
4
|
server:/# mkdir /etc/opendkim server:/# chown opendkim:opendkim /etc/opendkimserver:/# mv /etc/opendkim.conf /etc/opendkim/opendkim.confserver:/# ln -s /etc/opendkim/opendkim.conf /etc/opendkim.conf |
Отредактируем конфигурацию и добавим необходимые параметры:
PidFile /var/run/opendkim/opendkim.pid
Syslog yes
UserID opendkim:opendkim
Socket inet:8891@localhost
Umask 002
SendReports yes
SoftwareHeader yes
MinimumKeyBits 1024
SyslogSuccess yes
LogWhy yes
X-Header yes
OversignHeaders From
Selector mail
Canonicalization relaxed/relaxed
Mode sv
SubDomains no
KeyTable file:/etc/opendkim/KeyTable
SigningTable file:/etc/opendkim/SigningTable
AutoRestart yes
DNSTimeout 5
ExternalIgnoreList file:/etc/opendkim/TrustedHosts
InternalHosts file:/etc/opendkim/TrustedHosts
#Statistics /var/log/dkim-stats
Создаем необходимые файлы и папки (инвентарь) для нашего почтового сервера, персонально... В дальнейшем, каждого нового клиента будем добавлять аналогичным образом.
|
1
2
|
server:/# mkdir /etc/opendkim/demon.of.byserver:/# chown opendkim:opendkim /etc/opendkim/demon.of.by |
Создадим непосредственно ключи для домена demon.of.by а также сменим владельца ключей на пользователя opendkim:
|
1
2
3
|
server:/# cd /etc/opendkim/demon.of.byserver:/# opendkim-genkey -s mail -d demon.of.byserver:/# chown opendkim:opendkim * |
Обновляем DNS - настраиваем DKIM. Данная часть наверное наиболее трудоёмкая, так как Вы должны понимать как и где изменить DNS-записи для Вашего домена.
|
1
2
3
|
server:/# cat /etc/opendkim/demon.of.by/mail.txtmail._domainkey IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDH5t3M0b3DQEBAQUAA4EWRL+S4/yWauDq6C2srD9UptvXdI40YS0aUywyj2XT1TbeNdrLjGZ764kTUwshuqKToa9pUjwT/TPOx939VA8FWV32bC1hE97dgK3mhFpNurp7K3ZH4sDPTz4Qnlpa8kWZ/iThkTPpNYf5LTwIDAQAB" ; ----- DKIM key mail for demon.of.by |
Отсюда берем содержимое в кавычках и помещаем в DNS запись TXT нашего домена:
|
1
|
mail._domainkey.demon.of.by. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDH5t3M0b3DQEBAQUAA4EWRL+S4/yWauDq6C2srD9UptvXdI40YS0aUywyj2XT1TbeNdrLjGZ764kTUwshuqKToa9pUjwT/TPOx939VA8FWV32bC1hE97dgK3mhFpNurp7K3ZH4sDPTz4Qnlpa8kWZ/iThkTPpNYf5LTwIDAQAB" |
Дополнительно прописываем запись для серверов, у которых не настроен DKIM (для всех клиентов данная директива – одинаковая)
|
1
|
_adsp._domainkey.demon.of.by. IN TXT "dkim=unknown" |
Примечание: В данном примере Вы должны заменить домен demon.of.by на Ваш собственный, например example.com
Конфигурируем службу OpenDKIM для обслуживания домена demon.of.by. Добавляем новый ключ в файл с ключами:
|
1
2
3
4
5
6
7
|
server:/# vim /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.mail._domainkey.demon.of.by demon.of.by:mail:/etc/opendkim/demon.of.by/mail.private |
Указываем службе каким ключем подписывать почу для какого домена
|
1
2
3
|
server:/# vim /etc/opendkim/SigningTabledemon.of.by mail._domainkey.demon.of.by |
Указываем службе наши доверенные хосты
|
1
2
3
4
5
6
7
8
|
server:/# vim /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.1demon.of.by |
Не забудем указать на каком порту должен слушать наш OpenDKIM. Отредактируем /etc/default/opendkim:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
server:/# vim /etc/default/opendkim# Command-line options specified here will override the contents of# /etc/dkim-filter.conf. See dkim-filter(8) for a complete list of options.#DAEMON_OPTS=""## Uncomment to specify an alternate socket# Note that setting this will override any Socket value in dkim-filter.conf#SOCKET="local:/var/run/dkim-filter/dkim-filter.sock" # Debian default#SOCKET="inet:54321" # listen on all interfaces on port 54321#SOCKET="inet:12345@192.0.2.1" # listen on 192.0.2.1 on port 12345SOCKET="inet:8891@localhost" # By default - listen on loopback on port 8891 |
В нашем случае это порт 8891.
Перезапускаем OpenDKIM
|
1
2
3
|
server:/# /etc/init.d/opendkim restartMar 3 15:01:26 ip-10-71-153-106 opendkim[8303]: OpenDKIM Filter v2.6.8 starting (args: -x /etc/opendkim.conf -u opendkim -P /var/run/opendkim/opendkim.pid -p inet:8891@localhost) |
Финальный аккорд, добавляем OpenDKIM в Postfix. Для этого отредактируем /etc/postfix/main.cf и добавим следующий строки:
|
1
2
3
4
5
6
7
|
server:/# vim /etc/postfix/main.cf# DKIMmilter_default_action = acceptmilter_protocol = 2smtpd_milters = inet:localhost:8891non_smtpd_milters = inet:localhost:8891 |
Примечание: Если Вы используете несколько обработчиков (например Postfix/DomainKeys), Вы можете добавить несколько одновременно, как показано ниже:
1234milter_default_action = acceptmilter_protocol = 2smtpd_milters = inet:localhost:8891,inet:localhost:8892non_smtpd_milters = inet:localhost:8891,inet:localhost:8892
Перезапускаем Postfix
|
1
|
server:/# /etc/init.d/postfix restart |
Отсылаем письма-пустышки на адреса:
- check-auth@verifier.port25.com
- sa-test@sendmail.net
- autorespond+dkim@dk.elandsys.com
Внимательно анализируем ответы.
