LINUX.ORG.RU
решено ФорумAdmin

Postfix ldap transport

 , ,


0

0

Есть экземпляр постфикса, на нем настроен транспорт для пересылки сообщений для определенного почтового адреса(1@example.com) на другой сервер. ( Остальные опции транспорта работают корректно). При попытке послать с этого сервера на этот почтовый адрес(1@example.com) - ошибка «user unknown in virtual mailbox table». Пользователи берутся из ldap, пользователя (1с@example.com) не заведено на сервере, однако он есть на принимающем сервере. В чем может быть дело? В main.cf указан транспорт, в транспорте - 1@example.com smtp:[mail.example.com]:25

Ответ на: комментарий от Pinkbyte

transport:

* smtp:[relay.domain.com]:25
1@domain.com     smtp:[relay.domain.com]:25
domain.com dovecot:
domain2.com dovecot:
main.cf:
#Where daemon keeps all files.
queue_directory = /var/spool/postfix

#Path to daemon.
command_directory = /usr/sbin

#Path to daemon's commands.
daemon_directory = /usr/libexec/postfix

#Directory for temporary postfix files.
data_directory = /var/lib/postfix

#User owning daemon.
mail_owner = postfix

#Hostname of current server.
myhostname = mail.domain.com

#Domainname.
mydomain = domain.com


#Part added outgoing mails.
myorigin = $mydomain

#Which interfaces to use.
inet_interfaces = all

# Enable IPv4.
inet_protocols = ipv4

#Server accepts mail for this domains.
mydestination = $myhostname, localhost.$mydomain, localhost, pmail.$mydomain, bmail.$mydomain, sint.$mydomain

#Configuration of virtual domains.
virtual_mailbox_maps = ldap:/etc/postfix/ldap_virtual_mailbox_maps.cf
virtual_alias_maps = ldap:/etc/postfix/ldap_virtual_alias_maps.cf
virtual_mailbox_domains = domain.com, domain2.com
virtual_minimum_uid = 5000
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1

#Transport for "DMZ" servers
transport_maps = hash:/etc/postfix/transport

#Authentification configuration.
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous, noplaintext
smtpd_sasl_tls_security_options = noanonymous
smtpd_tls_auth_only = yes
broken_sasl_auth_clients = yes
smtpd_relay_restrictions =
  permit_mynetworks,
  permit_sasl_authenticated,
  reject_unauth_destination

#SSL configuration.
smtpd_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
smtpd_tls_cert_file = /etc/ssl/certs/domain.com.crt
smtpd_tls_key_file = /etc/ssl/certs/domain.com.key
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_tls_session_cache
smtpd_use_tls = yes
smtp_use_tls = yes
smtpd_tls_security_level = may
smtpd_tls_received_header = yes
smtpd_tls_loglevel = 1
smtpd_tls_auth_only = no
tls_random_source = dev:/dev/urandom

#DSPAM
dspam_destination_recipient_limit = 1
smtpd_client_restrictions =
  permit_sasl_authenticated,
  sleep 5,
  reject_unknown_reverse_client_hostname
  check_client_access pcre:/etc/postfix/dspam_filter_access,
  permit

#SPAM
smtpd_sender_restrictions =
  permit_mynetworks,
  reject_non_fqdn_sender,
  reject_sender_login_mismatch,
  permit_sasl_authenticated,
  permit

smtpd_sender_login_maps = ldap:/etc/postfix/ldap_virtual_login_maps.cf

smtpd_recipient_restrictions =
  permit_mynetworks,
  permit_sasl_authenticated,
  reject_unknown_reverse_client_hostname,
  reject_non_fqdn_recipient,
  check_policy_service unix:/var/spool/postfix/postgrey/socket,
  check_policy_service unix:private/spf
  permit

smtpd_reject_unlisted_recipient = yes
spf_time_limit = 3600

disable_vrfy_command = yes
smtpd_etrn_restrictions = reject
smtpd_helo_required = yes
smtpd_error_sleep_time = 5s

#DKIM
milter_default_action = accept
milter_protocol = 2
smtpd_milters =  unix:/var/run/opendkim/opendkim.sock
non_smtpd_milters = unix:/var/run/opendkim/opendkim.sock

#Reject mails for unknown users.
unknown_local_recipient_reject_code = 550
#By headers check we remove some internal information like IP addresses.
header_checks = regexp:/etc/postfix/header_checks
mime_header_checks = regexp:/etc/postfix/header_checks


#Debug level of messages in journal.
debug_peer_level = 2

#Debbuging from default configuration
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         ddd $daemon_directory/$process_name $process_id & sleep 5

#Paths to commands.
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix

n1cew0lf ()
Ответ на: комментарий от n1cew0lf

В порядке бреда - а если порядок записей в transport-файле изменить. Вот так(и сделать postmap потом естественно):

1@domain.com     smtp:[relay.domain.com]:25
domain.com dovecot:
domain2.com dovecot:
* smtp:[relay.domain.com]:25
Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte

Проверено - очередность не меняет ничего. Порядок работы записей: 1)юзер+домен 2)домен 3)звездочка

n1cew0lf ()

ldap точно работает ? - postmap -q что по этому поводу сообщает ? - карта ldap работает в chroot, т.е. если там есть ссылки, например на сертификаты, то они будут браться из /var/spool/postfix/...

anonymous ()
Ответ на: комментарий от anonymous

Ldap точно работает, хотя бы потому, что все остальные пользователи берутся из него и у них все работает. Судя по ману, постфикс изначально смотрит в ldap, а только потом в транспорт:

This  mapping overrides the default transport:nexthop selection that is
       built into Postfix:

       local_transport (default: local:$myhostname)
              This is the default for final delivery to  domains  listed  with
              mydestination,  and  for  [ipaddress]  destinations  that  match
              $inet_interfaces or $proxy_interfaces. The default nexthop  des-
              tination is the MTA hostname.

       virtual_transport (default: virtual:)
              This  is  the  default for final delivery to domains listed with
              virtual_mailbox_domains. The default nexthop destination is  the
              recipient domain.

       relay_transport (default: relay:)
              This  is  the default for remote delivery to domains listed with
              relay_domains. In order of decreasing  precedence,  the  nexthop
              destination   is   taken   from  relay_transport,  sender_depen-
              dent_relayhost_maps, relayhost, or from the recipient domain.

       default_transport (default: smtp:)
              This is the default for remote delivery to  other  destinations.
              In  order  of  decreasing precedence, the nexthop destination is
              taken       from        sender_dependent_default_transport_maps,
              default_transport,  sender_dependent_relayhost_maps,  relayhost,
              or from the recipient domain.

Соответственно он сначала смотрит то, что входит в локал - а затем то, что в транспорте.

n1cew0lf ()

transport_maps обрабатывается ДО выбора транспорта (virtual/smtp/local/etc - что логично, да?), поэтому у тебя должно всё работать.

У тебя файл /etc/postfix/transport перехеширован после изменений? Замени его на регекспы (pcre), его не нужно хешировать.

blind_oracle ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.