Рейтинг:1

Инструменты, предоставляемые OpenDKIM, не предоставляют подходящую пару ключей для DKIM.

флаг in

я использую opendkim-genkey -b 2048 -t -s по умолчанию -d mydomain.com, в результате файлы default.private и по умолчанию.txt. Да, default.private начинается (правильно, СФАИК) с -----НАЧАТЬ ЗАКРЫТЫЙ КЛЮЧ RSA----- и по умолчанию.txt не превышает 256 символов на сегмент (не нарушает требований к кодированию DNS). opendkim-тестовый ключ ничего не возвращает (без -v) и с -в -в -в это говорит Ключ не защищен (но я не использую DNSSEC), а также Ключ ОК, так что ключ хотя бы минимально корректен согласно opendkim как таковому.

я получаю ошибки

26 сентября, 22:41:49, мой домен opendkim [1793958]: 18R2fhko1843765: ошибка SSL: 0909006C: подпрограммы PEM: get_name: нет стартовой строки
26 сентября, 22:41:49, мой домен opendkim[1793958]: 18R2fhko1843765: dkim_eom(): ресурс недоступен: ошибка PEM_read_bio_PrivateKey()
26 сентября, 22:41:49 mydomain sm-mta[1843765]: 18R2fhko1843765: milter=opendkim, reject=451 4.7.0 ресурс недоступен
26 сентября, 22:41:49 mydomain sm-mta[1843765]: 18R2fhko1843765: Milter: data, reject=451 4.7.0 ресурс недоступен
26 сентября, 22:41:49 mydomain sm-mta[1843765]: 18R2fhko1843765: to=<[email protected]>, delay=00:00:00, pri=30408, stat=ресурс недоступен

Я видел много ссылок на обе ошибки в веб-поиске. Ошибка SSL: 0909006C: подпрограммы PEM: get_name: нет стартовой строки и dkim_eom(): ресурс недоступен: ошибка PEM_read_bio_PrivateKey(), но ничего не помогает. Когда я видел «дело закрыто», это было из-за ошибок реализации пользователя, таких как неправильные разрешения, неверные спецификации местоположения файла или неправильное форматирование ключа / txt, и отправители обычно говорили «извините за шум», но ни один из них дело. Я делаю ТОЧНО, как указано в документации, с ошибками, которые я зарегистрировал выше.

Для тех, кто хотел бы знать, я использую Ubuntu 20.04 LTS и sendmail 8.15.2. Жалоба исходит от подпрограмм opendkim milter vs. SSL, поэтому внешний контекст не должен иметь значения.

Я бы спросил в списке рассылки opendkim, но «lists.opendkim.org» недоступен.Мне нужно, чтобы OpenDKIM работал, чтобы повиноваться Master Goo (помимо того, что это лучшая практика, о, хорошо). Я буду благодарен, если кто-то еще столкнулся с этим, в частности, и может дать рабочий ответ.

Вывод, который я использую, это именно то, что выводит «opendkim-genkey», нет ошибок форматирования, как описано в другом месте, и opendkim-testkey доволен, поэтому, пожалуйста, извините, что я не включил эти фактические данные.

p.s.: opendkim установлен с метко установить opendkim:

opendkim -p /var/run/opendkim.sock -V opendkim:
Фильтр OpenDKIM v2.11.0, скомпилированный с OpenSSL 1.1.1f 31 марта 2020 г.  
СМФИ_ВЕРСИЯ 0x1000001  
либмильтер версии 1.0.1  
Поддерживаемые алгоритмы подписи: rsa-sha1 rsa-sha256 ed25519-sha256  
Поддерживаемые алгоритмы канонизации: расслабленный простой  
Параметры активного кода: QUERY_CACHE USE_DB USE_LDAP USE_LUA USE_ODBX USE_UNBOUND _FFR_ATPS _FFR_RBL _FFR_REPLACE_RULES _FFR_SENDER_MACRO _FFR_STATS _FFR_VBR  
libopendkim 2.11.0: atps query_cache

Ни ключи, сгенерированные opendkim-tool, ни ключи, сгенерированные вручную (согласно документации OpenDKIM), не обходят ошибки.

anx avatar
флаг fr
anx
кросспост: https://askubuntu.com/questions/1365984/cannot-generate-an-acceptable-key-for-opendkim
anx avatar
флаг fr
anx
попробуйте `sudo -u opendkim openssl rsa -noout -modulus -in /path/to/default.private`, чтобы убедиться, что ключевой файл доступен для чтения и соответствует требованиям форматирования ваших библиотек ssl.
anx avatar
флаг fr
anx
Вы получите эту ошибку, если используете неправильную `KeyTable`, которая не будет проверена при передаче пути ключа в `opendkim-testkey`. Пожалуйста [отредактируйте] свой вопрос, чтобы указать полные командные строки, которые вы запускали, и конфигурацию, которую вы использовали.
Рейтинг:1
флаг at

