Dkim + postfix. настройка dkim + postfix для freebsd, ubuntu и centos. защита почты с помощью dkim

настройка DKIM для Postfix

Более подробно вы можете прочести на википедии wiki: DomainKeys Identified Mail. Установим пакеты opendkim и opendkim-tools:

server:/# apt-get install opendkim opendkim-tools

Создадим отдельную папку для OpenDKIM и перенесем файл конфигурации в эту папку. Для совместимости, оставим ссылку на прежнем месте.

server:/# mkdir /etc/opendkim server:/# chown opendkim:opendkim /etc/opendkim server:/# mv /etc/opendkim.conf /etc/opendkim/opendkim.conf server:/# ln -s /etc/opendkim/opendkim.conf /etc/opendkim.conf

Отредактируем конфигурацию и добавим необходимые параметры:

server:/# vim /etc/opendkim/opendkim.conf SyslogSuccess yes LogWhy yes Selector mail Canonicalization relaxed/relaxed Mode sv SubDomains no KeyTable file:/etc/opendkim/KeyTable SigningTable file:/etc/opendkim/SigningTable AutoRestart yes DNSTimeout 5 Socket inet:8891@localhost #Socket local:/var/run/opendkim/opendkim.sock ExternalIgnoreList file:/etc/opendkim/TrustedHosts InternalHosts file:/etc/opendkim/TrustedHosts Statistics /var/log/dkim-stats

Создаем необходимые файлы и папки (инвентарь) для нашего почтового сервера, персонально… В дальнейшем, каждого нового клиента будем добавлять аналогичным образом.

server:/# mkdir /etc/opendkim/demon.of.by server:/# chown opendkim:opendkim /etc/opendkim/demon.of.by

Создадим непосредственно ключи для домена demon.of.by а также сменим владельца ключей на пользователя opendkim:

server:/# cd /etc/opendkim/demon.of.by server:/# opendkim-genkey -s mail -d demon.of.by server:/# chown opendkim:opendkim *

Обновляем DNS — настраиваем DKIM. Данная часть наверное наиболее трудоёмкая, так как Вы должны понимать как и где изменить DNS-записи для Вашего домена.

server:/# cat /etc/opendkim/demon.of.by/mail.txt mail._domainkey IN TXT ( «v=DKIM1; h=sha256; k=rsa; » «p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5yWaifpAyB4cX5SJMpxJeWQJ2UzmoCkFVg0y4jQTE2g1m75vP6Qkd8+rolJAVhxxklPAgB9rYgKv1gGsVR6cnOvt0/m89S6dh8VcnvoXVBBe8fIIGHEbQ/VvHU60O/i1krT9HR6zZ3EV26m27ZRS/zhkFbTOnnF6Gjj3dFyUEDsC9vBli2lmR6DiGxz9LsfxrszcqruJCV/+iF» «TpyIR1LY68MpkXZM/4SBJID+++8gvsNhUk1RFDU8sJgQ0Zei0mUbyyYwc3JASRVvEvl366C3VB1So5IWMsdroFrcq0ugThNKKgByyuG/21epp0fB+GMA5ksepme5Z0W99llpIv8QIDAQAB» ) ; —— DKIM key mail for demon.of.by

Отсюда берем содержимое в кавычках, объединяем его в одну строчку и помещаем в DNS запись TXT нашего домена:

mail._domainkey.demon.of.by. IN TXT «v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5yWaifpAyB4cX5SJMpxJeWQJ2UzmoCkFVg0y4jQTE2g1m75vP6Qkd8+rolJAVhxxklPAgB9rYgKv1gGsVR6cnOvt0/m89S6dh8VcnvoXVBBe8fIIGHEbQ/VvHU60O/i1krT9HR6zZ3EV26m27ZRS/zhkFbTOnnF6Gjj3dFyUEDsC9vBli2lmR6DiGxz9LsfxrszcqruJCV/+iFTpyIR1LY68MpkXZM/4SBJID+++8gvsNhUk1RFDU8sJgQ0Zei0mUbyyYwc3JASRVvEvl366C3VB1So5IWMsdroFrcq0ugThNKKgByyuG/21epp0fB+GMA5ksepme5Z0W99llpIv8QIDAQAB»

Дополнительно прописываем запись для серверов, у которых не настроен DKIM (для всех клиентов данная директива – одинаковая)

_adsp._domainkey.demon.of.by. IN TXT «dkim=unknown»

Конфигурируем службу OpenDKIM для обслуживания домена demon.of.by. Добавляем новый ключ в файл с ключами:

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

Указываем службе каким ключем подписывать почу для какого домена

server:/# vim /etc/opendkim/SigningTable demon.of.by mail._domainkey.demon.of.by

Указываем службе наши доверенные хосты

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.1 demon.of.by

Не забудем указать на каком порту должен слушать наш OpenDKIM в конфигурационном файле или в /etc/default/opendkim:

server:/# vim /etc/default/opendkim SOCKET=»inet:8891@localhost» # By default — listen on loopback on port 8891

В нашем случае это порт 8891.

Дабы не валилось «/var/log/dkim-stats: fopen(): Permission denied» — создадим заблаговременно фаил статистики и выставим ему правильные права

server:/# touch /var/log/dkim-stats && chown opendkim:opendkim /var/log/dkim-stats

Перезапускаем OpenDKIM

server:/# /etc/init.d/opendkim restart Mar 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 и добавим следующий строки:

server:/# vim /etc/postfix/main.cf # DKIM milter_default_action = accept milter_protocol = 2 smtpd_milters = inet:localhost:8891 non_smtpd_milters = inet:localhost:8891

Перезапускаем Postfix

server:/# /etc/init.d/postfix restart

Отсылаем письма-пустышки на адреса:

  • check-auth@verifier.port25.com
  • autorespond+dkim@dk.elandsys.com

Внимательно анализируем ответы.

Источник: https://demon.of.by/blog/linux-admin/how-to-configure-opendkim-postfix-debian/

Подписываем и проверяем почту при помощи DomainKeys и DKIM в Postfix

В данной статье я расскажу о том, как настроить DK/DKIM для совместной работы с Postfix в Debian/Ubuntu Linux.

Предполагается, что Postfix уже неастроен и работает; если это не так, то очень рекомендую к прочтению этот замечательный мануал.

Прежде всего нужно установить dk-filter и dkim-filter:

sudo apt-get install dk-filter dkim-filter

Обращаю внимание, что с большой вероятностью при установке пакета dkim-filter dpkg выдаст ошибку о невозможности запуска демона dkim-filter. Это нормально, ибо демон нужно сначала настроить.

Начнём с генерации ключей. Для этого воспользуемся утилитой dkim-genkey:

dkim-genkey -d example.com -s mail

Результатом работы утилиты будут два файла: mail.txt (открытый ключ) и mail.private (закрытый ключ).

В файле mail.txt будет что-то вроде этого:

mail._domainkey IN TXT «v=DKIM1; g=*; k=rsa; p=MIG…AQAB»

