====== Integração com o OpenLDAP ======
Instalação do modulo de integração:
root@mail:~# postconf -m | grep ldap
root@mail:~# aptitude install postfix-ldap
root@mail:~# postconf -m | grep ldap
ldap
root@mail:~# mkdir /etc/postfix/ldap
Dominios virtuais:
root@mail:~# cat /etc/postfix/ldap/vmd.cf
server_host = ldap.exemplo.org
server_port = 389
bind_dn = cn=admin,dc=exemplo,dc=org
bind_pw = 123456
search_base = dc=exemplo,dc=org
query_filter = (&(ou=%s))
result_attribute = ou
version = 3
bind = yes
timeout = 30
Mapeamento de usuários logados:
root@mail:~# cat /etc/postfix/ldap/vms.cf
server_host = ldap.exemplo.org
server_port = 389
bind_dn = cn=admin,dc=exemplo,dc=org
bind_pw = 123456
search_base = dc=exemplo,dc=org
query_filter = (&(objectClass=qmailUser)(accountStatus=A)(|(mail=%s)(mailAlternateAddress=%s)))
result_attribute = mail,mailAlternateAddress
version = 3
bind = yes
timeout = 30
Mapeamento de encaminhamento de e-mails:
root@mail:~# cat /etc/postfix/ldap/vma.cf
server_host = ldap.exemplo.org
server_port = 389
bind_dn = cn=admin,dc=exemplo,dc=org
bind_pw = 123456
search_base = dc=exemplo,dc=org
query_filter = (&(objectClass=qmailUser)(mailAlternateAddress=%s))
result_attribute = mail
version = 3
bind = yes
timeout = 30
root@mail:~# postconf -e "virtual_mailbox_domains = ldap:/etc/postfix/ldap/vmd.cf"
root@mail:~# postconf -e "smtpd_sender_login_maps = ldap:/etc/postfix/ldap/vms.cf"
root@mail:~# postconf -e "virtual_alias_maps = ldap:/etc/postfix/ldap/vma.cf"
root@mail:~# tail -n3 /etc/postfix/master.cf
## Entrega via LDA Dovecot
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient}
root@mail:~# systemctl restart postfix
root@mail:~# perl -MMIME::Base64 -e 'print encode_base64("\000bob\@exemplo.org\000123456");'
AGJvYkBleGVtcGxvLm9yZwAxMjM0NTY=
root@mail:~# telnet localhost 25
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 Bem Vindo - mail.exemplo.org
EHLO mail.exemplo.org
250-mail.exemplo.org
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH PLAIN
334
AGJvYkBleGVtcGxvLm9yZwAxMjM0NTY=
235 2.7.0 Authentication successful
MAIL FROM:
250 2.1.0 Ok
RCPT TO:
250 2.1.5 Ok
DATA
354 End data with .
Autenticação LDAP
.
250 2.0.0 Ok: queued as DFCB3201724
quit
221 2.0.0 Bye
Connection closed by foreign host.
root@mail:~# grep DFCB3201724 /var/log/mail.log
Jun 17 13:24:02 mail postfix/smtpd[1408]: DFCB3201724: client=localhost[::1], sasl_method=PLAIN, sasl_username=bob@exemplo.org
Jun 17 13:24:28 mail postfix/cleanup[1414]: DFCB3201724: message-id=<20160617162402.DFCB3201724@mail.exemplo.org>
Jun 17 13:24:28 mail postfix/qmgr[1392]: DFCB3201724: from=, size=330, nrcpt=1 (queue active)
Jun 17 13:24:29 mail postfix/local[1415]: DFCB3201724: to=, relay=local, delay=43, delays=43/0.01/0/0.14, dsn=2.0.0, status=sent (delivered to command: procmail -a "$EXTENSION")
Jun 17 13:24:29 mail postfix/qmgr[1392]: DFCB3201724: removed
root@mail:~# ls -l /home/vmail/alice/Maildir/
total 0
root@mail:~# ls -l /var/spool/mail/alice
-rw-rw---- 1 alice mail 932 Jun 17 13:24 /var/spool/mail/alice
root@mail:~# cat /var/spool/mail/alice
From bob@exemplo.org Thu Jun 16 15:46:59 2016
Return-Path:
X-Original-To: alice@exemplo.org
Delivered-To: alice@exemplo.org
Received: from mail.exemplo.org (mail.exemplo.org [198.51.100.240])
by mail.exemplo.org (Postfix) with SMTP id 6DAF4201089
for ; Thu, 16 Jun 2016 15:46:27 -0300 (BRT)
Message-Id: <20160616184653.6DAF4201089@mail.exemplo.org>
Date: Thu, 16 Jun 2016 15:46:27 -0300 (BRT)
From: bob@exemplo.org
Status: O
From bob@exemplo.org Fri Jun 17 13:24:28 2016
Return-Path:
X-Original-To: alice@exemplo.org
Delivered-To: alice@exemplo.org
Received: from mail.exemplo.org (localhost [IPv6:::1])
by mail.exemplo.org (Postfix) with ESMTPA id DFCB3201724
for ; Fri, 17 Jun 2016 13:23:46 -0300 (BRT)
Message-Id: <20160617162402.DFCB3201724@mail.exemplo.org>
Date: Fri, 17 Jun 2016 13:23:46 -0300 (BRT)
From: bob@exemplo.org
Autenticação LDAP
root@mail:~# postconf -e "mydestination = mail.exemplo.org, localhost"
root@mail:~# systemctl reload postfix
root@mail:~# telnet mail.exemplo.org 25
Trying 198.51.100.240...
Connected to mail.exemplo.org.
Escape character is '^]'.
220 Bem Vindo - mail.exemplo.org
HELO mail.exemplo.org
250 mail.exemplo.org
AUTH PLAIN
334
AGJvYkBleGVtcGxvLm9yZwAxMjM0NTY=
235 2.7.0 Authentication successful
MAIL FROM:
250 2.1.0 Ok
RCPT TO:
250 2.1.5 Ok
DATA
354 End data with .
Subject: Testando as caixas postais
Caixas postais
.
250 2.0.0 Ok: queued as A2224201724
quit
221 2.0.0 Bye
Connection closed by foreign host.