Назад | Перейти на главную страницу

Как мне ввести в DNS надежный (длинный) ключ DKIM?

Я пытаюсь ввести 4028-битный ключ DKIM в DNS, и мне кажется, что я превышаю предел 512 байт для UDP, а также максимальный размер записи для записи TXT.

Как правильно создать большой ключ (с предполагаемым большим закодированным размером) и импортировать его в DNS?

Вам нужно разделить их в текстовом поле. Я считаю, что 2048 - это практический предел размера ключа. Разделите текстовое поле на части размером 255 символов или меньше. Для каждого сплита есть накладные расходы.

Есть два формата длинных полей.

TXT "часть первая" \ "часть вторая"

TXT («часть первая» «часть вторая»)

Оба из них будут объединены как «часть первая, часть два». Подробнее от Zytrax.

Чтобы создать запись в dkim, я вставляю свой файл открытого ключа и заключаю его в кавычки.
Мой файл открытого ключа содержит следующее:

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD78Ki2d0zmOlmjYNDC7eLG3af12KrjmPDeYRr3
q9MGquKRkRFlY+Alq4vMxnp5pZ7lDaAXXwLYjN91YY7ARbCEpqapA9Asl854BCHMA7L+nvk9kgC0
ovLlGvg+hhqIPqwLNI97VSRedE60eS+CwcShamHTMOXalq2pOUw7anuenQIDAQAB

После редактирования ключ в моем файле зоны DNS выглядит следующим образом:

dkim3._domainkey        IN      TXT     ("v=DKIM1; t=s; p=" 
"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD78Ki2d0zmOlmjYNDC7eLG3af12KrjmPDeYRr3"
"q9MGquKRkRFlY+Alq4vMxnp5pZ7lDaAXXwLYjN91YY7ARbCEpqapA9Asl854BCHMA7L+nvk9kgC0"
"ovLlGvg+hhqIPqwLNI97VSRedE60eS+CwcShamHTMOXalq2pOUw7anuenQIDAQAB")

DNS возвращает его следующим образом:

 bill:~$ host -t TXT dkim3._domainkey.systemajik.com
 dkim3._domainkey.systemajik.com descriptive text "v=DKIM1\; t=s\; p=" "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD78Ki2d0zmOlmjYNDC7eLG3af12KrjmPDeYRr3" "q9MGquKRkRFlY+Alq4vMxnp5pZ7lDaAXXwLYjN91YY7ARbCEpqapA9Asl854BCHMA7L+nvk9kgC0" "ovLlGvg+hhqIPqwLNI97VSRedE60eS+CwcShamHTMOXalq2pOUw7anuenQIDAQAB"

DNS рассматривает его как одну длинную строку без лишних пробелов в местах соединения строк. Все " " последовательности игнорируются.

Если вы используете интерфейс poweradmin для pdns, вы можете просто ввести всю строку dkim в поле ввода.

v=DKIM1;k=rsa;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxtR3bw1Kbh1B7q4+5aWjTj2YEFwv230gcv+NMp4KouOSLdIr0mCMiwDZpY+7zCdks0zMXtz+F5TPij/NkSAxIKBbJqbIO3mvAhgeI0Vy5aQ5prwnIyXUj54po6AsXbv5Ud2tFbGSsdIhvWiC755d3WaFs8mdWFkpSxprlW6PobCzOWDayWGCvsNfHpjmTxHZinkd3TmLQqE/O6Nb1YnRwQwUCLioSyudV+5Bd2+rXZ2V9FYAOiK2aQi2aSTiUaLCVxft9H6xen3JDaKsuu43QMBrhydoJOCV2QaY82IxqE3GgZrlADu6YEOfotdwD2aA9GRwVB88GqdXL8HwgEGTbwIDAQAB;

Если это Амазонский маршрут 53 тогда не используйте символы новой строки (только пробелы) между фрагментами.

"do it" "this way"

"not like"
"this"

Видеть https://serverfault.com/a/763871/80856

Ничего страшного, если размер записи превышает предел UDP в 512 байт, потому что DNS будет использовать TCP.

Это должно быть прозрачно для пользователя, но иногда устройства межсетевого экрана с ошибками (например, Cisco PIX / ASA) будут фильтровать / блокировать эти более крупные запросы.

Я знаю, что это древний пост, но я нашел его сегодня, когда запросил «2048-битный ключ DKIM с UltraDNS». Моя команда DNS попыталась разделить ключ на две части, заключив их в кавычки и пробел между ними. Это заставляло UltraDNS обслуживать 3 пакета (один в центре был пустым), что приводило к несогласованным результатам проверки.

Что сработало для меня в панели управления UltraDNS, так это просто отправить всю запись в кавычках без множественных наборов кавычек, разделителей и т. Д. Теперь работает, как ожидалось.

Если вы используете MySQL / MariaDB в качестве серверной части DNS, например PowerDNS, вы можете изменить размер столбца содержимого.

Длина содержимого PowerDNS по умолчанию - VARCHAR (255).

Таким образом, ваша подпись DKIM будет обрезана до 255 символов.

чтобы исправить это

просто измените размер содержимого через MySQL CLI / MariaDB CLI

mysql -u root -p

USE powerdns;
alter table records modify column content text not null;

перезапустите службу DNS (например, PowerDNS)

service pdns restart