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

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

    <bug>
          <bug_id>8616</bug_id>
          
          <creation_ts>2005-12-09 13:02:45 +0300</creation_ts>
          <short_desc>Postfix restriction</short_desc>
          <delta_ts>2005-12-10 10:54:58 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>5</classification_id>
          <classification>Archive</classification>
          <product>ALT Linux 2.4</product>
          <component>postfix</component>
          <version>2.4</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Egorov">egorov</reporter>
          <assigned_to name="Dmitry V. Levin">ldv</assigned_to>
          
          
          <qa_contact name="Andrey Cherepanov">cas</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>33671</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Egorov">egorov</who>
    <bug_when>2005-12-09 13:02:45 +0300</bug_when>
    <thetext>Есть ALT Linux Master 2.4 + Updates + Backports
На нем крутится postfix 2.2.4 из Backports.
Есть задача - ограничить определенного пользователю отправлять почту только в
своем домене.
Есть хорошая статья:
http://www.opennet.ru/base/net/postfix_per_user_acl.txt.html
ну и доки:
http://www.postfix.org/RESTRICTION_CLASS_README.html
Делаю как там указанно (кусок конфига):
smtpd_recipient_restrictions =
check_sender_access hash:/etc/postfix/restricted_senders,
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_unauth_destination
smtpd_restriction_classes = local_only
local_only = check_recipient_access hash:/etc/postfix/local_domains,reject
Создаю файлы:
/etc/postfix/restricted_senders
/etc/postfix/local_domains
Добавляю в restricted_senders:test@host.domain.com local_only
Добавляю в local_domains:host@domain.com OK
Делаю postmap restricted_senders и local_domains.
Пытаюсь отправить почту от test@host.domain.com на mail.ru - пишет Access
denied, т.е. как и должно быть.
Но при попытке отправить письмо other@host.domain.com письмо не доставляется !
Формируется письмо постмастеру с сообщением:
451 Server configuration error
В логах postfix
postfix/smtpd[4553]: warning: unknown smtpd restriction: &quot;local_only&quot;
Долгие пляски с бубном и прочие ни к чему не привели.
Добавил debug в конфиг postfix и получил более подробный лог:
postfix/smtpd[17398]: &gt;&gt;&gt; START Recipient address RESTRICTIONS &lt;&lt;&lt;
postfix/smtpd[17398]: generic_checks: name=check_sender_access
postfix/smtpd[17398]: check_mail_access: user1@host.domain.ru
postfix/smtpd[17398]: ctable_locate: move existing entry key user1@host.domain.ru
postfix/smtpd[17398]: check_access: user1@host.domain.ru
postfix/smtpd[17398]: check_table_result: hash:/etc/postfix/restricted_senders
local_only user1@host.domain.ru
postfix/smtpd[17398]: &gt;&gt;&gt; START Sender address RESTRICTIONS &lt;&lt;&lt;
postfix/smtpd[17398]: generic_checks: name=local_only
postfix/smtpd[17398]: warning: unknown smtpd restriction: &quot;local_only&quot;
postfix/smtpd[17398]: NOQUEUE: reject: RCPT from
localhost.localdomain[127.0.0.1]: 451 Server configuration error;
from=&lt;user1@host.domain.ru&gt; to=&lt;user2@host.domain.ru&gt; proto=SMTP
helo=&lt;host.domain.ru&gt;
postfix/smtpd[17398]: &gt; localhost.localdomain[127.0.0.1]: 451 Server
configuration error 

PS Тоже самое было и на стандартном postfix из дистрибутива Master</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33672</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Egorov">egorov</who>
    <bug_when>2005-12-09 13:06:39 +0300</bug_when>
    <thetext>Вывод postconf -n
alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/lib/postfix
disable_vrfy_command = yes
html_directory = /usr/share/doc/postfix-2.2.4/html
inet_interfaces = all
mail_owner = postfix
mailbox_command = /usr/bin/procmail -a $DOMAIN -d $LOGNAME
mailbox_size_limit = 51200000
mailq_path = /usr/bin/mailq
manpage_directory = /usr/share/man
mydestination = localhost, $myhostname, localhost.$mydomain,
$config_directory/mydestination
mydomain = domain.ru
myhostname = host.domain.ru
mynetworks = $config_directory/mynetworks
myorigin = $myhostname
newaliases_path = /usr/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = /etc/postfix/README_FILES
sample_directory = /etc/postfix/README_FILES
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated,
reject_rbl_client relays.ordb.org,   reject_rbl_client opm.blitzed.org,
reject_unauth_destination, reject_non_fqdn_hostname, reject_non_fqdn_sender
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_etrn_restrictions = permit_mynetworks, reject
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname,
reject_non_fqdn_hostname
smtpd_recipient_restrictions = check_sender_access
hash:/etc/postfix/restricted_senders, permit_mynetworks,
permit_sasl_authenticated, reject_unauth_destination reject_non_fqdn_hostname,
reject_non_fqdn_sender, reject_unauth_destination
smtpd_restriction_classes = local_only
smtpd_sasl_application_name = smtpd
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated,
reject_unknown_sender_domain, reject_unverified_sender,
reject_non_fqdn_hostname, reject_non_fqdn_sender
unknown_local_recipient_reject_code = 550</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33673</commentid>
    <comment_count>2</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2005-12-09 13:12:29 +0300</bug_when>
    <thetext>К сожалению, я этой статьи не читал, и анализировать её возможности у меня не
было.

Если вы всё выполнили строго в соответствии тому как написано в статье, и
считаете что эта статья правильная, то обратитесь, пожалуйста, за советом в
первую очередь к автору статьи.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33674</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Egorov">egorov</who>
    <bug_when>2005-12-09 13:53:24 +0300</bug_when>
    <thetext>(In reply to comment #2)
&gt; К сожалению, я этой статьи не читал, и анализировать её возможности у меня не
&gt; было.
&gt; 
&gt; Если вы всё выполнили строго в соответствии тому как написано в статье, и
&gt; считаете что эта статья правильная, то обратитесь, пожалуйста, за советом в
&gt; первую очередь к автору статьи.
&gt; 
Статью привел только как пример того что кроме RESTRICTION_CLASS_README.html
читал еще что-то.
Сами настройки сделанн полность в соотвествии с документацией
RESTRICTION_CLASS_README.html.
Просто облазил весь инет - ничего не нашел :(
Остается надеятся только на вашу помощь
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33684</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Egorov">egorov</who>
    <bug_when>2005-12-10 10:54:58 +0300</bug_when>
    <thetext>Прошу прощения.
На другом сервере ошибка не повторилась</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>