Эту запись нужно поместить в файл зоны почтового сервера и перезапустить сервер DNS. Также рекомендую добавить в файл зоны информацию об Author Signing Practises (ASP) — практики подписывания сообщений.

Переходим к mail.private. Лично я храню “почтовые ключи” в каталоге /etc/mail:

sudo mkdir -p /etc/mail/example.com sudo mv -f mail.private /etc/mail/example.com/mail

При необходимости генерацию ключей нужно произвести для других доменов.

Теперь, когда у нас есть открытый и закрытый ключи, можно с чистой совестью приступать к конфигурированию dkim-filter. Его файл конфигурации находится в /etc/dkim-filter.conf

sudo nano /etc/dkim-filter.conf

Я использую следующую конфигурацию:

# Запись сообщений в syslog Syslog yes# Всегда добавлять заголовок Authentication-Results AlwaysAddARHeader yes # Файл с перечнем доменов, для которых осуществляется # подписывание исходящих сообщений Domain /etc/dkim.domains # Файл с перечнем закрытых ключей KeyList /etc/dkim.keylist # Не перезапускаться при ошибках AutoRestart no # Режим работы: подпись и проверка Mode sv # Подписывать сообщения из поддоменов # доменов, указанных в Domains SubDomains yes # Отклонять письма с неверной подписью On-BadSignature reject

Файл /etc/dkim.domains имеет следующий вид:

example.com example.net # По домену на строку

Файл /etc/dkim.keylist имеет следующий вид:

# Отправитель:Подписывающий домен:Путь к закрытому ключу *example.com:example.com:/etc/mail/example.com/mail *example.net:example.net:/etc/mail/example.net/mail

Обращаю внимание, что имя файла ключа (mail) должно совпадать с селектором ключа в TXT-записи DKIM домена (mail._domainkey).

После этого запускаем dkim-filter:

/etc/init.d/dkim-filter start

По умолчанию он будет прослушивать порт 8891 на localhost.

Теперь переходим к dk-filter. Будем использовать те же самые ключи (а смысл генерировать новые?).

Начнём с редактирования файла зоны: в него нужно добавить строку (политику подписи сообщений):

_domainkey IN TXT «o=~»

или

_domainkey IN TXT «o=-«

В первом варианте мы сообщаем, что почтовые сообщения могут быть подписаны (а могут и не быть подписаны); во втором — что все сообщения, исходящие из данного домена, должны быть подписаны.

После изменения файла зоны (не забываем обновить serial зоны) DNS-сервер необходимо перезапустить.

Переходим к файлу /etc/default/dk-filter:

sudo nano /etc/default/dk-filter

У меня этот файл имеет следующий вид:

DAEMON_OPTS=»-l» DAEMON_OPTS=»$DAEMON_OPTS -k -d /etc/dkim.domains -s /etc/dk.keylist -D -h -S mail» SOCKET=»inet:8892@localhost»

А файл /etc/dk.keylist выглядит так:

# Подписывающий домен:Путь к закрытому ключу example.com:/etc/mail/example.com/mail example.net:/etc/mail/example.net/mail

Перезапускаем dk-filter:

/etc/init.d/dk-filter restart

Наконец, переходим к конфигурации Postfix. Дописываем в /etc/postfix/main.cf следующие строки:

milter_default_action = accept milter_protocol = 2 smtpd_milters = inet:localhost:8891, inet:localhost:8892 non_smtpd_milters = inet:localhost:8891, inet:localhost:8892

После чего перезагружаем Postfix:

/etc/init.d/postfix reload

Перед тестированием DK/DKIM, возможно, придётся подождать окончания распространения изменений в DNS-записях.

Самый простой способ тестирования — отправка произвольного сообщения на адрес autorespond+dk@dk.elandsys.com (для тестирования DomainKeys) или autorespond+dkim@dk.elandsys.com (для тестирования DKIM).

Пример успешного прохождения проверок DK/DKIM:

Authentication-Results: ns1.qubic.net; sender-id=pass header.from=vladimir@internetnetworkmarketer.org.ua; spf=pass smtp.mfrom=vladimir@internetnetworkmarketer.org.ua Authentication-Results: ns1.qubic.net; domainkeys=pass header.from=vladimir@internetnetworkmarketer.org.ua Authentication-Results: ns1.qubic.net; dkim=pass (1024-bit key) header.i=@internetnetworkmarketer.org.ua; dkim-adsp=none

В примере выше я поменял адреса (на горе спамерам); те, кто рискнёт отправить письмо на vladimir@internetnetworkmarketer.org.ua, рискуют попасть в чёрный список UCEPROTECT Level 1

Разное

Клубы являются местом, где приятно провести время. Первые клубы Москвы, возникшие в начале 90-х годов – “Арлекино”, “Метелица” и “Манхэттен-Экспресс”. Они, как правило, имели стандартную программу – платный вход, выпивка, закуска, показ мод, выступление отечественных и иногда зарубежных исполнителей.

Источник: http://system-administrators.info/?p=3190

Installing Postfix with DKIM and SPF to Send Outbound Email on Ubuntu 16.04

ubuntu ~ $ sudo apt install mailutils postfix

Change the line that reads inet_interfaces = all to inet_interfaces = loopback-only

Step 3 — Verify hostname is Set Correctly for Postfix

ubuntu ~ $ postconf -d | grep 'myhostname ='
myhostname = example.

com

If Postfix's myhostname variable is not set with the correct host, make sure the hostname is set correctly in both /etc/hostname and /etc/hosts.

If the hostname is already set correctly in those two files but it hasn't taken effect, use the following command to adjust the hostname without rebooting:

ubuntu ~ $ sudo hostname example.com

Step 4 — Send a Test Email

ubuntu ~ $ echo «This is the test email body.» | mail -s «Test Subject Line» jon@aol.com

After sending the test email, check your inbox for delivery. If you didn't receive the test email, check /var/log/mail.log for issues. In my case I came across the following error which was preventing the oubound test email from being sent:

postfix/master[4362]: fatal: bind 127.0.0.1 port 25: Address already in use

I encountered some instructions that recommended attempting to kill the sendmail process which was hogging port 25 with the following command, but when I attempted it I received output that indicated no matching process was found:

ubuntu ~ $ sudo killall sendmail
sendmail: no process found

In this askubuntu.com thread I found a suggestion that worked in my case:

ubuntu ~ $ sudo killall sendmail-mta
ubuntu ~ $ sudo service postfix restart

At this point I sent another test email and recieved it successfully.

Step 5 — Prevent Backwards Compatibility Warnings

If you encounter the following (or similar) warnings in /var/log/mail.log:

postfix[21460]: To disable backwards compatibility use «postconf compatibility_level=2» and «postfix reload»

Check here: http://www.postfix.org/COMPATIBILITY_README.html to determine if you require backwards compatibility, and if not execute the following two commands (the compatibility_level value should match what's recommended in the log warning entry above):