Это ответ, надеюсь: Я попытался скомпилировать OpenDKIM из исходников, но это ни к чему не привело: ошибка PEM ушла, но фильтр дал сбой по другим причинам, фатальным для его использования. Итак, я получил «dk-filter», последняя версия которого устарела, поскольку он использует только SHA1, вызывает «расслабленный» «nofws», обрабатывает только одну канонизацию (расслабленную или простую, а не две, как в «расслабленной/простой», и использует "dns", но не "dns/txt". Я взломал его в соответствии с RFC8301 (который никто не цитирует), и он может работать; он обрабатывает входящую почту и, наконец, дал мне подпись DKIM:

Подпись ключа домена: a=rsa-sha256; с=10191; d=mydarneddomain.com; c=расслабленный/простой; д=днс/текст;
    h=to:from:subject:message-id:date:user-agent:MIME-версия:
    тип контента: кодирование передачи контента: язык контента: x-uctc: x-sdmilter-detected;
    b=kldIuC9j/EIB7ouhRrhxmZBkC7xAazd8RiWHUA/1R0FZK265yeFgf+TPqbfTjErps
    CrkoCn1I2gdMpq8k9ZrdF8RsQk8FeZBVLGE9iY3D2Rkj/ozjdOyHgNaNDCHKfdnpiNp
    4uV/w7ZG8fAEdDwfSoQ3IBvCmxoszV2bzGvzKz+DuT17G8ES3aJcKsdm9+MEHz0VxrB
    EHdOd9ij/EBZFHTMwcLqBWVi+kTvUvzjFK1ssPEO9CHXIWqjBE1gKtfiIDkeJ7kx0w4
    ft8TiPvMb5Z1WyOPWoI6a+tNNz2at1URSYvxMcDi77m93GH5Tcda1fNN/shx9ze9Igw
    DwPHc6mFA==

Поскольку я взломал эту вещь на соответствие и работоспособность (еще не подтверждено на практике, но очень скоро), и поскольку она может работать для всех, у кого не работает OpenDKIM, стоит поделиться, скажем, на github. Я еще не знаю, как это сделать; если кто-то хотел бы помочь с этим, дайте мне знать.

Вещь действительно сырая, даже файла "dk-filter.conf" нет, приходится пользоваться командной строкой; я использую

dk-filter -p inet:8892@localhost -b sv -c расслабленный -d mydarneddomain.com -D -h -H -l -S 10191 -s /etc/dkimkeys/10191.private

хотя -d может относиться к файлу со списком хостов, которые должны быть подписаны (еще не проверены). Это также не «сервис». Если кто-то может процитировать книгу, в которой объясняется, как ее обернуть, например. Ubuntu как сервис, дайте мне знать.

PS: RFC8301 мандаты конкретные значения и запрещает использование SHA1. Сайты, которые проверяют ключи DKIM, могут иметь устаревший комментарий о том, что можно использовать либо sha1, либо sha256. Сейчас нельзя использовать ничего, кроме sha256, и эти комментарии устарели.

флаг us
Я не рекомендую это. При этом используется устаревшая структура «DomainKeys», которую заменяет DKIM (DKIM = «DomainKeys Identified Mail»). Например, он создает неправильное имя заголовка `DomainKey-Signature`. Несмотря на то, что поддержка OpenDKIM прекращена, он по-прежнему широко используется и в целом работает. Полагаю, было бы интересно узнать, почему у вас с этим столько проблем…
Рейтинг:1
флаг at

Я убедился, что ключ правильный (закрытый <==> открытый) и доступен двумя разными способами. Я не использую KeyTable. Мой /etc/opendkim.conf (настоящий домен замаскирован):

Системный журнал да
UMask 007
Домен mydomain.sometld
Ключевой файл /etc/dkimkeys/10191.private
Селектор 10191
Режим v
Сокет инет:8892@localhost
#@Socket local:/run/opendkim/opendkim.sock
PidFile /run/opendkim/opendkim.pid
OversignHeaders From
TrustAnchorFile /usr/share/dns/root.key
ID пользователя

Я держу фильтр в режиме «v», так как «sv» не работает, как указано, и мне нужно только перезапустить milter с «sv» для проверки. Используя opendkim-2.10.3, полученный с opendkim.org: Я взломал libopendkim/dkim.c, используемый milter, чтобы показать мне первые 96 символов (*) попытки ключа, когда он в следующий раз выйдет из строя (в ранние утренние часы, когда никому нет дела). (*) 96 = строка заголовка + первая «строка» ключевых данных.

1135 if (strncmp((char *) dkim->dkim_key, "-----", 5) == 0)
1136 { /* ПОМ */
1137 rsa->rsa_pkey = PEM_read_bio_PrivateKey(rsa->rsa_keydata, NULL,
1138 НУЛЬ, НУЛЬ);
1139 
1140, если (rsa->rsa_pkey == NULL)
1141 {
1142 dkim_load_ssl_errors (dkim, 0);
1143 dkim_error(dkim, "Ошибка PEM_read_bio_PrivateKey()");
1144 // ecsd: мы хотим посмотреть, что не удалось:
1145 символов dbuf[128]; sprintf(dbuf,"dkim_key %96.96s\n",dkim->dkim_key);
1146 dkim_error(dkim, dbuf);
1147 // завершить дополнительную отладку
1148 BIO_free(rsa->rsa_keydata);
1149 rsa->rsa_keydata = NULL;
1150 вернуть DKIM_STAT_NORESOURCE;
1151 }
1152 }

Я должен отладить PEM_read_bio_PrivateKey (чтобы узнать, о чем он скулит), но слишком трепетно ​​перекомпилировать всю эту подсистему, кроме того, жалоба на плохой заголовок, поэтому мне нужно только понять, что пробуется "вместо", так как содержимое закрытого ключа правильное. Между тем, что с opendkim.org, что их список рассылки не работает, а перечисленные контакты на opendkim.org и dkim.org не работают? Вроде все заскучали и пошли домой. Не круто для протокола, который вы хотите повсеместно принять. По крайней мере, код пытается, но, например.Мне пришлось взломать «configure», чтобы он не требовал библиотеки, содержащей SSL_library_init(), что, по словам документа (внешнего мира), исключено (таким образом, код opendkim, похоже, не поддерживается должным образом.)

настроить:
16846 фи
16847 rm contest.$ac_ext
16848 LIBS=$ac_func_search_save_LIBS
16849 фи
16850 #ecsd
16851 $as_echo "для libssl, LIBS:$LIBS"
16852 { $as_echo "$as_me:${as_lineno-$LINENO}: результат: $ac_cv_search_SSL_library_init" >&5
16853 $as_echo "$ac_cv_search_SSL_library_init" >&6; }
16854 ac_res=$ac_cv_search_SSL_library_init
16855 #ecsd:
16856 #if test "$ac_res" != no; тогда :
16857 # test "$ac_res" = "не требуется" || LIBS="$ac_res $LIBS"
16858 #еще
16859 # as_fn_error $? "libssl не найден" "$LINENO" 5
16860 #фи
16861 
16862 
16863 
16864 фи
anx avatar
флаг fr
anx
Существует растущий консенсус по вопросу реализации синтаксических анализаторов на опасно небезопасных для памяти языках, поэтому с тех пор даже [рабочая версия Python] (https://code.launchpad.net/dkimpy-milter) (хотя до сих пор `libmilter `-exclusive) с улучшенными функциями, интерес к надлежащей поддержке старого проекта opendkim был... низким.
anx avatar
флаг fr
anx
Вы, вероятно, захотите использовать *ваши дистрибутивы Linux* исходные коды и последующие исправления, а не (безумно старые) tar-архивы еще до интеграции самых насущных исправлений безопасности. Например. [Debian отслеживает](https://salsa.debian.org/debian/opendkim/-/blob/master/debian/watch) проект github https://github.com/trusteddomainproject/OpenDKIM и по-прежнему содержит дополнительные исправления.
anx avatar
флаг fr
anx
(В Debian/Ubuntu/и т. д. используйте `apt source`, `apt-get build-dep` и `dpkg-buildpackage`, чтобы создать пакет, в основном соответствующий пакету, созданному для вас вашим дистрибьютором!)
флаг at
Что нам делать с ландшафтом, в котором люди продолжают накапливать списки «лучших практик», но согласованные пакеты, которые предоставляют обязательные функции, больше не поддерживаются должным образом, так что «подходящая установка» плюс следование указаниям по настройке приводит к рабочей подсистеме ? Код является гиперуниверсальным. Я не могу быть единственным человеком, столкнувшимся с этой проблемой, и все же мое наблюдение (установите код, попробуйте использовать его, он терпит неудачу) должен повторяться кем угодно, ИЛИ ИНАЧЕ документация/код не рассматривает все фактические зависимости (и несколько человек должны сообщать об ошибках реализации.)
флаг at
Я начал с opendkim-2.10.3.tar.gz, но он считается устаревшим. Но INSTALL из OpenDKIM-master.zip на Github читается почти идентично и четко указывает ```` (4) Запустите сценарий «configure», чтобы настроить пакет для вашей операционной системы. система. ./настроить ```` Когда на самом деле такого нет: /etc/mail/src/OpenDKIM/OpenDKIM-master# найти . -имя настроить (сверчки) Кажется, с такой ерундой столкнутся все, кто попытается использовать эту штуку, и кто-нибудь исправит ее десять лет назад. Таким образом, «все должны использовать 'foo'», но никто не может его установить. ??

Ответить или комментировать

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