rspamd в белом списке удаляет ‘.’ из заголовка ‘from’ в электронной почте?

Вопрос или проблема

У меня есть несколько пользователей, которых я внес в белый список с помощью multimap. Это работает нормально, за исключением одного странного случая. Если в имени электронной почты пользователя есть точка (например, [email protected]), перед фильтрацией что-то в rspamd удаляет точку, поэтому адрес отправителя в rspamd.log оказывается [email protected]. Я не знаю, почему это происходит. Мое решение – внести в белый список [email protected] вместо этого. Информация: debian 12, rspamd 3.4.1.

whitelisted_senders.map:

[email protected]

multimap.conf:

whitelisted_senders {
          type = "from";
          filter = "email:addr";
          map = "/etc/rspamd/local.d/maps.d/whitelisted_senders.map";
          symbol = "WHITELISTED_SENDERS";
          description = "Whitelisted senders";
          prefilter = true;
          action = "accept";
}

rspamd.log:

[email protected], qid: , ip: 127.0.0.1, from: [email protected], (default: F (no action): [1.90/15.00] [MISSING_TO(2.00){},MIME_GOOD(-0.10){text/plain;},ARC_NA(0.00){},FREEMAIL_ENVFROM(0.00){gmail.com;},FREEMAIL_FROM(0.00){gmail.com;},FROM_EQ_ENVFROM(0.00){},FROM_NO_DN(0.00){},MIME_TRACE(0.00){0:+;},RCVD_COUNT_ZERO(0.00){0;},TAGGED_FROM(0.00){}]), len: 153, time: 218.069ms, dns req: 6, digest: , rcpts: ZZZZ@XXXXX

Обратите внимание, что WHITELISTED_SENDERS не установлен. Если я использую [email protected] вместо этого, я получаю следующее:

[email protected], qid: , ip: 127.0.0.1, from: [email protected], (default: F (no action): [-0.10/15.00] [MIME_GOOD(-0.10){text/plain;},ARC_NA(0.00){},FREEMAIL_FROM(0.00){gmail.com;},FROM_EQ_ENVFROM(0.00){},FROM_NO_DN(0.00){},MIME_TRACE(0.00){0:+;},WHITELISTED_SENDERS(0.00){[email protected];}]), len: 151, time: 102.886ms, dns req: 6, digest: <17a274776bf4da75de62b5d3621bd797>, rcpts: ZZZ@XXX, forced: no action “Matched map: WHITELISTED_SENDERS”; score=nan (set by multimap)

полученное пользователем письмо, конечно, имеет правильный адрес “от”.

Я полагаю, нет причин не использовать этот обходной путь, но мне бы хотелось понять, что происходит…

Ответ или решение

На первый взгляд, проблема, с которой вы столкнулись при использовании Rspamd, может показаться необычной и даже сбивающей с толку. Проблема заключается в том, что при фильтрации писем с использованием правила whitelist у вас исчезает символ точки (‘.’) в именах отправителей. Давайте разберемся, почему это может происходить и как это исправить.

Теория:

Rspamd — это мощный инструмент для спам-фильтрации, который предлагает множество возможностей для конфигурирования и персонализации. Он работает на основе набора правил и использует различные подходы для анализа и фильтрации электронной почты. Ваша конфигурация использует функцию "multimap" для создания белого списка отправителей, однако, по какой-то причине символы точки в адресах email изменяются на другие символы в логах Rspamd.

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

Пример:

Предположим, что ваш конфиг multimap имеет следующее содержание:

whitelisted_senders {
    type = "from";
    filter = "email:addr";
    map = "/etc/rspamd/local.d/maps.d/whitelisted_senders.map";
    symbol = "WHITELISTED_SENDERS";
    description = "Whitelisted senders";
    prefilter = true;
    action = "accept";
}

В этой конфигурации указано, что все email-адреса, перечисленные в файле whitelisted_senders.map, будут приняты без дальнейшей фильтрации. Однако проблема заключается в том, что при обработке, например, адреса user.name@gmail.com, регистрируется username@gmailcom, что приводит к сбоям в корректной идентификации whitelisted отправителей.

Применение:

  1. Проверка кодировки и разобранных значений:

    • Удостоверьтесь, что все email-адреса в вашем файле whitelisted_senders.map находятся в корректной кодировке. Проблемы с кодировкой могут привести к непредсказуемом обработке строк.
  2. Изучение источника изменения:

    • Проверьте, может ли это поведение быть вызвано любыми плагинами или дополнительными модулями Rspamd. Обработчики на уровне сети или дополнительные компоненты могут некорректно обработать заголовки email.
  3. Логирование и отладка:

    • Увеличьте уровень логирования для Rspamd, чтобы попытаться понять, на каком этапе происходит изменение email-адреса. Это может быть достигнуто добавлением более детализированного уровня логирования в конфигурацию Rspamd.
log_modules = ["multimap"]; # проверка того, как обрабатывается multimap
  1. Обновление и патчи:

    • Проверьте, есть ли обновления для используемой версии Rspamd (3.4.1 в вашем случае), так как описанное поведение может быть связано с известной проблемой или багом, который был исправлен в более поздних версиях.
  2. Альтернативные обходные пути:

    • Пока вы решите основную проблему, можно продолжать использовать workaround, как вы предложили, путем добавления исправленного адреса в белый список без точки.
  3. Обсуждение с сообществом:

    • Рассмотрите возможность размещения этой проблемы на форумах или в сообществе Rspamd. Возможно, другие пользователи сталкивались с аналогичными проблемами и могут предложить решения или объяснения.
  4. Анализ исходного кода:

    • Если у вас есть навыки программирования, возможно, стоит заглянуть в исходный код Rspamd, отвечающий за разбор заголовков и обработку адресов из multimap, чтобы понять, как происходит обработка и какие механизмы могут вызвать исчезновение точки.

Следуя этим шагам, вы сможете больше понять причину проблемы и, возможно, найдёте способ её устранения, обеспечив корректную работу вашего спам-фильтра на основе Rspamd.

Оцените материал
Добавить комментарий

Капча загружается...