ubuntu ~ $ sudo postconf compatibility_level=2
ubuntu ~ $ sudo service postfix reload

Setting Up DKIM

Step 1 — Download and Install opendkim and opendkim-tools

ubuntu ~ $ sudo apt-get install opendkim opendkim-tools

Step 2 — Setup opendkim Configuration Files

Edit the /etc/opendkim.conf file and add the following lines to the end of the file (see https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy for an explanation of the parameters):

AutoRestart Yes
AutoRestartRate 10/1h
UMask 002
Syslog yes
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
PidFile /var/run/opendkim/opendkim.pid
SignatureAlgorithm rsa-sha256 UserID opendkim:opendkim Socket inet:12301@localhost

Comment out the default SOCKET parameter defined in /etc/default/opendkim and replace it with the following:

Читайте также:  На флешке не видно файлов, пропали файлы с флешки

SOCKET=»inet:12301@localhost»

Add the following lines to the bottom of the /etc/postfix/main.cf config file:

milter_protocol = 2
milter_default_action = accept smtpd_milters = inet:localhost:12301
non_smtpd_milters = inet:localhost:12301

Create the following directories:

ubuntu ~ $ sudo mkdir /etc/opendkim && sudo mkdir /etc/opendkim/keys

Create a file called /etc/opendkim/TrustedHosts with the following lines:

127.0.0.1
localhost
192.168.0.1/24 *.example.com

Create a file called /etc/opendkim/KeyTable with the following line:

mail._domainkey.example.com example.com:mail:/etc/opendkim/keys/example.com/mail.private

Create a file called /etc/opendkim/SigningTable with the following line:

*@example.com mail._domainkey.example.com

Step 3 — Create the DKIM Keys

Enter the /etc/opendkim/keys/ directory and create a directory for your domain:

ubuntu /etc/opendkim/keys $ sudo mkdir example.com && cd example.com

Within this directory run the following command:

ubuntu /etc/opendkim/keys/example.com $ sudo opendkim-genkey -s mail -d example.com

Update the owner of the mail.private file:

ubuntu /etc/opendkim/keys/example.com $ sudo chown opendkim:opendkim mail.private

Step 4 — Add DKIM Record to DNS

Add the contents of the mail.txt file as a TXT record in your domain's DNS settings, and then restart postfix and opendkim:

ubuntu /etc/opendkim/keys/example.com $ sudo service postfix restart
ubuntu /etc/opendkim/keys/example.com $ sudo service opendkim restart

Send a test email and check the headers to see if DKIM is passing.

Step 5 — Test the DKIM Record

ubuntu /etc/opendkim $ opendkim-testkey -d example.com -s mail -vvv
opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: checking key 'mail._domainkey.example.com'
opendkim-testkey: key not secure
opendkim-testkey: key OK

Setting Up SPF

Add an SPF TXT record to your domain's DNS that authorizes the host we've just configured to send email on behalf of the primary domain. Ex.:

v=spf1 include:example.com ~all

Miscellaneous

Inspect Postfix Mail Queue:

sudo postqueue -p

Delete Deferred Messages from the Mail Queue:

sudo postsuper -d ALL deferred

Helpful Links

Источник: https://blog.whabash.com/posts/send-outbound-email-postfix-dkim-spf-ubuntu-16-04

How To Install and Configure DKIM with Postfix on Debian Wheezy

The frustration of getting falsely flagged as a spammer is not strange to most of the mail server admins. By excluding the possibility of a compromised server, a false flag is usually caused by one of the following:

  • the server is an open mail relay
  • the sender's or server's IP address is blacklisted
  • the server does not have a Fully Qualified Domain Name (FQDN) and a PTR record
  • the Sender Policy Framework (SPF) DNS record is missing or it is misconfigured
  • the DomainKeys Identified Mail (DKIM) implementation is missing or it's not properly set up

These are some of the basic properties that are being checked by the majority of proprietary and open source spam filters (including SpamAssassin). Passing these tests is extremely important for a well configured mail server.

This tutorial will focus on installing and configuring OpenDKIM]: an open source implementation of the DKIM sender authentication system.

It is assumed that the reader knows how to access the server over SSH, Postfix and Dovecot is already installed and configured (tutorial), the host name and the FQDN are set up (tutorial, tutorial) and the SPF record is in place (tutorial).

About DKIM

DKIM is an Internet Standard that enables a person or organisation to associate a domain name with an email message. This, in effect, serves as a method of claiming responsibility for a message. At its core, DKIM is powered by asymmetric cryptography.

The sender's Mail Transfer Agent (MTA) signs every outgoing message with a private key.

The recipient retrieves the public key from the sender's DNS records and verifies if the message body and some of the header fields were not altered since the message signing took place.

Install OpenDKIM

Before starting the installation, a system update is recommended:

sudo apt-get update
sudo apt-get dist-upgrade

Install OpenDKIM and it's dependencies:

sudo apt-get install opendkim opendkim-tools

Additional packages will be listed as dependencies, type yes and press Enter to continue.

Configure OpenDKIM

A couple of files must be created and edited in order to configure OpenDKIM.

Nano will be used as an editor because it's installed by default on DigitalOcean droplets and it's simple to operate:

  • navigate with the arrow keys
  • exit without saving changes: press CTRL + X and then N
  • exit and save changes: press CTRL + X and then Y, and finally press Enter

Important: replace every instance of example.com with your own domain in all commands and configuration files. Don't forget to save your files after editing.

Let's start with the main configuration file:

sudo nano /etc/opendkim.conf

Append the following lines to the end of the conf file (each parameter is explained below). Optionally, you can choose a custom port number for the Socket. Make sure that it's not used by a different application.

AutoRestart Yes
AutoRestartRate 10/1h
UMask 002
Syslog yes
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
PidFile /var/run/opendkim/opendkim.pid
SignatureAlgorithm rsa-sha256 UserID opendkim:opendkim Socket inet:12301@localhost

  • AutoRestart: auto restart the filter on failures
  • AutoRestartRate: specifies the filter's maximum restart rate, if restarts begin to happen faster than this rate, the filter will terminate; 10/1h — 10 restarts/hour are allowed at most
  • UMask: gives all access permissions to the user group defined by UserID and allows other users to read and execute files, in this case it will allow the creation and modification of a Pid file.
  • Syslog, SyslogSuccess, *LogWhy: these parameters enable detailed logging via calls to syslog
  • Canonicalization: defines the canonicalization methods used at message signing, the simple method allows almost no modification while the relaxed one tolerates minor changes such aswhitespace replacement; relaxed/simple — the message header will be processed with the relaxed algorithm and the body with the simple one
  • ExternalIgnoreList: specifies the external hosts that can send mail through the server as one of the signing domains without credentials
  • InternalHosts: defines a list of internal hosts whose mail should not be verified but signed instead
  • KeyTable: maps key names to signing keys
  • SigningTable

Источник: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy

DKIM в postfix 2.8 Freebsd 8.1 при помощи dkim-milter

