====== 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.