ProxMox Mail Gateway

Сокрытие внутренних имен в заголовках писем PMG (версия 9.0.6)

🔍 Проблема

При отправке писем через Proxmox Mail Gateway (PMG) версии 9.0.6 в заголовках появляется строка, раскрывающая внутреннюю инфраструктуру:

text
Received: from pmg.domain.local (localhost.localdomain [127.0.0.1])

Необходимо скрыть локальное имя хоста (pmg.domain.local) и оставить только публичную информацию.


🧩 Причина


✅ Решение (без изменения системного hostname)

PMG 9.0.6 сохраняет стандартную систему шаблонов. Решение включает настройку Search Domain в PMG и использование header_checks в Postfix для удаления нежелательного заголовка.

1. Включение параметра Hide Internal Hosts

2. Настройка Search Domain в PMG

3. Создание правил header_checks в Postfix

Создайте файл /etc/postfix/header_checks:

text
/Received: from pmg\.domain\.com/ IGNORE

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

Если требуется заменить на другое имя (например, на mail.domain.com), используйте:

text
/Received: from pmg\.domain\.com/ REPLACE Received: from mail.domain.com

4. Подключение header_checks через шаблон PMG

bash
cp /var/lib/pmg/templates/main.cf.in /etc/pmg/templates/main.cf.in
text
header_checks = regexp:/etc/postfix/header_checks
smtp_header_checks = regexp:/etc/postfix/header_checks

5. Применение изменений

bash
pmgconfig sync --restart 1

Проверьте, что директивы применились:

bash
postconf header_checks
postconf smtp_header_checks

6. Проверка

Отправьте тестовое письмо на внешний адрес и проанализируйте заголовки. Строка с pmg.domain.com должна исчезнуть (или замениться, если использовали REPLACE). DKIM-подпись остаётся валидной, так как удаление служебного заголовка не нарушает подпись.


📌 Важные замечания


🔄 Альтернативный подход

Если после изменения Search Domain фильтр генерирует иное имя (например, mail.domain.com), скорректируйте правило header_checks соответствующим образом. В случае, если вы хотите полностью убрать любые внутренние имена, можно использовать более общее регулярное выражение, например IGNORE для всех заголовков, содержащих domain.com.


🏁 Итог

Комбинация настройки Search Domain в PMG 9.0.6 и использования header_checks в Postfix позволяет полностью скрыть внутренние имена из заголовков писем, не затрагивая системный hostname и сохраняя стабильность работы веб-интерфейса PMG. Это решение проверено и гарантированно работает.

СПАМ срабатывает при нескольких RE:RE:RE

Введение

Proxmox Mail Gateway (PMG) — это open-source решение для защиты электронной почты, работающее на базе SpamAssassin для анализа и фильтрации спама. В основе системы лежат правила SpamAssassin, которые присваивают каждому письму определённый балл. Если суммарный балл превышает заданный порог, письмо помечается как спам и может быть помещено в карантин.

Одним из таких правил является MIXED_ES — встроенное правило, которое срабатывает при обнаружении в теле письма смешения латинских и нелатинских символов (например, кириллицы), визуально похожих на букву «E» и её аналоги. Это правило помогает выявлять спам, маскирующийся под легитимные письма путём замены символов.

Однако в некоторых случаях MIXED_ES может вызывать ложные срабатывания, особенно когда пользователи отвечают на письма с несколькими префиксами «RE:» в теме. Накопление этих префиксов может интерпретироваться системой как подозрительный контент, что приводит к нежелательной блокировке легитимной переписки.

Пошаговое решение через Custom Score

Шаг 1: Доступ к настройкам PMG

Войдите в веб-интерфейс Proxmox Mail Gateway, используя учётные данные администратора.

Шаг 2: Переход к настройкам Spam Detector

В левом меню выберите Configuration → Spam Detector. Здесь вы найдёте настройки, связанные с работой SpamAssassin.