Технология DomainKeys Identified Mail (DKIM) объединяет несколько существующих методов антифишинга и антиспама с целью повышения качества классификации и идентификации легитимной электронной почты.

Вместо традиционного IP-адреса, для определения отправителя сообщения DKIM добавляет в него цифровую подпись, связанную с именем домена организации.

Подпись автоматически проверяется на стороне получателя, после чего, для определения репутации отправителя, применяются «белые списки» и «чёрные списки».

1. Устновка dkim-milter

В файл

/etc/make.conf

добавить срочку:

WITH_POSTFIX=yes

Устанавливаем

cd /usr/ports/mail/dkim-milter make install

2. Настрайка dkim-milter

cp /usr/local/etc/mail/dkim-filter.conf.sample /usr/local/etc/mail/dkim-filter.conf

открываем файл

/usr/local/etc/mail/dkim-filter.conf

Раскоментируем там строку

KeyList        /var/db/dkim/keylist

Пропишем порт для соединения:

Socket            inet:10026@localhost

Генерируем ключи для домена, вместо domain.tld нужно подставить реальный домен, для каждого домена необходимо генерировать свою пару ключей

mkdir -p /var/db/dkim/keys/domain.tld cd /var/db/dkim/keys/domain.tld dkim-genkey -r -d domain.tld mv default.private default

Теперь необходимо добавить сгенерированые ключи в файл ключей «/var/db/dkim/keylist», создадим его

touch /var/db/dkim/keylist

Добавляем в него

*@domain.tld:domain.tld:/var/db/dkim/keys/domain.tld/default

Этой строкой мы устанавливаем наш ключ на все поддомены. Вобще ключей может быть несколько для одного домена (иерархия) или свой для каждого поддомена.

Меняем пользователя и права доступа к папке /var/db/dkim/

chmod -R 600 /var/db/dkim/ chown -R mailnull:mailnull /var/db/dkim

3. Настройка Postfix

Открываем «/usr/local/etc/postfix/main.cf», добавляем туда:

smtpd_milters = inet:localhost:10026 non_smtpd_milters = inet:localhost:10026 milter_protocol = 2 milter_default_action = accept

4. Запуск

Активируем milter-dkim в /etc/rc.conf

milterdkim_enable=»YES»

Запускаем milter-dkim

/usr/local/etc/rc.d/milter-dkim start postfix reload

5. Добавление DNS записей

Без записи в ДНС вся система работать не будет, пре-генерированый файл который необходимо вставить в файл настройки зоны named лежит /var/db/dkim/keys/domain.tld/default.txt

но как показала практика в конце строки все нужно удалить иначе named не воспринимает эту запись правильно.

Обновляем зону

rndc reload domain.tld

Должно работать.

Основано на http://www.unibia.com/unibianet/freebsd/how-setup-domainkeys-identified-mail-dkim-postfix-and-freebsd

Источник: https://www.klipach.com/postfix-freebsd-milter-dkim/

Postfix отправляем письма с разных ip и подписываем их DKIM

Не попасть в спам при рассылке почты, очень важный аспект для различных интернет магазинов или сайтов.
Допустим у нас на сервере есть некое множество сайтов, и мы хотим что бы каждый сайт мог отправлять письма с определенного Ip адреса, и это к счастью возможно, и очень лего реализуемо средствами postfix 2.7+.

Найдя решение поставленой задачи в гугле, у меня возникла следующая проблема, в centos 6.5, последняя версия postfix 2.6.6, а нужна версия не ниже 2.7. Оставалось лишь, компилировать самому, или использовать сторонний репозиторий, я конечно выбрал второе. Будем устанавливать версию 2.11, создадим файл

/etc/yum.repos.

d/postfix.repo:

[postfixrepo]
name=EL-$releasever Postfix repo
baseurl=http://repos.oostergo.net/$releasever/postfix-2.11
enabled=1
gpgcheck=1
Добавим ключ командой su -c 'rpm —import http://repos.oostergo.net/RPM-GPG-KEY'И обновим postfix командой, yum upgrade postfix должно все получится. Теперь приступим к настройке.

в конфиге /etc/postfix/master.cf добавляем следующее:

group1 unix — — n — 10 smtp -o smtp_bind_address=10.0.0.2
group2 unix — — n — 10 smtp -o smtp_bind_address=10.0.0.3
в конфиге /etc/postfix/main.cf добавляем строку
sender_dependent_default_transport_maps = hash:/etc/postfix/sender_transport
В файле sender_transport должно быть указано какой домен к какой группе принадлежит
@domain1.local group1
@domain2.local group1
@domain3.local group2
@domain4.local group2
После любого изменения файла необходимо выполнить команду postmap /etc/postfix/sender_transport, появится файл sender_transport.db, без него ничего работать не будет, он содержит в себе таблицы поиска(хэш).

Ну и в итоге перечитываеми конфиг/перезапускаем postfix /etc/init.d/postfix reload или /etc/init.d/postfix restart

Помните, что при отправке письма, домен отправителя должен быть такой же как в sender_transport, в конфиге apache это решается строкой в директиве VirtlualHost

php_admin_value sendmail_path «/usr/sbin/sendmail -t -i -f info@domain1.local»
Ну а теперь, что б еще круче сделать наш почтовик, давайте настроим DKIM, в интернете куча статей про это.
Установим opendkim, yum install opendkim.
Подредактируем конфиг /etc/opendkim.conf:
PidFile /var/run/opendkim/opendkim.pid
#режим работы, только подпись
Mode s
#логгирование
Syslog yes
SyslogSuccess yes
LogWhy yes
#Пользователь
UserID opendkim:opendkim
#Указываем порт на котором слушать
Socket inet:8891@localhost
Umask 002
SendReports yes
SoftwareHeader yes
Canonicalization relaxed/relaxed
Selector default
MinimumKeyBits 1024
#Таблица ключей
KeyTable refile:/etc/opendkim/KeyTable
#Таблица подписей
SigningTable refile:/etc/opendkim/SigningTable
#Игнор лист
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
#Таблица внутренних хостов
InternalHosts refile:/etc/opendkim/TrustedHosts
OversignHeaders From
Далее добавим в конфиг постфикса /etc/postfix/main.cf следующее:
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
Так теперь осталось создать ключ для домена и прописать открытый ключ в DNS.
Для этого есть специальная команда opendkim-genkey -D /etc/opendkim/keys/ -d domain1.local -s mail после выполнения данной команды в каталоге /etc/opendkim/keys/domain1.local/ появятся два файла mail.private(закрытый ключ) и mail.txt(открытый ключ).
Откроем mail.txt его содержимое примерное такое
mail._domainkey IN TXT ( «v=DKIM1; k=rsa; » «p=MIGfAA0GGAqGSIb3DQEBAQUAA4GNADCBiQKBgQCx4VRXEHfL+XJ8PB3c+TIn9s/RAc+8FLxBt3zp4+z1q2Cgl0bzncZNr9JI1CbM4dblUy/ovS8iHUg+QDMMUMoyBUTsscGqV9VRCODcxjDc5hGyEx6av3hT3RXkbm4PTww3Kapn5rtg2cFZQi4hL5kx7m72jWYmU0B18ErwwIXYtQIDAQAB» ) ; —— DKIM key mail for domain1.local
Теперь откроем управление DNS нашего домена, и добавим TXT запись с именем mail._domainkey и значением:
v=DKIM1; k=rsa; p=MIGfAA0GGAqGSIb3DQEBAQUAA4GNADCBiQKBgQCx4VRXEHfL+XJ8PB3c+TIn9s/RAc+8FLxBt3zp4+z1q2Cgl0bzncZNr9JI1CbM4dblUy/ovS8iHUg+QDMMUMoyBUTsscGqV9VRCODcxjDc5hGyEx6av3hT3RXkbm4PTww3Kapn5rtg2cFZQi4hL5kx7m72jWYmU0B18ErwwIXYtQIDAQAB

