Part 2: install dovecot imap server on ubuntu & enable tls encryption
Содержание:
Введение
Почтовый сервер хотел изучить уже давно, но руки дошли только сейчас, да и информации корректной не особо много удавалось найти, поэтому решил написать как можно более подробную публикацию. В данной публикации пойдёт речь не только о postfix, dovecot, mysql, postfixadmin, а также и о spamassassin, clamav-milter(специальная версия clamav для почтовых серверов), postgrey, а также о возможности переноса спама в папку «Спам»(dovecot-pigeonhole).
Подготовка
Первым делом установим пакеты которые понадобятся для работы (postfix, dovecot и dovecot-pigeonhole необходимо установить из портов, dovecot-sieve можно в принципе установить из пакетов, но в портах версии бывают более новые и по этой причине может быть не совместимость dovecot с dovecot-sieve). Установим следующие пакеты:
После установки поместим необходимые службы в автозапуск:
Запустим службы:
Не забываем добавить в httpd.conf строки необходимые для работы php в apache и корректной работы postfixadmin:
Далее необходимо перейти в каталог и скачать postfixadmin
Скачаем postfixadmin (на момент написания актуальная версия была 3.2)
После этого необходимо распаковать архив в данный каталог и изменить владельца каталога:
Далее подготовим базу данных для postfixadmin, выполните скрипт mysql-secure-installation(тот пароль который Вы создадите в данном скрипте, необходимо будет создать и в mysql командой alter user), для первичной настройки mysql, далее войдите в mysql, создайте базу данных и права для неё:
После того как база данных настроена необходимо отредактировать файл config.inc.php, в данном примере этот файл находится в каталоге /usr/local/www/apache24/data/postfixadmin-3.2/, в данном файле необходимо отредактировать несколько строк и привести их к виду, после того как измените данные настройки, перезагрузите apache, также необходимо создать каталог templates_c в каталоге /usr/local/www/apache24/data/postfixadmin-3.2 и назначить на него владельца www:
SSL
Для генерации ключа будем использовать способ который предложен на сайте postfix.org, с созданием собственного центра сертификации, необходимо перейти в каталог /etc/ssl и выполнить скрипт:
Во время выполнения скрипта будет запрошено имя для сертификата, не чего не вводите, нажмите Enter, далее скрипт запросит создать пароль для сертификата, далее будут стандартные вопросы для создания сертификата.
Далее необходимо создать секретный ключ(без пароля) и не подписанный сертификат открытого ключа(Organizational Unit Name (eg, section) [] должен отличаться от того, что указан в сертификате созданном выше):
Подпишем сертификат открытого ключа(количество дней укажите столько, сколько вам необходимо):
Созданные сертификаты оставьте в данном каталоге, или перенесите их в тот каталог который Вам более удобен, «конфиги» postfix и dovecote будут настроены с учётом того, что сертификаты будут находиться в данном каталоге.
Пользователь vmail
Перед тем как приступить к установке postfix, dovecot и dovecot-pigeonhole, создадим пользователя и группу(группа создаться автоматически) vmail, а также каталог в котором будет располагаться почта.
Создадим каталог для почты и назначим владельцем пользователя vmail:
Проверка работы квот
Для начала в командной строке вводим:
doveadm quota get -u user@domain.net
* user@domain.net — почтовый пользователь, для которого нужно показать квоту.
Данная команда отобразит квоту для пользователя, например:
Quota name Type Value Limit %
User quota STORAGE 16420 50000 32
User quota MESSAGE 14 — 0
Теперь открываем PostfixAdmin — заходим в настройки почтового ящика и ставим небольшой лимит, например, в 5 Мб:
Теперь объем ящика превышает лимит:
doveadm quota get -u user@domain.net
Quota name Type Value Limit %
User quota STORAGE 16420 5000 328
User quota MESSAGE 14 — 0
* объем превышен, почти, втрое.
Некоторые почтовые клиенты покажут превышение лимита, например, Thunderbird:
Настройка PostfixAdmin
На данном этапе наша задача настроить подключение PostfixAdmin к базе данных, зарегистрировать домен и несколько почтовых ящиков для нового домена.
Проверяем создала ли конфигурационная утилита базу данных и пользователя для нашего PostfixAdmin. Для этого заходим через phpMyAdmin на сервер MySQL. При установке по-умолчанию phpMyAdmin работает по адресу http://ВашХост/phpmyadmin. В списке баз данных должна быть БД postfixadmin. Не пугайтесь, что она пустая. Структура таблиц будет создана позже во время настройки подключения к БД самого PostfixAdmin. Так же в списке пользователей должен быть пользователь с идентификатором postfixadmin. Если этого нет, то необходимо создать БД и пользователя с максимальными правами доступа к этой БД.
К сожалению, конфигурационная утилита установки пакета не изменяет параметров файла config.inc.php, даже если с ее помощью создается БД. Конфигурационный файл PostfixAdmin находится в каталоге /etc/postfixadmin/config.inc.php. Изменяем параметры в данном файле в соответствии с приведенным ниже кодом:
Изменим алгоритм шифрования пароля заданный по-умолчанию в PostfixAdmin:
Обращаемся к процедуре настройки http://ВашХост/postfixadmin/setup.php. Если ошибок не обнаружено, внизу страницы появится запрос на создание пароля установки. Этот пароль используется для создания администраторов. После указания пароля и нажатия на кнопку Generate password hash, должна появится строка вида:
В файле config.inc.php необходимо найти соответствующий параметр и заменить этой строкой, только после этого можно будет создать администратора.
Step 5: Configure SpamAssassin
First we need to install SpamAssassin.
Then we need to create a user for SpamAssassin.
To successfully configure SpamAssassin, it’s necessary to open and modify the configuration settings.
We need to change the parameter to enable SpamAssassin daemon.
We need to configure the home and options parameters.
Then we need to specify the parameter like this:
Finally, we need to specify that SpamAssassin’s rules will be updated automatically.
Note: Compare these changes with this file to detect mistakes or errors:
We need to open to set up the anti-spam rules.
Then we need to find the following line and add the spamassassin filter:
Finally we need to append the following parameters:
Congratulations! You have successfully set up your mail server with Postfix and Dovecot with MySQL authentication and spam filtering with SpamAssassin!
Создание сертификата и настройка домена
Для создания сертификата можно воспользоваться бесплатным онлайн инструментом на сайте dkimcore.org. Однако, в данном примере, мы воспользуемся opendkim-genkey и сформируем его самостоятельно. Мы будем работать с доменом dmosk.ru (Вам необходимо его заменить своим).
И так, создаем каталог для размещения ключей домена:
mkdir -p /etc/opendkim/dmosk.ru
И генерируем их следующей командой:
opendkim-genkey -D /etc/opendkim/dmosk.ru/ —domain dmosk.ru —selector relay
* где dmosk.ru — домен, с которого будет отправляться почта: relay — имя селектора (селектор — это строковый идентификатор, он может быть любым).
В папке /etc/opendkim/dmosk.ru должно появиться два файла с расширениями .private и .txt. Первый — закрытый ключ (храним его у себя на сервере), второй — готовая txt-запись для DNS.
Задаем группу владельца opendkim для созданных ключей:
chown :opendkim /etc/opendkim/dmosk.ru/*
Если система выдаст ошибку, что группы opendkim не существует (chown: opendkim: illegal group name), необходимо сначала создать учетную запись.
Задаем права для группы владельца:
chmod g+rw /etc/opendkim/dmosk.ru/*
Создадим пользователя opendkim.
FreeBSD:
pw useradd opendkim -m -s /usr/sbin/nologin -w no
Linux (Ubuntu, CentOS):
useradd opendkim -m -s /sbin/nologin
После разрешаем чтение группе владельцу:
chmod g+r /etc/opendkim/dmosk.ru/*
Открываем созданный нами ранее TrustedHosts:
vi /etc/opendkim/TrustedHosts
И добавим следующее:
…
*.dmosk.ru
* где dmosk.ru — почтовый домен.
Создаем таблицу KeyTable. В ней хранится список соответствий между селекторами, доменами и файлами с закрытыми ключами. Формат записей:<селектор>._domainkey.<домен> <домен>:<селектор>:<путь к закрытому ключу>
vi /etc/opendkim/KeyTable
И в соответствии с форматом приводим его к нужному виду:
relay._domainkey.dmosk.ru dmosk.ru:relay:/etc/opendkim/dmosk.ru/relay.private
vi /etc/opendkim/SigningTable
И приводим к такому виду:
*@dmosk.ru relay._domainkey.dmosk.ru
Дополнительные настройки
Добавление отправителей в белый список
Может возникнуть ситуация, при которой нам нужно изменить назначение СПАМ-балов для некоторых отправителей. Для этого открываем файл:
vi /opt/zimbra/conf/amavisd.conf.in
Находим строку:
{ # a hash-type lookup table (associative array)
…
}
… и внутри фигурных скобок {} добавим нужный нам домен или конкретного отправителя:
…
‘dmosk.ru’ => -10.0,
‘sender@dmosk2.ru’ => -10.0,
}
* таким образом мы сказали, что для писем с домена dmosk.ru и отправителя sender@dmosk2.ru отнимать 10 баллов за СПАМ. Такие письма начнут приходить без блокировки (при условии, что не будет отправлен явный СПАМ, который наберет очень много баллов).
После настройки перезапускаем amavis:
su — zimbra -c «zmamavisdctl stop && zmamavisdctl start»
Размер отправляемого сообщения
Задать максимальный размер сообщений можно командой:
su — zimbra -c ‘zmprov modifyConfig zimbraMtaMaxMessageSize 31457280’
* в данном примере мы задаем максимальный размер сообщения 30 мб.
После перезапускаем postfix:
su — zimbra -c «postfix reload»
Настройка клиента
Рассмотрим принцип настройки клиента Mutt для работы по IMAP и POP3.
IMAP + SMTP
Открываем конфигурационный файл:
vi ~/.muttrc
И приводим его к следующему виду:
set from = master@dmosk.ru
set imap_user = master@dmosk.ru
set imap_pass = password
set smtp_pass = password
set realname = «Дмитрий Моск»
set smtp_url = smtp://smtp.dmosk.ru:465/
set folder = imaps://imap.dmosk.ru:993
set spoolfile = +INBOX
set postponed = +/Drafts
set use_from = yes
set editor=’nano’
set sort = reverse-threads
set sort_aux = last-date-received
set fast_reply=yes
set include=yes
set forward_quote=yes
set delete=yes
set imap_keepalive = 900
set copy = no
set move = no
set header_cache = ~/.mutt/cache/headers
set message_cachedir = ~/.mutt/cache/bodies
set certificate_file = ~/.mutt/certificates
set ssl_starttls = yes
set ssl_force_tls = yes
set smtp_authenticators = ‘login’
* где необходимо обратить внимание на следующие опции:
- master@dmosk.ru — адрес электронной почты; Используем для поля from и в качестве логина.
- master — имя учетной записи;
- password — пароль;
- Дмитрий Моск — отображаемое имя;
- smtp.dmosk.ru — SMTP-сервер; В данном примере мы подключаемся к серверу по SSL-порту 465. Также могут быть варианты 587 и 25.
- imap.dmosk.ru — сервер IMAP. Подключение выполняем по SSL-порту 993. Также можно использовать порт 143.
Для проверки вводим команду:
mutt
При запросе подтвердить принятие сертификата, нажимаем a.
POP3 + SMTP
Открываем конфигурационный файл:
vi ~/.muttrc
И приводим его к следующему виду:
set from = master@dmosk.ru
set smtp_pass = password
set realname = «Дмитрий Моск»
set smtp_url = smtp://smtp.mail.ru:465/
set pop_user = master@dmosk.ru
set pop_pass = password
set pop_host = pops://pop.dmosk.ru:995/
set pop_reconnect = yes
set pop_checkinterval = 1
set pop_delete = no
set mbox_type = mbox
set folder = ~/mail
set mbox = +Inbox
set spoolfile= +Inbox
set use_from = yes
set editor=’nano’
set sort = reverse-threads
set sort_aux = last-date-received
set fast_reply=yes
set include=yes
set forward_quote=yes
set delete=yes
set imap_keepalive = 900
set copy = no
set move = no
set header_cache = ~/.mutt/cache/headers
set message_cachedir = ~/.mutt/cache/bodies
set certificate_file = ~/.mutt/certificates
set ssl_starttls = yes
set ssl_force_tls = yes
set smtp_authenticators = ‘login’
* где необходимо обратить внимание на следующие опции:
- master@dmosk.ru — адрес электронной почты; Используем для поля from и в качестве логина.
- master — имя учетной записи;
- password — пароль;
- Дмитрий Моск — отображаемое имя;
- smtp.dmosk.ru — SMTP-сервер; В данном примере мы подключаемся к серверу по SSL-порту 465. Также могут быть варианты 587 и 25.
- imap.dmosk.ru — сервер IMAP. Подключение выполняем по SSL-порту 993. Также можно использовать порт 143.
Для проверки вводим команду:
mutt
При запросе подтвердить принятие сертификата, нажимаем a.
System users
If you wish you use dovecot-lda for all system users on a single domain mail host you can do it by editing mailbox_command parameter in
/etc/postfix/main.cf (postconf(5)):
mailbox_command = /usr/local/libexec/dovecot/dovecot-lda -f "$SENDER" -a "$RECIPIENT" # or mailbox_command = /usr/libexec/dovecot/dovecot-lda -f "$SENDER" -a "$RECIPIENT" # or mailbox_command = /usr/lib/dovecot/dovecot-lda -f "$SENDER" -a "$RECIPIENT" # or wherever it was installed in your system.
Then run postfix reload.
-
This command doesn’t do a userdb lookup. If you want that (e.g. for per-user quota lookups) you need to add -d "$USER" parameter.
-
Postfix runs mailbox_command with both the uid and gid of the destination user. This may not allow dovecot-lda to write a lock file in /var/mail. When this directory is writable by a privileged group (say main, see the option mail_privileged_group), we can use the setgid permission bit on the dovecot-lda executable:
# chgrp mail /usr/lib/dovecot/dovecot-lda # chmod 2755 /usr/lib/dovecot/dovecot-lda
Alas these permission will disappear if you update dovecot. A more robust way to do so is to compile a relay program /etc/postfix/dovecot-lda-relay that has the setgid permission and execs the real dovecot-lda.
# cd /etc/postfix # cat >dovecot-lda-relay.c <<EOF #include <unistd.h> char *pgm = "/usr/lib/dovecot/dovecot-lda"; /* wherever dovecot-lda is located */ int main{int argc, char**argv) { argv=pgm; execv(pgm,argv); return 10; } EOF # gcc -o dovecot-lda-relay dovecot-lda-relay.c # chown root:mail dovecot-lda-relay # chmod 2755 dovecot-lda-relay
Then, simply invoke /etc/postfix/dovecot-lda-relay instead of dovecot-lda in mailbox_command.
-
Postfix’s mailbox_size_limit setting applies to all files that are written via dovecot-lda. The default is 50 MB, so dovecot-lda can’t write any files larger than that, including mbox files or log files. This shows up only in Dovecot’s logs:
dovecot-lda(user): write() failed with mbox file /home/user/mail/foo: File too large (process was started with ulimit -f limit)
-
If you have trouble seeing anything in Dovecot’s logs, see .
Тестирование
Для тестирования всех возможных подключений(STARTTLS, SLL) можно использовать клиент для мобильных устройств(в моём случаи для ios) «МойОфис Почта», в данном приложении есть множество параметров для настройки подключений к почтовому серверу.
Для тестирования spaassasin используем сигнатуру GTUBE, в письмо добавьте строку:
Если всё корректно, то письмо будет помечено спамом и соответственно перемещено в папку спам.
Для тестирования антивируса необходимо послать письмо с текстовым файлом, в данном файле будет последовательность EICAR:
Письма естественно необходимо отправлять с внешних почтовых ящиков.
Для просмотра логов в реальном времени запустите:
Также для корректного тестирования отправки почты на внешние почтовые ящики(например на yandex.ru, mail.ru, gmail.com и т.д.) необходимо прописать обратную зону DNS(PTR запись), проделать это можно путём обращения в Ваш провайдер(если у Вас конечно не собственный DNS сервер).
System Setup
The following ingredients are necessary to make your droplet ready to be a mail server:
-
A domain, let’s assume it is “mydomain.com”
-
A hostname for your mail server, let’s assume “mail.mydomain.com”
-
An SSL certificate that is valid for “mail.mydomain.com”
Setting up SSL certificate
For SSL, you need a certificate and a private key. In this tutorial, we’re going to assume that the certificate is saved in and the key is saved in . Make sure the key is only readable by the root user!
and leaving the default values in by just hitting enter on all questions asked. Don’t use this certificate in production!
Most CAs will require you to submit a certificate signing request. (CSR) You can generate one like this:
Fill in the information queried properly, like in this transcript: (Check with the CA you intend to use on what information needs to be in the CSR)
(Note that this way you cannot create a certificate valid for more than one domain using the field without some additional work — again, check the CA’s documentation!)
Setting up DNS
Here is how to do it if you’re using DigitalOcean’s DNS:
- Go to the “DNS” area in your DigitalOcean panel
- Create a new domain or select one you’ve created before
- Click the “Add record” button in the top right
- Add an A record:
Click “Add record” again and add an MX record that points to the A record:
Additional information can be found in the Host Name setup and DNS tips and tricks articles.
Verify DNS
DNS will take a few hours to propagate all over the internet, but it should be set on your DNS server after a few minutes. You can check with dig & host:
EncFS (optional)
As you can see in the picture above (a warning while installing), EncFS is not the ideal one. It has some known vulnerabilities, so maybe some other alternatives like CryFS might be better idea. For this example, we’ll stick to EncFS.
$ apt-get install encfs mkdir /encrypted-mail /decrypted-mail chgrp mail /decrypted-mail/ chmod -R g+rw /decrypted-mail/ gpasswd -a mail fuse chgrp fuse /dev/fuse; chmod g+rw /dev/fuse root@li212-205:~# encfs /encrypted-mail /decrypted-mail -o --public Creating new encrypted volume. Please choose from one of the following options: enter "x" for expert configuration mode, enter "p" for pre-configured paranoia mode, anything else, or an empty line will select standard mode. ?> p Paranoia configuration selected. Configuration finished. The filesystem to be created has the following properties: Filesystem cipher: "ssl/aes", version 3:0:2 Filename encoding: "nameio/block", version 3:0:1 Key Size: 256 bits Block Size: 1024 bytes, including 8 byte MAC header Each file contains 8 byte header with unique IV data. Filenames encoded using IV chaining mode. File data IV is chained to filename IV. File holes passed through to ciphertext. -------------------------- WARNING -------------------------- The external initialization-vector chaining option has been enabled. This option disables the use of hard links on the filesystem. Without hard links, some programs may not work. The programs 'mutt' and 'procmail' are known to fail. For more information, please see the encfs mailing list. If you would like to choose another configuration setting, please press CTRL-C now to abort and start over. Now you will need to enter a password for your filesystem. You will need to remember this password, as there is absolutely no recovery mechanism. However, the password can be changed later using encfsctl. New Encfs Password: Verify Encfs Password:
It’s that simple. is now a regular directory. is that same data, just encrypted.
Configure Postfix
Just in case, create backup(s) for the config files we’re going to change. Open the file to modify it:
nano /etc/postfix/main.cf
First we need to comment the TLS Parameters and append other parameters. You can use the Free SSL certificates and the paths that are suggested:
# TLS parameters #smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem #smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key #smtpd_use_tls=yes #smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache #smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_tls_cert_file=/etc/ssl/certs/dovecot.pem smtpd_tls_key_file=/etc/ssl/private/dovecot.pem smtpd_use_tls=yes smtpd_tls_auth_only = yes
or you could modify depending on your personal configuration, for instance using Let’s encrypt.
# TLS parameters smtpd_tls_cert_file=/etc/letsencrypt/live/<DOMAIN.com>/fullchain.pem smtpd_tls_key_file=/etc/letsencrypt/live/<DOMAIN.com>/privkey.pem smtpd_tls_CAfile=/etc/letsencrypt/live/<DOMAIN.com>/chain.pem
Then we are going to append the following parameters below the TLS settings that we have changed in the previous step:
smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
We need to comment the mydestination default settings and replace it with localhost. This change allows your VPS to use the virtual domains inside the MySQL table.
#mydestination = cyberpunk.rs, mail.cyberpunk.rs, localhost.cyberpunk.rs, localhost mydestination = localhost
Verify that myhostname parameter is set with your FQDN.
myhostname = mail.cyberpunk.rs
Append the following line for local mail delivery to all virtual domains listed inside the MySQL table.
virtual_transport = lmtp:unix:private/dovecot-lmtp
Finally, we need to add these three parameters to tell Postfix to configure the virtual domains, users and aliases.
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
We are going to create the final three files that we append in the main.cf file to tell Postfix how to connect with MySQL.
First we need to create the file. It’s necessary to change the values depending your personal configuration.
nano /etc/postfix/mysql-virtual-mailbox-domains.cf user = usermail password = mailpassword hosts = 127.0.0.1 dbname = servermail query = SELECT 1 FROM virtual_domains WHERE name='%s'
Then we need to restart Postfix.
service postfix restart
We need to ensure that Postfix finds your domain, so we need to test it with the following command. If successful, it should return 1:
postmap -q cyberpunk.rs mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
Then we need to create the file.
nano /etc/postfix/mysql-virtual-mailbox-maps.cf user = usermail password = mailpassword hosts = 127.0.0.1 dbname = servermail query = SELECT 1 FROM virtual_users WHERE email='%s'
Restart Postfix again:
service postfix restart
postmap -q email1@cyberpunk.rs mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
Finally, we are going to create the last file to configure the connection between Postfix and MySQL:
nano /etc/postfix/mysql-virtual-alias-maps.cf user = usermail password = mailpassword hosts = 127.0.0.1 dbname = servermail query = SELECT destination FROM virtual_aliases WHERE source='%s'
Restart Postfix again:
service postfix restart
postmap -q alias@cyberpunk.rs mysql:/etc/postfix/mysql-virtual-alias-maps.cf
nano /etc/postfix/master.cf
We need to uncomment these lines and append other parameters:
submission inet n - - - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject
In some cases, we need to restart Postfix to ensure port 587 is open.
service postfix restart
Note: You can use “” cmd to check if your system listens on specific ports, or you can use this tool to scan your domain ports and verify that port and are open.
Защищаем сообщения от попадания в СПАМ
Чтобы другие почтовые системы не принимали наши письма за СПАМ, выполняем следующие рекомендации:
А-запись в DNS
Для FQDN-имени почтового сервера должна быть создана А-запись в DNS. Пример записи:
mail.dmosk.ru A 90.156.242.197
Создаем PTR-запись для внешнего IP-адреса
Она должна вести на имя сервера (в данном примере, mail.dmosk.ru). Чтобы создать такую запись, нужно написать обращение Интернет-провайдеру или хостеру виртуальной машины. Пример записи:
171.23.222.83.in-addr.arpa name = mail.dmosk.ru
* данная запись соответствует IP-адресу 83.222.23.171.
Эта запись создается в DNS для домена, от которого идет отправка сообщений. Пример:
dmosk.ru text = «v=spf1 +mx -all»
Прописываем DKIM в DNS
Для начала, смотрим ключ, который был сформирован во время установки iRedMail:
amavisd-new showkeys
Пример ответа:
dkim._domainkey.dmosk.ru. 3600 TXT (
«v=DKIM1; p=»
«MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHNu0ZlYkq8pKsp131jnoZ+Ief»
«zcSP1WxGzGQXssg3yiRGBlqsRGBnnKgitrsPYTZbzqqL+/rW0ptGNhAqfTWHvMia»
«+f4RSMLJPMREFtakVEZvTIK5iZvxuCZpVhvM6ldadTLAxbcupX38yMfJV73EwCHK»
«d2mdqfW+emSW/paUwQIDAQAB»)
Копируем DKIM и создаем в DNS запись TXT. Пример:
dmosk.ru text = «v=DKIM1; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHNu0ZlYkq8pKsp131jnoZ+IefzcSP1WxGzGQXssg3yiRGBlqsRGBnnKgitrsPYTZbzqqL+/rW0ptGNhAqfTWHvMia+f4RSMLJPMREFtakVEZvTIK5iZvxuCZpVhvM6ldadTLAxbcupX38yMfJV73EwCHKd2mdqfW+emSW/paUwQIDAQAB»
Создать другую подпись DKIM
Генерируем новый ключ:
amavisd-new genrsa /var/lib/dkim/dmosk2.ru.pem 1024
* где dmosk2.ru — новый домен, для которого мы сгенерируем подпись dkim.
* некоторые системы не работают с ключами более чем 1024 бит.
Задаем права на созданный файл:
chown amavis:amavis /var/lib/dkim/dmosk2.ru.pem
chmod 0400 /var/lib/dkim/dmosk2.ru.pem
Открываем конфигурационный файл amavisd
vi /etc/amavisd.conf
Находим строчку:
dkim_key(‘dmosk.ru’, «dkim», «/var/lib/dkim/dmosk.ru.pem»);
И добавляем радом с ней новую. Получится так:
dkim_key(‘dmosk.ru’, «dkim», «/var/lib/dkim/dmosk.ru.pem»);
dkim_key(‘dmosk2.ru’, «dkim», «/var/lib/dkim/dmosk2.ru.pem»);
Теперь находим строчку:
@dkim_signature_options_bysender_maps = ( {
…
«dmosk.ru» => { d => «dmosk.ru», a => ‘rsa-sha256’, ttl => 10*24*3600 },
И также после нее добавляем новую. Должно получиться:
@dkim_signature_options_bysender_maps = ( {
…
«dmosk.ru» => { d => «dmosk.ru», a => ‘rsa-sha256’, ttl => 10*24*3600 },
«dmosk2.ru» => { d => «dmosk2.ru», a => ‘rsa-sha256’, ttl => 10*24*3600 },
Перезапускаем amavisd:
amavisd-new restart
Политика DMARC
Данная политика определяет, что делать с письмом, которое не проходит проверку. Подробнее о DMARC.
Для создания данной политики необходимо в DNS добавить TXT запись, примерно, такого содержания:
_dmarc.dmosk.ru. 3600 IN TXT «v=DMARC1; p=quarantine; sp=none; pct=100; fo=0; rua=mailto:postmaster@dmosk.ru»
* данная запись означает, что все письма, которые не прошли проверку, необходимо отправить в карантин, а отчет написать на ящик postmaster@dmosk.ru.
Ящик abuse
По аналогии с тем, как мы создавали тестовую учетную запись, необходимо создать ящик abuse@… На данный ящик могут приходить жалобы на СПАМ. Стоит время от времени просматривать его (или настроить переадресацию), и реагировать на жалобы.