RSPAMD + DKIM Signing: Как иметь возможность использовать один ключ DKIM для нескольких доменов?

Я смог настроить единый ключ DKIM для нескольких доменов с OPENDKIM, используя их KeyTables и SigningTable. Но с тех пор, как компания начала использовать RSPAMD, я больше не мог использовать OPENDKIM вместе с RSPAMD, и мне требовалось использовать DKIM Signing Module от RSPAMD.

Это долгая история, но я оказался в ситуации, когда мне нужно настроить единый ключ DKIM для доменов других брендов компании. Обычно я делал это в OPENDKIM:

*@maincorp.com mail._domainkey.maincorp.com
*@brand1.com mail._domainkey.maincorp.com
*@brand2.com mail._domainkey.maincorp.com

Но как это сделать в RSPAMD DKIM Signing? Я пробовал несколько способов, но безуспешно, просматривая и используя документы RSPAMD. Можно ли использовать один ключ DKIM для нескольких доменов. DKIM-подпись в RSPAMD, как и в OPENDKIM?

Обратите внимание, что пока что не было в моих попытках:

По схеме 1-к-1 это подписание DKIM с разными ключами DKIM для разных доменов работали до сих пор. Но мне нужна схема 1 к N, 1 ключ DKIM для нескольких доменов.

Для примечаний:

  1. Я понял, что могу просто добавить запись CNAME, указывающую на maincorp.com _domainkey для доменных имен всех брендов. Но все доменные имена брендов зарегистрированы в регистраторе доменов другой страны, к которому у меня нет непосредственного доступа (это была бы довольно длительная бюрократия), поэтому это маловероятно.
  2. Я использовал Opendkim и Spamassassin, и мне назначили этот вопрос под номером. 1 работает хорошо, но теперь, когда Spamassassin заменен на RSPAMD, а Opendkim больше не используется.

Спасибо,

Томас

Вот моя конфигурация подписи DKIM в local.d / dkim_signing.conf:

Мой local.d / dkim_signing.conf:

enabled = true;

If false, messages with empty envelope from are not signed
allow_envfrom_empty = true;

# If true, envelope/header domain mismatch is ignored
allow_hdrfrom_mismatch = false;

# If true, multiple from headers are allowed (but only first is used)
allow_hdrfrom_multiple = false;

# If true, username does not need to contain matching domain
allow_username_mismatch = true;

# If false, messages from authenticated users are not selected for signing
auth_only = true;

# Default path to key, can include '$domain' and '$selector' variables
#path = "/etc/opendkim/userkeys/$domain/$selector.private";
path = "/etc/opendkim/keys/mailcorp.com/mail.private";

# Default selector to use
#selector = "default";
selector = "mail";

# If false, messages from local networks are not selected for signing
sign_local = true;

# Map file of IP addresses/subnets to consider for signing
# sign_networks = "/some/file"; # or url
# Symbol to add when message is signed
symbol = "DKIM_SIGNED";

# Whether to fallback to global config
try_fallback = false;
selector_map = "/etc/rspamd/dkim_selectors.map";
path_map = "/etc/rspamd/dkim_paths.map";

# Domain to use for DKIM signing: can be "header" (MIME From), "envelope" (SMTP From) or "auth" (SMTP username)
use_domain = "header";

# Domain to use for DKIM signing when sender is in sign_networks ("header"/"envelope"/"auth")
use_domain_sign_networks = "header";

# Domain to use for DKIM signing when sender is a local IP ("header"/"envelope"/"auth")
use_domain_sign_local = "header";

# Whether to normalise domains to eSLD
use_esld = false;

# Whether to get keys from Redis
# Not using redis, keys coming from files in /etc/opendkim
use_redis = false;

# Hash for DKIM keys in Redis
key_prefix = "DKIM_KEYS";

Мой /etc/rspamd/dkim_selectors.map:

maincorp.com mail
brand1.com mail
brand2.com mail

и мой /etc/rspamd/dkim_paths.map:

maincorp.com /etc/opendkim/keys/mancorp.com/mail.private
brand1.com /etc/opendkim/keys/mancorp.com/mail.private
brand2.com /etc/opendkim/keys/mancorp.com/mail.private

Используя конфигурацию выше на локальном .d / dkim_signing.conf приводит к следующим результатам:

  • Когда электронное письмо отправляется с @ mailcorp.com, у него нет проблем и DKIM будет подписано. Почему? потому что у DNS mailcorp.com есть _domainkey.
  • Но когда письмо отправляется с @ brand1.com и @ brand2.com DKIM не будет подписан, если я не добавлю запись CNAME в brand1.com и brand2.com, чего я не хотел с первого раза время.

Что необходимо сделать (ГЛАВНАЯ ЦЕЛЬ), которая еще не ДОСТИЖЕНА с использованием приведенной выше конфигурации, так это и мне нужна ваша помощь:

Цель состоит в том, чтобы дать возможность для brand1.com и brand2.com подписать с помощью существующего единственного ключа DKIM, который уже был реализован в записи TXT на maincorp.com, без необходимости добавлять CNAME или запись TXT _domainkey в каждую панель DNS brand1.com и brand2.com.

Что касается maincorp.com, он уже работает, потому что у него есть запись TXT для mail._domainkey.maincorp.com в панели DNS. Но не работает для brand1.com и brand2.com.

Пожалуйста, помогите ...

ОБНОВЛЕНИЕ от 9 апреля 2019 г .:

Я обнаружил, что эта функция, которая мне нужна, к сожалению, еще не поддерживается RSPAMD, по крайней мере, на момент допроса. Что ж, надеюсь, тогда они его включат.

Итак, сейчас мне просто нужно добавить запись CNAME в brand1.com и brand2.com, чтобы DKIM был действителен и подписан :(.

Большое спасибо за терпение и помощь! Удачи! день!

0
задан 9 April 2019 в 09:09
1 ответ

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

key_table = [ 
  "maincorp.com maincorp.com:dkim:/var/lib/rspamd/dkim/dkim.key"
];
signing_table = [ 
  "*@maincorp.com maincorp.com",
  "*@brand1.com maincorp.com",
  "*@brand2.com maincorp.com"
];

В качестве альтернативы просто подпишите каждый домен

signing_table = [ 
  "* maincorp.com",
];

В результате получится следующая подпись dkim:

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maincorp.com;
    s=dkim; t=[...];
    h=from:from:reply-to:subject:subject:date:date:message-id:message-id:to:
     cc; bh=[...];
    b=[...]

Официальная документация rspamd dkim_signing

2
ответ дан 26 June 2020 в 08:20

Теги

Похожие вопросы