Читайте также:  Баннер на рабочем столе как удалить (убрать) без смс

С DNS покончено, осталось прописать в таблицы opendkim наш домен, для этого открываем /etc/opendkim/KeyTable и добавляем строчку:

mail._domainkey.domain1.local domain1.local:mail:/etc/opendkim/keys/domain1.local/mail.private

В файле подписей /etc/opendkim/SigningTable, укажем для писем домена или адресата, ключ

*@domain1.local mail._domainkey.domain1.local
После этих манипуляций можно запустить opendkim и перечитать конфиг postfix'a /etc/init.d/opendkim start && /etc/init.d/postfix reloadОтправляем письмо на почтовый ящик яндекса, и если все хорошо мы должны увидеть зеленую галочку напротив адреса, после этого почтовые службы будут более благосклонны к вашим письмам, но так же не забывайте про SPF и DMARC.
В логах /var/log/maillog должна быть следующая строка, уведомляющая о успешной подписи письма
opendkim[23742]: 30335EE03F2: DKIM-Signature field added (s=mail, d=domain1.local)
Держитесь подальше от спама.

P.S. Сорь что статейка про centos, но в arch'e все примерно так же, единственное запуск и перезапуск служб через systemd, хотя и в centos 7, systemd имеет место быть.

Источник: https://clsv.ru/linux/postfix_otpravlyaem_pisma_s_raznyix_ip_i_podpisyivaem_ix_dkim_55

Настройка DKIM (DomainKeys) для Ubuntu, Postfix и Mailman Ubuntu Linux

Я постараюсь вернуться и отформатировать это лучше. Но поскольку мне было предложено опубликовать свой ответ, я хотел бы опубликовать его сейчас, а не ждать, пока у меня не будет времени на его правильное форматирование. Из-за нехватки времени я завернул весь свой ответ в блоке. Я надеюсь, что это решение будет полезно.

Это мои ссылки:

и Википедия имеет хорошую запись по этому вопросу

Как минимум вам понадобится:

  • Корневой доступ к вашему почтовому серверу
  • Доступ к обновлению записей DNS для вашего домена

Установите opendkim из репозиториев:

# sudo apt-get install opendkim opendkim-tools

Вы должны решить, какой «селектор» вы хотите использовать. Селектор – это по сути слово для описания ключа, который вы хотите использовать.

Здесь я собираюсь использовать селектор 201205, поскольку ключ стал действительным в мае 2012 года (хитрый, а?). Я даю два примера для разнообразия, что, мы надеемся, добавит ясности.

Вам нужно только создать ОДИН ключ. Тем не менее, я даю оба примера, чтобы вы могли их сравнить.

  • 201205 (1-й ключ)
  • my_selector (второй ключ)

Мой домен будет example.com , но я буду использовать поддомен для моего второго примера:

  • example.com (1-й ключ)
  • mail.example.com (второй ключ)

Я решил работать в следующем каталоге:

# mkdir /etc/opendkim/ # cd /etc/opendkim

Создайте ключи в текущем каталоге, используя выбранный вами селектор и домен.

# opendkim-genkey -s 201205 -d example.com

Возможно, вам может потребоваться изменить право собственности. См. Подробности в моем примере для второго ключа ниже, для чего должно быть владение и разрешения.

Сначала вы должны проверить, есть opendkim пользователь opendkim (ваши идентификаторы пользователя / группы могут отличаться):

# grep opendkim /etc/passwd opendkim:x:108:117::/var/run/opendkim:/bin/false

И вам, вероятно, нужно это сделать:

# chmod 700 /var/run/opendkim

ПРИМЕЧАНИЕ. Следующие две команды НЕ нужны на Ubuntu 12.04. Но если команда выше не показала, что пользователь opendkim был настроен правильно, сделайте это так же:

# useradd -r -g opendkim -G mail -s /sbin/nologin -d /var/run/opendkim -c «OpenDKIM» opendkim # chown opendkim:opendkim 201205.private # cat 201205.private ——BEGIN RSA PRIVATE KEY—— ABCCXQ…[long string]…SdQaZw9 ——END RSA PRIVATE KEY——

Теперь проверьте открытый ключ и обратите внимание, что есть ошибка (в openDKIM 2.5.2 на Ubuntu 12.04)! Где содержится ;=rsa; , он должен содержать ;k=rsa; , k отсутствует. Пожалуйста, вставьте его.

# cat 201205.txt 201205._domainkey IN TXT «v=DKIM1;=rsa; p=WIGfM..[snip]..QIDIAB» ; —— DKIM 201205 for example.com

После исправления он будет выглядеть следующим образом:

201205._domainkey IN TXT «v=DKIM1;k=rsa; p=WIGfM..[snip]..QIDIAB» ; —— DKIM 201205 for example.com

Кроме того, вам, вероятно, нужно избегать таких точек с запятой. Если вы не хотите окончательный комментарий, просто удалите его. Также обратите внимание, что вы должны добавить флаг t = y, чтобы указать на принимающие серверы, которые вы тестируете DKIM, но не активно их используете. У вас останется жизнеспособная запись ресурсов:

201205._domainkey IN TXT «v=DKIM1;k=rsa;t=y;p=WIGfM..[snip]..QIDIAB»

Вы должны опубликовать содержимое указанного открытого ключа на своем авторитетном DNS-сервере. Я рекомендую использовать запись TXT. Кажется, есть несколько разногласий относительно того, следует ли использовать запись SPF или оба типа. После небольшого чтения я решил использовать только тип записи TXT, хотя я не думаю, что это последнее слово в этой теме.

Вы должны использовать короткий TTL (время для жизни), чтобы вы могли изменить ключ, не ожидая, когда он будет распространяться через DNS. Я использовал 180 секунд.

Второй пример создания пары ключей для меня был немного сложнее. Я опишу, что я сделал. Первый элемент заключается в том, что я использовал значение домена «example.com», хотя ключ будет использоваться для «mail.example.com». Я пришел к этому через пробную версию и ошибку. Он работает, но использование «mail.example.

