Integrando Postfix com Active Directory

Nos ultimos dias tive que migrar o servidor de email do meu trabalho, de forma que todos os usuários se autentiquem com o mesmo usuário e senha do Active Directory,assim centralizando os serviços. Depois de alguns dias de estudos consegui a autenticação. Aqui vou demonstrar apenas uma configuração basica de um servidor de emails autenticando no AD utilizando Postfix com o Dovecot. Toda configuração será usando os Debian como sistema.

Instalando pacotes necessários

apt-get install postfix postfix-ldap dovecot-common dovecot-imapd dovecot-pop3d

Crie o usuário vmail

Este usuário é responsavel pela manipulação das contas de emails

useradd vmail -s /bin/false -d /home/vmail

Crie o diretório onde ficarão os e-mails dos usuários

chown -R vmail:vmail /home/vmail
chmod -R 700 /home/vmail

Configuração do postfix

Cria o arquivos ldap-users.cf com a seguinte conf

server_host = 10.10.10.1
search_base = dc=intranet,dc=com
version = 3
query_filter = (&(objectclass=person)(samaccountname=%s))
result_attribute = samaccountname
result_format = %u/Maildir/
bind = yes
bind_dn = ldap@intranet.com
bind_pw = senha do usuario ldap

obs: O server_host será o endereço do AD e o search_base será a base de consulta LDAP

obs2: Observer que a linha bind_dn =ldap@intranet.com, o ldap é um usuário do AD

o main.cf com configuração basica:

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination =  localhost.localdomain, localhost
home_mailbox = Maildir/
relayhost =
mynetworks = 127.0.0.0/8 ,10.10.10.0/16
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

virtual_mailbox_domains = mail.teste.com
virtual_mailbox_base = /home/vmail/
virtual_mailbox_maps = ldap:/etc/postfix/ldap-users.cf
virtual_uid_maps = static:1001   # Aqui coloca-se o valor do uid do usuario vmail
virtual_gid_maps = static:1001   # Aqui coloca-se o valor do gid do usuario vmail

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions =  permit_mynetworks,
    permit_sasl_authenticated, reject_unauth_destination
broken_sasl_auth_clients = yes

Configurando dovecot

em /etc/dovecot/dovecot.conf

protocols = imap imaps pop3 pop3s
log_timestamp = "%Y-%m-%d %H:%M:%S "
  mail_location = maildir:/home/vmail/%u/Maildir/
mail_privileged_group = mail
mail_debug = no
valid_chroot_dirs = /home/vmail
maildir_copy_with_hardlinks = yes
protocol imap {
 mail_plugin_dir = /usr/lib/dovecot/modules/imap
 imap_client_workarounds = delay-newmail outlook-idle netscape-eoh
}

protocol pop3 {
 pop3_uidl_format = %08Xu%08Xv
 mail_plugin_dir = /usr/lib/dovecot/modules/pop3
 pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}
protocol managesieve {
 sieve=~/.dovecot.sieve
 sieve_storage=~/sieve
}
auth_username_format = %Lu
auth_debug = no
auth default {
 mechanisms = plain login
 socket listen {
   client {
      path = /var/spool/postfix/private/auth
      mode = 0660
      user = postfix
      group = postfix
   }
 }
 passdb ldap {
   args = /etc/dovecot/dovecot-ldap.conf
 }
 userdb static {
     args = uid=1001 gid=1001 home=/home/vmail/%u
 }
 user = root

  socket listen {
    master {
        path = /var/run/dovecot/auth-master
        mode = 0600
        user = vmail
        group = vmail
    }
    client {
        path = /var/run/dovecot/auth-client
        mode = 0660
        }
    }
}
dict {
}
plugin {
}

Em dovecot-ldap.conf

hosts = 10.10.10.1
base = dc=intranet,dc=com
ldap_version = 3
auth_bind = yes
auth_bind_userdn = dominio\%u

obs: O hosts será o endereço do AD e o base será a base de consulta LDAP

3 comentários em “Integrando Postfix com Active Directory

  1. vc poderia me ajudar estou com alguns problemas nesse tipo de ambiente. Qualquer coisa por favor me add pra gente conversar. É Urgente!

    1. Rafael, esse howto está perfeito. Uma problema que pode aparecer, pelo qual lutei para corrigir, é que, dependendo da instalação do Server, o AD “escuta” na porta 3268. É a porta destinada ao Catálogo Global. Muito comum em instalações com uma àrvore configurada e/ou Exchange Server instalado no mesmo servidor do AD.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s