Эффективная работа почтового сервера требует гибкой настройки обработки заголовков писем. 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 канал автора.
Анонсы всех статей, много другой полезной и интересной информации, которая не попадает на сайт.
Если у вас имеются вопросы, задавайте их в комментариях.