com» не работает. К сожалению, я не знаю причин этого. Это действительно единственное различие, с которым я столкнулся, но это вызывало беспокойство, и я чувствовал, что должен документировать свои опыты с использованием субдоменов. Ни один из других учебников начального уровня, которые я нашел, не сделал этого.

Создайте второй ключ:

opendkim-genkey -s my_selector -d example.com

проверьте права собственности и разрешения закрытого ключа, как указано выше. Вот что они должны выглядеть:

# ls -la /etc/opendkim -rw——- 1 opendkim opendkim 891 May 10 07:44 my_selector.private

После публикации записи DNS проверьте ее с помощью dig . Он должен точно вернуть то, что вы указали в записи ресурса (RR).

$ dig 201205._domainkey.example.com txt +short «v=DKIM1;k=rsa;t=y;p=WIGfM..[snip]..QIDIAB»

Теперь проверьте ключ. Приведенные ниже команды предполагают, что вы находитесь в каталоге, где находится ключ (/ etc / opendkim для меня).

# opendkim-testkey -d example.com -s 201205 -k 201205.private -vvv opendkim-testkey: key loaded from /etc/opendkim/201205.private opendkim-testkey: checking key '201205._domainkey.example.com' opendkim-testkey: key not secure opendkim-testkey: key OK

Эти результаты ожидаются. «Ключ не защищен» не указывает на ошибку. Это ожидаемое последствие использования DNSSSEC. По словам моего читателя, DNSSEC идет, но пока не готов к прайм-тайм.

Пример со вторым ключом:

# opendkim-testkey -d example.com -s my_selector -k /etc/opendkim/my_selector.private -vvvv opendkim-testkey: key loaded from /etc/opendkim/my_selector.private opendkim-testkey: checking key 'my_selector._domainkey.example.com' opendkim-testkey: key not secure opendkim-testkey: key OK

Обратите внимание, что opendkim сообщает, что ключ не является безопасным. Это связано с тем, что DNSSEC не реализован на моем DNS-сервере, и теоретически кто-то может перехватить DNS-поиск и заменить его собственным ключом.

Отредактируйте файл конфигурации OpenDKIM:

# nano /etc/opendkim.conf # cat /etc/opendkim.conf # This is a basic configuration that can easily be adapted to suit a standard # installation. For more advanced options, see opendkim.conf(5) and/or # /usr/share/doc/opendkim/examples/opendkim.conf.sample. # Domain example.com KeyFile /etc/opendkim/201205.private Selector 201205 # # Commonly-used options Canonicalization relaxed/simple Mode sv SubDomains yes # Log to syslog Syslog yes LogWhy yes # Required to use local socket with MTAs that access the socket as a non- # privileged user (eg Postfix) UMask 022 UserID opendkim:opendkim # KeyTable /etc/opendkim/KeyTable SigningTable /etc/opendkim/SigningTable ExternalIgnoreList /etc/opendkim/TrustedHosts InternalHosts /etc/opendkim/TrustedHosts # Socket inet:8891@localhost #EOF

Если вы используете мой второй ключевой пример, с целевым доменом «mail.example.com», запись будет ссылаться только на основной домен:

Domain example.com KeyFile /etc/dkim/my_selector.private Selector my_selector ——

Примечание из одного из моих источников: если вы запускаете несколько экземпляров Postfix, вам нужно добавить это в opendkim.conf для каждого экземпляра (или тех, которые вы хотите использовать opendkim)

Создайте файл с помощью текстового редактора /etc/opendkim/TrustedHosts :

Добавьте домены, имена хостов и / или ip, которые должны обрабатываться OpenDKIM. Не забывайте localhost.

127.0.0.1 localhost example.com mail.example.com 192.168.1.100 #(IP address of your server, if applicable)

(последняя строка, вероятно, не понадобится. Если у вас есть IP-адрес для добавления, убедитесь, что вы используете свой собственный, а не пример выше).

Изменить /etc/default/opendkim :

Раскомментируйте эту строку и используйте порт 8891:

SOCKET=»inet:8891@localhost» # listen on loopback on port

Убедитесь, что ваш брандмауэр (iptables) позволяет loopback на localhost:

sudo iptables -A INPUT -i lo -j ACCEPT

Затем создайте файл с помощью текстового редактора /etc/opendkim/KeyTable и добавьте домен в KeyTable

Добавить строку:

#EXAMPLE showing my 2nd key: my_selector._domainkey.example.com example.com:my_selector:/etc/opendkim/my_selector.private

Далее Создайте файл с помощью текстового редактора /etc/opendkim/SigningTable и добавьте домен в SigningTable

Я показываю оба примера. Обратите внимание, что для моего второго ключа теперь я должен использовать полное доменное имя «mail.example.com»:

example.com 201205._domainkey.example.com mail.example.com my_selector._domainkey.example.com

Обратите внимание, что в именах доменов OpenDKIM 2.0.1 учитывается регистр. В этом примере мы используем более новую версию OpenDKIM, и это не кажется проблемой.

Настроить постфикс. Измените /etc/postfix/main.cf и добавьте строки в конец

milter_default_action = accept milter_protocol = 2 smtpd_milters=inet:localhost:8891 non_smtpd_milters=inet:localhost:8891

Также измените имя хоста:

#myhostname = localhost #original myhostname = mail.example.com

Вы также должны изменить соответствующую запись в / etc / hosts. Эти изменения вступают в силу после перезагрузки (хотя вы можете сразу установить его с помощью команды: hostname NEW_NAME ).

Перезагрузите postfix и opendkim, если вы не перезагрузились:

# service opendkim restart Restarting OpenDKIM: opendkim. # service postfix restart * Stopping Postfix Mail Transport Agent postfix [ OK ] * Starting Postfix Mail Transport Agent postfix [ OK ]

Лучшим способом проверки подлинности подписанной почты и правильной настройки DNS-записей является использование одной из бесплатных служб тестирования. Я использовал их:

Каждый из них скажет вам, если что-то работает должным образом, и дайте вам некоторые указания по устранению неполадок, если это необходимо.

Если у вас есть учетная запись Gmail, вы также можете отправить подписанное сообщение для быстрого и легкого тестирования.

Читайте также:  Включить аудит доступа к файлам windows в картинках

Как только вы счастливы, что все в порядке, вы можете удалить флаг тестирования в записи DNS TXT и увеличить TTL.

Готово!

Это хороший справочник.

В нем объясняется, что opendkim действительно рекомендуется, и что шаги по реализации вашей подписки на dkim такие же, как с dkim-фильтром.

BTW Domainkeys – устаревший предшественник DKIM. Добавьте записи TXT в свою зону DNS для SPF и DKIM, но больше не нужно беспокоиться о Domainkeys.

http://wiki.zimbra.com/wiki/Configuring_for_DKIM_Signing

Я всегда стараюсь перекрещивать несколько руководств по чему-либо. Это касается работы по настройке, я просто проверил его и подтвердил это. Но, возможно, вам захочется отобразить пример TXT для записи в домене.

