Замена заголовков в Postfix через Header Checks

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

Как работает замена заголовков в Postfix

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

header_checks — указывает путь к файлу с правилами для входящих писем.

smtp_header_checks — указывает путь к файлу с правилами для исходящих писем.

Механизм работы правил

Правила обработки заголовков строятся на основе регулярных выражений. Postfix поддерживает два формата:

POSIX — базовый синтаксис регулярных выражений.

PCRE (Perl Compatible Regular Expressions) — более мощный и гибкий синтаксис, который рекомендуется использовать для сложных сценариев.

Если строка, соответствующая правилу, найдена в заголовках письма, могут быть выполнены следующие действия:

  • OK — пропустить сообщение без изменений.
  • REJECT — отклонить письмо.
  • IGNORE — удалить строку из заголовка.
  • REPLACE — заменить строку или её часть.
  • REDIRECT — перенаправить письмо на другой адрес.

Подготовка сервера

Установите модуль PCRE

Для использования регулярных выражений PCRE нужно установить соответствующий пакет:

Для систем на основе DEB:

apt install postfix-pcre

Система на основе RPM:

yum install postfix-pcre

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

Настройка Postfix

Для включения правил открываем файл конфигурации:

nano /etc/postfix/main.cf

Добавляем в него строки:

header_checks = pcre:/etc/postfix/header_checks
smtp_header_checks = pcre:/etc/postfix/smtp_header_checks

Если вам нужны правила только для исходящих писем, то добавляйте smtp_header_checks, а header_checks удалите. Если планируете работать и с входящими и с исходящими, то оставляйте оба правила.

Создаем файлы правил

Далее создаем два файла, в которых будем прописывать наши правила:

touch /etc/postfix/header_checks
touch /etc/postfix/smtp_header_checks

После этого перезапускаем Postfix:

systemctl restart postfix

Теперь наш сервер готов к настройке правил.

Примеры правил

Скрытие IP-адресов

Удалим заголовки, содержащие IP-адреса, в исходящих письмах. Для этого используем smtp_header_checks.

Открываем файл с правилами:

nano /etc/postfix/smtp_header_checks

И добавляем туда следующие строки:

/^X-Mailer:/            IGNORE
/^Received:/            IGNORE
/^User-Agent:/          IGNORE
/^X-Original-IP:/       IGNORE
/^X-Mailer-Type:/       IGNORE

Выходим из nano и сохраняем изменения. После сохранения перезапустите Postfix:

systemctl restart postfix

Теперь заголовки с указанными ключами будут удаляться из исходящих писем.

Замена темы письма

Предположим, нужно заменить тему письма на фиксированную строку для всех входящих сообщений.

Добавьте правило в файл /etc/postfix/header_checks:

/^Subject: .*/ REPLACE Subject: Новая тема письма

Перезапустите Postfix:

systemctl restart postfix

Удаление ненужных заголовков

Чтобы удалить лишние заголовки, добавьте следующие правила:

/^X-Spam-Status:/       IGNORE
/^X-Spam-Level:/        IGNORE
/^X-AntiVirus:/         IGNORE

Перенаправление письма

Перенаправим все письма с определённым заголовком на другой адрес. Например, перенаправление всех писем с темой “Администратору”:

/^Subject: .*Администратору.*/ REDIRECT admin@mydomain.com

Заключение

Используя header_checks и smtp_header_checks, можно гибко управлять обработкой заголовков писем в Postfix. PCRE обеспечивает мощные возможности для создания сложных правил, позволяя решать задачи удаления, замены и фильтрации заголовков. Правильно настроенные правила повышают безопасность и удобство работы почтового сервера.

Помогла статья? Подписывайся на Telegram канал автора.

Анонсы всех статей, много другой полезной и интересной информации, которая не попадает на сайт.

Если у вас имеются вопросы, задавайте их в комментариях.

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