Bug 55741 - postfix-script не умеет работать с smtpd_restriction_classes из main.cf
Summary: postfix-script не умеет работать с smtpd_restriction_classes из main.cf
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: postfix (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Gleb F-Malinovskiy
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-08-27 15:42 MSK by Анатолий Кирсанов
Modified: 2025-09-09 14:45 MSK (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Анатолий Кирсанов 2025-08-27 15:42:51 MSK
Проверял на версии 3.8.6 (alt1). До перехода на P11 была у меня версия 3.6.2. И не припомню, чтобы болячка была.

Получить проблему можно использовав директиву

smtpd_restriction_classes =
    unknown_sender_domain_permissive,
    senders_rbl_whitelist_permissive
(в одну строчку тоже писал, дело не в этом)

Сами классы определены ниже (выше тоже делал). И почтовый сервер работает прекрасно, все ограничения обрабатываются правильно. Дело не в postfix, а процедуре проверки корректности настроек.

Вылезает ошибка так:

# /usr/sbin/postfix check
postfix-script: warning: /etc/postfix/main.cf: unknown parameters: senders_rbl_whitelist_permissive, unknown_sender_domain_permissive
(мне пришлось сконструировать текст, ошибку устранил)

Сам postfix check запускается при старте и рестарте postfix, и cron делает это (проверку) ежедневно. Так что письмо от cron с темой "run-parts /etc/cron.daily" мне обеспечено.

Проверка настроек делается в /usr/libexec/postfix/postfix-script в функции print_unknown_params. Эта функция пришла с патчем от Альта (в апстриме ее нет).

Самостоятельно проблему смог только обойти добавив свои "параметры" в /etc/postfix/main.cf.params
Конечно же, при следующем обновлении мое хакерство придется повторять.
Comment 1 obidinog@basealt.ru 2025-09-08 12:43:40 MSK
Уточните, пожалуйста, полные шаги для воспроизведения ошибки. 
У меня воспроизвести не удалось, возможно что-то сделал не так, как вы.
Comment 2 Анатолий Кирсанов 2025-09-08 20:04:54 MSK
(Ответ для obidinog@basealt.ru на комментарий #1)
> Уточните, пожалуйста, полные шаги для воспроизведения ошибки. 
> У меня воспроизвести не удалось, возможно что-то сделал не так, как вы.

Не знаю как лучше. Вот ограничения из main.cf

smtpd_client_restrictions = reject_unknown_client_hostname

smtpd_helo_restrictions = reject_invalid_helo_hostname,
    reject_non_fqdn_helo_hostname,
    check_helo_access cdb:$config_directory/helo_checks,
    reject_unknown_helo_hostname

smtpd_restriction_classes =
    unknown_sender_domain_permissive,
    senders_rbl_whitelist_permissive

smtpd_sender_restrictions = reject_non_fqdn_sender,
    check_sender_access cdb:$config_directory/unknown_sender_domain_whitelist,
    reject_unknown_sender_domain,
    unknown_sender_domain_permissive

unknown_sender_domain_permissive = check_sender_access cdb:$config_directory/fake_senders,
    check_sender_mx_access cidr:$config_directory/bogus_mx,
    check_policy_service unix:private/policyd-spf,
    check_sender_access cdb:$config_directory/senders_rbl_whitelist,
    reject_rbl_client bl.score.senderscore.com
    senders_rbl_whitelist_permissive

senders_rbl_whitelist_permissive = check_sender_access cdb:$config_directory/senders_whitelist,
    reject_unverified_sender,
    permit

smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

smtpd_recipient_restrictions = reject_non_fqdn_recipient, reject_unknown_recipient_domain

smtpd_data_restrictions = reject_multi_recipient_bounce,
    reject_unauth_pipelining

smtpd_etrn_restrictions =  permit_mynetworks,
    permit_sasl_authenticated,
    reject

Без классов ограничений нельзя вернуть что-то из SPF политики или какой-либо таблицы, кроме OK или PERMIT. К примеру, если проверка SPF прошла, у меня обходится проверка reject_rbl_client.
Comment 3 obidinog@basealt.ru 2025-09-09 14:37:06 MSK
Ошибка воспроизводится
Если добавить параметры из https://bugzilla.altlinux.org/show_bug.cgi?id=55741#c2 в /etc/postfix/main.cf то проверка не проходит

# /usr/sbin/postfix check
postfix: Postfix is using backwards-compatible default settings
postfix: See /usr/share/doc/postfix-3.8.6/README_FILES/COMPATIBILITY_README for details
postfix: To disable backwards compatibility use "postconf compatibility_level=3.6" and "postfix reload"
postfix/postfix-script: warning: /etc/postfix/main.cf: unknown parameters: senders_rbl_whitelist_permissive, unknown_sender_domain_permissive