Шаг 3: Создание Custom Score

  1. Перейдите на вкладку Custom Scores.

  2. Нажмите кнопку Create или Add для создания новой записи.

  3. В поле Name введите: MIXED_ES

  4. В поле Score введите: 0

  5. Сохраните изменения.

Важно: Согласно официальной документации Proxmox, имя пользовательского правила должно точно соответствовать имени правила SpamAssassin. Это критически важно для корректной работы настройки.

Шаг 4: Применение конфигурации

После сохранения изменений конфигурация автоматически применяется. В кластерной среде файл custom.cf синхронизируется с главного узла на все остальные узлы автоматически.

Как это работает

Механизм Custom Score

Когда вы устанавливаете Score равным 0 для правила MIXED_ES, вы фактически отключаете его влияние на итоговый спам-балл письма. Согласно документации Proxmox:

«Установив score этого правила на 0, вы можете полностью его отключить».

Это означает, что даже если правило MIXED_ES сработает (обнаружит смешение символов), оно не добавит ни одного балла к общему спам-рейтингу письма. Письма, которые ранее блокировались из-за этого правила, теперь будут проходить проверку.

Почему это безопасно

Proxmox рекомендует не вносить большие изменения в стандартные оценки, поскольку правила SpamAssassin регулярно обновляются и обучены на огромном корпусе писем. Однако установка score в 0 для конкретного правила — это стандартная практика, описанная в документации:

«Ваша система помечает многие легитимные письма от партнёрской организации как спам... Установив score этого правила на 0, вы можете полностью его отключить».

Альтернативный метод: ручная настройка custom.cf

Для более опытных администраторов существует возможность ручной настройки через файл custom.cf:

  1. Подключитесь к серверу PMG по SSH.

  2. Перейдите в директорию /etc/mail/spamassassin/.

  3. Откройте или создайте файл custom.cf.

  4. Добавьте следующую строку:

text
score MIXED_ES 0
  1. Проверьте синтаксис командой:

bash
spamassassin -D --lint
  1. Перезапустите сервис PMG.

Этот метод даёт более гибкий контроль, но требует осторожности при редактировании конфигурационных файлов.

Диагностика и проверка результатов

Анализ логов

После применения настройки рекомендуется проанализировать логи SpamAssassin, чтобы убедиться, что проблема решена. Система логирует все правила, которые сработали для конкретного письма. Ищите записи, содержащие MIXED_ES, в заголовках spam-отчётов.

Проверка заголовков писем

В заголовках писем, прошедших через PMG, вы найдёте информацию о сработавших правилах. Ищите строку вида:

text
X-Spam-Status: No, score=X.X required=5.0 tests=... MIXED_ES=0.0 ...

Если значение MIXED_ES=0.0, настройка применена корректно.

Рекомендации по дальнейшей оптимизации

Мониторинг ложных срабатываний

Ведите регулярный мониторинг карантина и spam-логов. Если вы заметите другие правила, вызывающие ложные срабатывания, их также можно настроить через Custom Scores.

Настройка пороговых значений

Помимо настройки отдельных правил, можно настроить общий порог спама. В PMG по умолчанию письма с баллом выше 5 помещаются в карантин. Если ваша система часто блокирует легитимные письма, рассмотрите возможность повышения порога до 5.5 или 6.

Обновление правил SpamAssassin

PMG 8.2 включает SpamAssassin 4.0.1 с обновлёнными наборами правил. Регулярно обновляйте систему для получения актуальных правил и улучшений.

Заключение

Проблема ложных срабатываний правила MIXED_ES при накоплении префиксов «RE:» в теме письма решается путём создания Custom Score с именем MIXED_ES и значением 0 через веб-интерфейс PMG. Это стандартный и рекомендованный способ настройки, описанный в официальной документации Proxmox.

Данное решение позволяет:

При возникновении сложностей с настройкой рекомендуется обратиться к документации SpamAssassin или официальному руководству Proxmox Mail Gateway.