<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>55741</bug_id>
          
          <creation_ts>2025-08-27 15:42:51 +0300</creation_ts>
          <short_desc>postfix-script не умеет работать с smtpd_restriction_classes из main.cf</short_desc>
          <delta_ts>2025-09-09 14:45:00 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>postfix</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Анатолий Кирсанов">kiav1976</reporter>
          <assigned_to name="Gleb F-Malinovskiy">glebfm</assigned_to>
          <cc>glebfm</cc>
    
    <cc>obidinog</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>271487</commentid>
    <comment_count>0</comment_count>
    <who name="Анатолий Кирсанов">kiav1976</who>
    <bug_when>2025-08-27 15:42:51 +0300</bug_when>
    <thetext>Проверял на версии 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 с темой &quot;run-parts /etc/cron.daily&quot; мне обеспечено.

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

Самостоятельно проблему смог только обойти добавив свои &quot;параметры&quot; в /etc/postfix/main.cf.params
Конечно же, при следующем обновлении мое хакерство придется повторять.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272091</commentid>
    <comment_count>1</comment_count>
    <who name="obidinog@basealt.ru">obidinog</who>
    <bug_when>2025-09-08 12:43:40 +0300</bug_when>
    <thetext>Уточните, пожалуйста, полные шаги для воспроизведения ошибки. 
У меня воспроизвести не удалось, возможно что-то сделал не так, как вы.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272120</commentid>
    <comment_count>2</comment_count>
    <who name="Анатолий Кирсанов">kiav1976</who>
    <bug_when>2025-09-08 20:04:54 +0300</bug_when>
    <thetext>(Ответ для obidinog@basealt.ru на комментарий #1)
&gt; Уточните, пожалуйста, полные шаги для воспроизведения ошибки. 
&gt; У меня воспроизвести не удалось, возможно что-то сделал не так, как вы.

Не знаю как лучше. Вот ограничения из 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.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272155</commentid>
    <comment_count>3</comment_count>
    <who name="obidinog@basealt.ru">obidinog</who>
    <bug_when>2025-09-09 14:37:06 +0300</bug_when>
    <thetext>Ошибка воспроизводится
Если добавить параметры из 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 &quot;postconf compatibility_level=3.6&quot; and &quot;postfix reload&quot;
postfix/postfix-script: warning: /etc/postfix/main.cf: unknown parameters: senders_rbl_whitelist_permissive, unknown_sender_domain_permissive</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>