Люди могут запутаться и явно поставить все ключевые слова в значение p, что я не совсем уверен в правильности. т.е. … включая —– НАЧАТЬ ПУБЛИЧНЫЙ КЛЮЧ —– и —– КОНЕЦ ПУБЛИЧНЫЙ КЛЮЧ —–. Это может привести к путанице.

Просто не забудьте поставить только часть шифрования, а не маркеры.

Источник: http://ubuntu.fliplinux.com/dkim-domainkeys-ubuntu-postfix-mailman.html

Как настроить DKIM, DKIM ключи для Postfix

DKIM является подписью которой подписываются все письма, отправляемые с сервера. Наличие DKIM снижает возможность подделки отправителя, а соответственно и вероятность попадания писем в спам на стороне получателя

Включение DKIM представляет собой генерирование публичной и приватной записей, размещение публичной в DNS, приватной на сервере и настройку соответствующим образом почтового сервера.

Статья в немалой степени является переводом с авторскими дополнениями

Устанавливаем пакеты (используем Debian 8)

Добавляем пользователя postfix в группу opendkim

Открываем основной конфигурационный файл пакета и приводим его к представленнуому ниже виду:

# This is a basic configuration that can easily be adapted to suit a standard
# installation. For more advanced options, see opendkim.conf(5) and/or
# /usr/share/doc/opendkim/examples/opendkim.conf.sample.

# Log to syslog
Syslog          yes
# Required to use local socket with MTAs that access the socket as a non-
# privileged user (e.g.

Postfix)
UMask           002
# OpenDKIM user
# Remember to add user postfix to group opendkim
UserID          opendkim

# Map domains in From addresses to keys used to sign messages
KeyTable        /etc/opendkim/key.table
SigningTable        refile:/etc/opendkim/signing.table

# Hosts to ignore when verifying signatures
ExternalIgnoreList  /etc/opendkim/trusted.hosts
InternalHosts       /etc/opendkim/trusted.hosts

# Commonly-used options; the commented-out versions show the defaults.


Canonicalization    relaxed/simple
Mode            sv
SubDomains      no
#ADSPAction     continue
AutoRestart     yes
AutoRestartRate     10/1M
Background      yes
DNSTimeout      5
SignatureAlgorithm  rsa-sha256

# Always oversign From (sign using actual From and a null From to prevent
# malicious signatures header fields (From and/or others) between the signer
# and the verifier.

  From is oversigned by default in the Debian package
# because it is often the identity key used by reputation systems and thus
# somewhat security sensitive.


OversignHeaders     From

Устанавливаем на файл права

Создаем необходимые каталоги

Рекурсивно меняем владельца и указываем нужные права доступа

Далее необходимо создать файлы которые будут проверяться opendkim

*@example.com example

example.com — используемое доменное имя

example — короткая версия доменного имени без указания зоны

Создаем еще один файл и помещаем в него приведенную ниже строку

example example.com:YYYYMM:/etc/opendkim/keys/example.private

example и example.com заменяются по тому же принципу, что и в предыдущем случае. YYYYMM замещается текущим годом и месяцем, например 201707 — это селектор который используется при запросе к DNS. Третья секция — путь к ключу для домена на сервере (ключ может размещаться в другом месте файловой системы)

Создаем /etc/opendkim/trusted.hosts в котором перечисляем список хостов
27.0.0.1
::1
localhost
myhostname
myhostname.example.com
example.com

В качестве myhostname указываем имя сервера — можно узнать выполнив в консоли одноименную команду.

Проверяем права и при необходимости корректируем (пользователь opendkim должен владеть всеми файлами, а каталоги с ключами должны быть оступны только владельцу):

Генерируем ключ

В результате получаются 2 файла: YYYYMM.private с приватным ключем (переименовываем в example.private и помещаем в /etc/opendkim/keys/) и YYYYMM.txt (переименовываем в example.txt и помещаем запись в DNS — тип записи TXT)

Ключ генерируется свой для каждого домена если подписывать письма нужно несколькими ключами

Перезапускаем Opendkim и убеждаемся в том, что ошибок нет

Добавляем кубличный ключ в DNS

Прежде всего откроем полученный ранее файл example.txt

201510._domainkey IN TXT ( «**v=DKIM1; h=rsa-sha256; k=rsa; s=email; »
«p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu5oIUrFDWZ……**» ) ; —— DKIM key 201510 for example.com

 

Ключ возьмем отсюда — скопировать нужно все начиная с кавычки перед v=DKIM1 (не включая квычку) до закрывающей кавычки.

Также заменяем в записи  h=rsa-sha256 на h=sha256 и убираем кавычки и пробелы в середине записи — ключ должен идти беспрерывно.

Кавычки в начале и конце записи в некоторых случая потребуется сохранить — лучше проконсультироваться по данному вопросу  спредставителями компании предоставляющей хостинг DNS — обычно кавычки не требуются.

Должно получиться примерно так:

201707._domainkey IN TXT v=DKIM1; h=sha256; k=rsa; s=email; p=MIIBIjANBgkqhkiG9w0BAQEF5sxepsy…..

Здесь YYYYMM_domainkey — имя записи для домена

Проверяем- нулевой вывод будет означать, что все получилось

Стоит учитывать, что данные обновляются не сразу (это может занимать до 72 часов и зависит от TTL у провайдера)

Подключаем Opendkim к Postfix

Создаем рабочую директорию и задаем права  для того чтобы мог создаться сокет

Далее указываем сокет непосредственно в конфигурационном файле Postfix

# Command-line options specified here will override the contents of
# /etc/opendkim.conf. See opendkim(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 opendkim.conf
SOCKET=«local:/var/spool/postfix/opendkim/opendkim.

sock»
#SOCKET=»inet:54321″ # listen on all interfaces on port 54321 #SOCKET=»inet:12345@localhost» # listen on loopback on port 12345

#SOCKET=»inet:12345@192.0.2.1″ # listen on 192.0.2.1 on port 12345

Значение имеет только незакомментированная строка SOCKET=«local:/var/spool/postfix/opendkim/opendkim.sock» — сокета по данному пути пока нет — он создасться после перезапуска сервисов

Редактируем /etc/postfix/main.cf и добавляем поддержку демона Opendkim

Приведенные строки обычно добавляют после директивы smtpd_recipient_restrictions
# Milter configuration # OpenDKIMmilter_default_action = accept
# Postfix ≥ 2.

6 milter_protocol = 6, Postfix ≤ 2.5 milter_protocol = 2
milter_protocol = 6

smtpd_milters = local:/opendkim/opendkim.sock
non_smtpd_milters = local:/opendkim/opendkim.

sock

Если на сервере используется антиспам система — участок конфига может выглядеть иначе:

mailbox_command =
smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination,check_policy_service unix:private/policyd-spf
smtpd_mailters = local:/opendkim/opendkim.

