[FUG-BR] [1/2 OT] LDAP+Postfix (Integração simples para um único dominio): não funciona

Vinicius Abrahao vinnix.bsd em gmail.com
Terça Maio 26 12:11:58 BRT 2009


Olá pessoal, muito boa tarde,

Primeiro gostaria de me desculpar por este post, que além de ser 1/2 Off
Topic, foi enviado anteriormente pra postfix-br.
(perdoem-me que assina as duas listas:
http://listas.softwarelivre.org/pipermail/postfix-br/2009-May/028811.html
).

Estou a algum tempo lendo e investigando mais sobre a integração entre o
LDAP (mais especificamente o openldap) e o postfix.
Li algumas [1,2,3,4,5,6] coisas na internet que encontrei graças ao google.
Porem ainda não obtive sucesso na minha implantação/teste.

Pretendo montar um pequeno how-to pra deixar na FUG com esses meus estudos.

Oque ocorre?: PARECE que está tudo certo, mas quando o postfix precisa
"enchergar" o usuário do LDAP ele não "encherga".
Me retornando uma estranha msg: *(unknown user: "dzguzzi")*

Vale lembrar que embora tenho essas linhas nas configurações:
mydomain = corp.triarius.com.br
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
mail.$mydomain, www.$mydomain, ftp.$mydomain, triarius.dyndns.org

Não preciso de ambiente virtual de email, ou seja, pra qualquer desses
dominios especificados no mydestination, o usuário que estiver no LDAP
deveria ser válido e conseguir receber
o email. Pelo menos é isso que eu gostaria, mas não vai.

A seguir as informações detalhadas:
Muito obrigado pelo seu interesse e ajuda. E desculpe-me pelo longo email.
Vinícius

1-) Tento enviar um email para um usuário que eu sei que existe em minha
base LDAP:

# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.corp.triarius.com.br ESMTP Postfix
HELO corp.triarius.com.br
250 mail.corp.triarius.com.br
MAIL FROM: vinnix em corp.triarius.com.br
250 2.1.0 Ok
RCPT TO: dzguzzi em corp.triarius.com.br
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
TESTE DE ENVIO postfix-br!
.
250 2.0.0 Ok: queued as A77BE33C0F

2-) Observo o seguinte erro nos logs (/var/log/maillog)

May 24 19:27:11 thome postfix/smtpd[79328]: connect from
localhost[127.0.0.1]
May 24 19:27:45 thome postfix/proxymap[79642]: nss_ldap: reconnecting to
LDAP server (sleeping 1 seconds)...
May 24 19:27:47 thome last message repeated 2 times
May 24 19:27:48 thome postfix/smtpd[79328]: A77BE33C0F:
client=localhost[127.0.0.1]
May 24 19:27:48 thome postfix/trivial-rewrite[79645]: nss_ldap: reconnecting
to LDAP server (sleeping 1 seconds)...
May 24 19:28:55 thome postfix/cleanup[79368]: A77BE33C0F: message-id=<
20090524222748.A77BE33C0F em mail.corp.triarius.com.br>
May 24 19:28:55 thome postfix/qmgr[90630]: A77BE33C0F: from=<
vinnix em corp.triarius.com.br>, size=409, nrcpt=1 (queue active)
May 24 19:28:56 thome postfix/bounce[79690]: nss_ldap: reconnecting to LDAP
server (sleeping 1 seconds)...
*[PROBLEMA]May 24 19:28:57 thome postfix/local[79688]: A77BE33C0F: to=<
dzguzzi em corp.triarius.com.br>, relay=local, delay=86, delays=84/0.63/0/1,
dsn=5.1.1, status=bounced (unknown user: "dzguzzi")*
May 24 19:28:57 thome postfix/cleanup[79368]: 1F6F333C14: message-id=<
20090524222857.1F6F333C14 em mail.corp.triarius.com.br>
May 24 19:28:57 thome postfix/bounce[79690]: A77BE33C0F: sender non-delivery
notification: 1F6F333C14
May 24 19:28:57 thome postfix/qmgr[90630]: 1F6F333C14: from=<>, size=2319,
nrcpt=1 (queue active)
May 24 19:28:57 thome postfix/qmgr[90630]: A77BE33C0F: removed
May 24 19:28:57 thome postfix/local[79688]: 1F6F333C14: to=<
vinnix em corp.triarius.com.br>, relay=local, delay=0.04, delays=0.03/0/0/0.01,
dsn=2.0.0, status=sent (delivered to mailbox)
May 24 19:28:57 thome postfix/qmgr[90630]: 1F6F333C14: removed

