Tornar o postfix local (8) tempfail na interrupção do LDAP

2

Eu tenho um sistema Unix onde as contas de usuário existem somente no LDAP. Estou usando libnss-ldapd com nscd para fazer isso e funciona muito bem. O postfix entrega emails como esperado em circunstâncias normais.

No entanto, no caso de o servidor LDAP estar inativo e o mapa do usuário não estar totalmente armazenado em cache no nscd, os usuários parecem não existir (ou seja, getent passwd username não retorna nenhum resultado), portanto o local (8) rígido envia e-mails com um Erro "usuário desconhecido". Isso é muito ruim .

A configuração atual inclui:

smtpd_smtpd_reject_unlisted_recipient = yes
local_recipient_maps = $alias_maps, ldap:/etc/postfix/ldap-passwd.cf
mailbox_transport_maps = ldap:/etc/postfix/ldap-passwd.cf

O correio proveniente de SMTP é tempfails corretamente quando o serviço LDAP não está disponível. No entanto, os e-mails originados neste host (por exemplo, usando o mail (1)) não.

Apr 25 15:25:33 testmail postfix/local[5972]: warning: dict_ldap_lookup: Search error -1: Can't contact LDAP server
Apr 25 15:25:33 testmail postfix/local[5972]: 29B4847DB: to=<ENVELOPE_TO_ADDRESS>, orig_to=<ENVELOPE_FROM_ADDRESS>, relay=local, delay=0.12, delays=0.01/0/0/0.11, dsn=5.1.1, status=bounced (unknown user: "ENVELOPE_TO_ADDRESS_LOCALPART")

Tenho quase certeza de que o mapa está configurado corretamente porque tudo funciona se o serviço LDAP estiver disponível, incluindo o caso em que o NSS não consegue ver o mapa LDAP porque o nslcd está parado. Deixar mailbox_transport_maps como padrão (vazio) produz os mesmos resultados, exceto sem o erro de conexão LDAP. Não há melhorias se o proxymap (8) for usado.

Como faço o Postfix adiar (em vez de rejeitar) as mensagens recebidas quando o LDAP está inativo?

Esta questão foi editada significativamente desde que foi perguntada pela primeira vez. A pergunta original perguntou como fazer o smtpd (8) tempfail quando o LDAP não está disponível; Acontece que já estava fazendo isso. O problema real foi mais tarde no processo de entrega.

Possivelmente relacionado:

por Anonymoose 25.04.2011 / 04:09

1 resposta

1

Acontece que foi um erro no postfix . O autor aplicou essa correção de correção na versão 2.8.4 , 2.7.5, 2.6.11 e 2.5.14 .

Fixed with Postfix version:

  • ...

  • The local(8) delivery agent ignored table lookup errors in mailbox_command_maps, mailbox_transport_maps, fallback_transport_maps and (while bouncing mail to alias) alias owner lookup.

    
por 11.05.2011 / 17:52

Tags