Настройка записи DKIM с ключом длиной 2048
В предыдущей статье, подробно рассмотрена настройка DKIM-записи с длиной ключа 1024. DKIM подпись необходима для проверки, того, что письмо отправлено от правильного хоста. В Gmail желательно использовать ключ с длиной 2048, если регистратор домена поддерживает записи длиной более 255 символов.
Создание rsa-ключей
Создадим папку для созданных ключей.
mkdir ~/postfix_sinyawskiy_ru_keys_2048/
cd ~/postfix_sinyawskiy_ru_keys_2048/
Создаем приватный и публичный ключи
# openssl genrsa -out private_sinyawskiy_dkim_key.pem 2048
# openssl rsa -pubout -in private_sinyawskiy_dkim_key.pem -out public_sinyawskiy_dkim_key.pem
cat public_sinyawskiy_dkim_key.pem
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAly7LuaQ0ELE9MtcV6L23
gY+Sz/QUFIYnx2d8oel3Wmc9kjOZ2ZrwgblBZnRyzblai5vW/urykEEljSYXUqrn
Z4kP/HiB78O4Kc2FiyHYXL/QEoHn5iN5+owLAS0TzbPvfgs/goe3vSr3KueRPKdz
pMGO6Ou/9flOABQX8iSua1THe878/ZcJh0ZOTtCeNiBLuXUZs09DRelacOF7v3pJ
v+nwo2Tjq/1VOlCiOQmgS8vE/xKfx2aZ5riSfmD/B4o/cSHrIVYHUbWlH9j2QXhF
riafHDEgnGyPveouMoZruIaMemCiaYrnoIr0OA7PBzp28lfDyQJzlqiqB4hSEfsD
ZQIDAQAB
-----END PUBLIC KEY-----
Видно, что публичный ключ заметно длиннее, чем публичны ключ при длине приватного ключа 1024.
Сгенерировать сертификаты подписи письма можно также при помощи opendkim-tools.
mkdir ~/opendkim_keys_2048/
cd ~/opendkim_keys_2048/
sudo opendkim-genkey -b 2048 -d sinyawskiy.ru -s default -v
-s
- это селектор
если необходимо создать ключи в каталоге отличном от текущего, то можно указать опцию -D <каталог>
-D /etc/opendkim/keys/sinyawskiy.ru
при использовании этой команды создадутся приватый default.private
и публичный ключ default.txt
, в формате DNS-записи
cat default.txt
default._domainkey IN TXT ( "v=DKIM1; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4Q9ctUoAeLBK9gnQM9Ve2zTTkeGhzcs5rVp+1smbBSFd6wxnwhzTH
E+25eIolLFF5IqnbSCKjgPbozWk6/DZJ5RDvpQ/8rFvuE+pXzvAVb1rHqdwxZIn1AjrLYzA+P2Rf64YHvpbeR9ua/lxjp1NreZgE
nUxisv9zAJEUZYZI54bH7AyNjuF6Tpt8VUXZKJm0QG3y/E8G4P3mI"
"jxe3ll+zYKbcxHuoOjK7LiBX2NAucAzAoI6YspgPxfgPCz+ZLD0WCUEXXmRFOORTegKJSCi+PONKpIThc0bvlKtHoOGlIRZYYeF
rW0GTx5nQKI9qF0XRyQDRMobPIxS5Q8GwimkwIDAQAB" ) ; ----- DKIM key default for sinyawskiy.ru
Как видно запись состоит из трёх частей в кавычках внутри скобок, короткой, длинной и короткой. Перед использованием необходимо удалить все кавычки и пробелы.
Изменение DKIM-записи
Изменение DKIM-записи доменной зоны на хостинге reg.ru можно писать целиком, форма умная сама все сделает.
[flickr:id=52020422892]
Изменение DKIM записи на nic.ru для публичного ключа длиной 2048, описано ниже.
[flickr:id=52021192502]
DKIM запись nic.ru необходимо разбить переносом строки (Enter, Return, CHR13), таким образом, чтобы максимальная длина части не превышала 255 симоволов. Если этого не сделать будет ошибка RFC1035.
[flickr:id=52021182172]
Проверим, что возвращает сервер с помощью dig
$ dig txt default._domainkey.sinyawskiy.ru
; <<>> DiG 9.16.1-Ubuntu <<>> txt default._domainkey.sinyawskiy.ru
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45809
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;default._domainkey.sinyawskiy.ru. IN TXT
;; ANSWER SECTION:
default._domainkey.sinyawskiy.ru. 46497 IN TXT "v=DKIM1; k=rsa; t=s; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAly7LuaQ0ELE9MtcV6L23gY+Sz/QUFIYnx2d8oel3Wmc9kjOZ2ZrwgblBZnRyzblai5vW/urykEEljSYXUqrnZ4kP/HiB78O4Kc2FiyHYXL/QEoHn5iN5+owLAS0TzbPvfgs/goe3vSr3KueRPKdzpMGO6Ou/9flOABQX8iSua1THe878/ZcJh0ZOTtCe" "NiBLuXUZs09DRelacOF7v3pJv+nwo2Tjq/1VOlCiOQmgS8vE/xKfx2aZ5riSfmD/B4o/cSHrIVYHUbWlH9j2QXhFriafHDEgnGyPveouMoZruIaMemCiaYrnoIr0OA7PBzp28lfDyQJzlqiqB4hSEfsDZQIDAQAB"
;; Query time: 155 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Пт апр 22 21:48:32 MSK 2022
;; MSG SIZE rcvd: 490
Замечательно! Все работает, видно что, в ответе ключ разбит на 2 части, каждая из которых заключена в двойные кавычки, а между ними пробел.
Настройка opendkim
Подробная настройка описана в предыдущей статье в одноименном разделе. В отличие от предыдущего варианта настройки необходимо указать путь до нового ключа.
$ sudo nano /etc/opendkim.conf
# KeyFile /home/als/postfix_sinyawskiy_ru_keys/private_sinyawskiy_dkim_key.pem
KeyFile /home/als/postfix_sinyawskiy_ru_keys_2048/private_sinyawskiy_dkim_key.pem
# Canonicalization relaxed/relaxed
Canonicalization relaxed/simple
Для себя поменял еще каноничность заголовка и тела на relaxed и simple.
Перезагрузить postfix и opendkim:
# service postfix restart
# service opendkim restart
Тестирование DKIM
Для тестирования DKIM записи можно использовать команду
sudo opendkim-testkey -d sinyawskiy.ru -s default -vvv
Если запись еще не обновилась в DNS, то вывод будет такой
opendkim-testkey: checking key 'default._domainkey.sinyawskiy.ru'
opendkim-testkey: keys do not match
если обновилось, то:
opendkim-testkey: checking key 'default._domainkey.sinyawskiy.ru'
opendkim-testkey: key OK
Проверка отправки почты
echo "Test body of the email" | mail -s "Test email subject" root
или на адрес yourname@hostname.com
echo "Test body of the email" | mail -s "Test email subject" yourname@hostname.com