sock
#smtpd_mailters = local:/opendkim/opendkim.sock, unix:/clamav/clamav-mailter.ctl, unix:/spamass/spamass.sock
non_smtpd_milters = local:/opendkim/opendkim.sock
#check_policy_service inet:127.

0.0.1:10023

Теперь перезапускаем сервисы и проверяем результат

Проверяем отправляя письмо на ящик на стороннем сервере и просматривая служебные заголовки — в них должно содержаться указание на то, что письмо подписывается
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=server-gu.

ru;
s=201707; t=1499711674;
bh=N7ZdhdALx/4YZRLPhhJ+6x7c4DNpo8MD4N3sjFXCGDc=;
h=To:Subject:Date:From:From;
b=aTchm7PJN3la1DnmYRzs+AHIneRuVT0rYeilvp2Ls8IFgY+moLsBVIP8y9Owhy4mP
t8ViRZ2y/1F/CEU8cnRV5AdAcS/6eIGWeFrstBXFEr5/JviRty41sQ7VMVZkyAHuZC
+Nl406i0VHab7D8ZRGtdtRVAoZkg6vcII2QJq79NIqMt4M0bzwezxYUrxwlFUkKBxX
FMqW1uWI1bKLIb15X8V/8Ys50RkHOs54nnf26yamT2laEcXM9rsw0IbaXQpe0oCpnS
w/u9QAe8/OjzuFVMlOLN+mNTDtwLXmAcyIvxCJT23dE+l/XprjuGPn2JJWvOi53qaO
g1KcO5YibzZQA==

Источник: https://server-gu.ru/set-up-dkim-postfix/

How to install and integrate DKIM with OpenDKIM and Postfix on a CentOS 6 VPS

This tutorial is part 5 of the mailserver set-up with virtual users and domains using Postfix and Dovecot series. It goes through the steps of installing and integrating OpenDKIM in Postfix on a CentOS 6 Linux VPS.

After completing this tutorial you will end-up having OpenDKIM adding digital signatures to your emails, thus making the mailserver set-up even more robust and professional.

Also, learn how to do this on a Debian Squeeze Linux VPS: Install and Configure openDKIM on Debian Squeeze.

What is OpenDKIM?
It is a digital email signing/verification technology, which is already supported by some common mail providers. In general, DKIM means digitally signing all messages on the mail-server to verify the message was actually sent from the domain in question and was not spam

UPDATE THE SYSTEM

Before going any further, make sure you’re in a screen session and your system is fully up-to-date by running:

## screen -U -S opendkim-screen ## yum update

ENABLE EPEL REPOSITORY

OpenDKIM is available in the EPEL repository, so we need to enable it on the system before we can install OpenDKIM

## wget -P /tmp http://mirror.pnl.gov/epel/6/i386/epel-release-6-8.noarch.rpm ## rpm -Uvh /tmp/epel-release-6-8.noarch.rpm ## rm -f /tmp/epel-release-6-8.noarch.rpm

INSTALL OPENDKIM

Install the package using yum:

## yum install opendkim

CONFIGURE OPENDKIM

Next thing to do is to configure OpenDKIM. Its main configuration file is located in /etc/opendkim.conf, so before making any changes create a backup and add/edit the following:

## cp /etc/opendkim.conf{,.orig} ## vim /etc/opendkim.confAutoRestart Yes AutoRestartRate 10/1h LogWhy Yes Syslog Yes SyslogSuccess Yes Mode sv Canonicalization relaxed/simple ExternalIgnoreList refile:/etc/opendkim/TrustedHosts InternalHosts refile:/etc/opendkim/TrustedHosts KeyTable refile:/etc/opendkim/KeyTable SigningTable refile:/etc/opendkim/SigningTable SignatureAlgorithm rsa-sha256 Socket inet:8891@localhost PidFile /var/run/opendkim/opendkim.pid UMask 022 UserID opendkim:opendkim TemporaryDirectory /var/tmp

SET-UP PUBLIC/PRIVATE KEYS

Generate set of keys for your mydomain.com domain name:

## mkdir /etc/opendkim/keys/mydomain.com ## opendkim-genkey -D /etc/opendkim/keys/mydomain.com/ -d mydomain.com -s default ## chown -R opendkim: /etc/opendkim/keys/mydomain.com ## mv /etc/opendkim/keys/mydomain.com/default.private /etc/opendkim/keys/mydomain.com/default

add mydomain.com to OpenDKIM’s key table by adding the following record in /etc/opendkim/KeyTable

default._domainkey.mydomain.com mydomain.com:default:/etc/opendkim/keys/mydomain.com/default

next, edit /etc/opendkim/SigningTable and add the following record to OpenDKIM’s signing table:

*@mydomain.com default._domainkey.mydomain.com

and add your domain and your hostname as trusted hosts in /etc/opendkim/TrustedHosts:

127.0.0.1 mydomain.com host.mydomain.com

assuming the domain in question is ‘mydomain.com’ and server’s hostname is set to ‘host.mydomain.com’

finally, edit your mydomain.com DNS zone and add the TXT record from /etc/opendkim/keys/mydomain.com/default.txt

default._domainkey IN TXT ( «v=DKIM1; k=rsa; » «p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDApHRr7ZmXRaAB+RQRbP4VdMwIrIHIP18KFtXRsv/xpWc0Gix6ZXN13fcG03KNGKZo2PY+csPkGC5quDnH5V0JEhDZ78KcDWFsU6u4fr9ktVAdt6P7jWXjcyqdHOZ8+YN4cAeU4lRFNgQvdupIcByYwzPYMgBFHfJm9014HvRqhwIDAQAB» ) ; —— DKIM key default for mydomain.com

it is also a good idea to add an SPF record if you haven’t already

mydomain.com. 14400 IN TXT «v=spf1 a mx ~all»

you can verify your dkim TXT record is valid using dig for example:

## dig +short default._domainkey.mydomain.com TXT «v=DKIM1; k=rsa; » «p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDApHRr7ZmXRaAB+RQRbP4VdMwIrIHIP18KFtXRsv/xpWc0Gix6ZXN13fcG03KNGKZo2PY+csPkGC5quDnH5V0JEhDZ78KcDWFsU6u4fr9ktVAdt6P7jWXjcyqdHOZ8+YN4cAeU4lRFNgQvdupIcByYwzPYMgBFHfJm9014HvRqhwIDAQAB»

CONFIGURE POSTFIX

In order to integrate OpenDKIM with Postfix we need to add the following few lines in /etc/postfix/main.cf:

smtpd_milters = inet:127.0.0.1:8891 non_smtpd_milters = $smtpd_milters milter_default_action = accept milter_protocol = 2

(RE)START SERVICES

Add OpenDKIM to your system’s start-up and start opendkim and restart postfix using the following commands:

## service opendkim start ## chkconfig opendkim on ## service postfix restart

TEST THE SET-UP

Источник: https://www.rosehosting.com/blog/how-to-install-and-integrate-opendkim-with-postfix-on-a-centos-6-vps/

Ссылка на основную публикацию