3-) Faço o seguinte teste para ver se o meu usuário existe. Mas sei que ele
existe na base ldap[7]:

# id dzguzzi
uid=1000(dzguzzi) gid=513(Domain Users) groups=513(Domain Users)

4-) Minhas configurações (postconf -n):

# postconf -n
alias_database = hash:/etc/mail/aliases
alias_maps = hash:/etc/mail/aliases, ldap:/usr/local/etc/postfix/
ldap-aliases.cf
command_directory = /usr/local/sbin
config_directory = /usr/local/etc/postfix
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix
debug_peer_level = 2
html_directory = no
inet_interfaces = $myhostname, localhost, triarius.dyndns.org
local_recipient_maps = proxy:unix:passwd.byname $alias_maps
ldap:/usr/local/etc/postfix/ldap-aliases.cf
mail_owner = postfix
mailq_path = /usr/local/bin/mailq
manpage_directory = /usr/local/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
mail.$mydomain, www.$mydomain, ftp.$mydomain, triarius.dyndns.org
mydomain = corp.triarius.com.br
myhostname = mail.corp.triarius.com.br
mynetworks = 168.168.1.0/26, 127.0.0.0/8
mynetworks_style = subnet
myorigin = $mydomain
newaliases_path = /usr/local/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = no
sample_directory = /usr/local/etc/postfix
sendmail_path = /usr/local/sbin/sendmail
setgid_group = maildrop
unknown_local_recipient_reject_code = 550

5-) Conteúdo do meu arquivo ldap-aliases.cf:

server_host = 192.168.1.1
search_base = dc=corp,dc=triarius,dc=com,dc=br
bind = no
query_filter = mail=%s
result_attribute = uid

6-) Estou usando o FreeBSD i386 - 7.2-STABLE

# pkg_info | grep postfix
postfix-current-2.6.20090418,4 A secure alternative to widely-used Sendmail

As informações pertinentes, que eu consiga me lembrar são essas. Se alguem
precisar de mais alguma coisa
eu vou postando aqui.

[1] http://www.postfix.org/LDAP_README.html
[2] http://www.postfix.org/ldap_table.5.html
[3]
http://blog.al-shami.net/index.php/freebsd-postfix-dovecot-and-active-directory/
[4] http://wanderingbarque.com/howtos/mailserver/mailserver.html
[5] http://freshrpms.net/docs/mail-server/
[6] http://www.linuxmail.info/postfix-dovecot-ldap-centos-5/

[7] Entrada do usuário no ldap (ldiff):

dn: uid=dzguzzi,ou=People,dc=corp,dc=triarius,dc=com,dc=br
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount

objectClass: sambaSamAccount
cn: dzguzzi
sn: dzguzzi
givenName: dzguzzi
uid: dzguzzi
uidNumber: 1000
gidNumber: 513
homeDirectory: /home/dzguzzi
loginShell: /usr/sbin/nologin
gecos: Ldap User

userPassword: {CRYPT}$--------------------------
shadowLastChange: 14382
shadowMax: 45
sambaDomainName: CORP_TRIARIUS
sambaAcctFlags: [XU         ]
sambaPrimaryGroupSID: S-1-5-21-3152489249-2118460761-1083238632-513

sambaSID: S-1-5-21-3152489249-2118460761-1083238632-3000
sambaLMPassword: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
sambaNTPassword: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
sambaPwdLastSet: 1242668513
sambaHomeDrive: U:
mail: dzguzzi em corp.triarius.com.br


[8] Algumas informações obtidas no /var/log/debug.log (exatamente quando o
postfix faz a procura pelo usuário):

May 24 19:41:42 thome slapd[841]: conn=12554 fd=100 ACCEPT from IP=
192.168.1.1:49543 (IP=0.0.0.0:389)
May 24 19:41:42 thome slapd[841]: conn=12554 op=0 SRCH
base="dc=corp,dc=triarius,dc=com,dc=br" scope=2 deref=0 filter="(mail=
dzguzzi em corp.triarius.com.br)"
May 24 19:41:42 thome slapd[841]: conn=12554 op=0 SRCH attr=uid
May 24 19:41:42 thome slapd[841]: conn=12554 op=0 SEARCH RESULT tag=101
err=0 nentries=1 text=


Mais detalhes sobre a lista de discussão freebsd