Você está na página 1de 6

Integrando postfix com Active Directory

Mauricio Bonani – mbonani@gmail.com


23/07/2006
Versão 0.03
A versão mais recente sempre poderá ser encontrada em http://bonani.cdmil.com.br/

Muitas pessoas vêm procurando informações sobre como integrar o postfix (e outros serviços) com o
Active Directory, porém as informações normalmente são poucas e estão muito espalhadas. Baseado em
alguns treinamentos que participei, e com a ajuda de um grande amigo (Rogério Moura –
rogerpop@gmail.com), procurei juntar essas informações tentando facilitar a vida dos amigos
administradores de rede. Certamente essa não é a única maneira de integrar o postfix com o AD, mas foi a
forma que melhor atendeu minhas necessidades num primeiro momento.

Abaixo tentarei descrever da forma mais objetiva possível como fazer a integração. O sistema operacional
usado como referência nesse documento é o SUSE Linux 10.0, o processo de instalação (em inglês) está
descrito em
http://www.novell.com/documentation/suse10/index.html?page=/documentation/suse10/startguide/data/c
ha_inst.html. Acredito que não seja muito diferente em outras distribuições. Não entrarei em detalhes
sobre como configurar o Active Directory, há muita informação sobre esse assunto na Internet.

IMPORTANTE: É necessário ter o serviço WINS instalado no servidor que está rodando o AD.

Caso tenha alguma dúvida, crítica ou sugestão, sinta-se à vontade em me mandar um e-mail.

Preparando o ambiente
Dados dos servidores

Servidor Active Directory


Domínio = meuad.com.br
Nome do host = adserver
Endereço IP = 192.168.0.10

Servidor Postfix
Domínio = meuad.com.br
Nome do host = mailserver
Endereço IP = 192.168.0.20

Kerberos
Configurando o kerberos

# vi /etc/krb5.conf

[libdefaults]
default_realm = MEUAD.COM.BR

[realms]
MEUAD.COM.BR = {
kdc = ADSERVER.MEUAD.COM.BR
}
[domain_realm]
.kerberos.server = MEUAD.COM.BR

[logging]
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmin.log
default = FILE:/var/log/krb5lib.log

[appdefaults]
pam = {
ticket_lifetime = 1d
renew_lifetime = 1d
forwardable = true
proxiable = false
}

Após a configuração você poderá testar a comunicação entre o kerberos e o AD. Basta executar o
comando abaixo e inserir a senha quando solicitado.

# kinit administrador@MEUAD.COM.BR

Isso irá gerar um ticket para o usuário “administrador”. Se tudo correu bem, você pode listar os tickets
ativos:

# klist

NSSwitch
Altere as linhas abaixo do arquivo /etc/nsswitch.conf

passwd: compat winbind


group: compat winbind

Samba
Configure o samba conforme abaixo.

# vi /etc/samba/smb.conf

[global]
unix charset = ISO-8859-1
workgroup = MEUAD
netbios name = MAILSERVER
server string = MailServer
load printers = no
log file = /var/log/samba/log.%m
max log size = 500
realm = MEUAD.COM.BR
security = ads
auth methods = winbind
password server = adserver.meuad.com.br
winbind separator = +
encrypt passwords = yes
winbind cache time = 15
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
idmap uid = 10000-20000
idmap gid = 10000-20000
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
local master = no
os level = 233
domain master = no
preferred master = no
domain logons = no
wins server = 192.168.0.10
dns proxy = no
ldap ssl = no

Adicione a seguinte linha ao /etc/hosts.

# vi /etc/hosts

192.168.0.10 adserver.meuad.com.br adserver

Sincronize o horário dos servidores, uma das formas de se fazer isso é usando o NTP.

# ntpdate ntp.cais.rnp.br

No Windows você pode adicionar o servidor NTP nas configurações de Data e Hora.

Adicione o servidor do postfix ao domínio do AD.

# net ads join -U administrador -S meuad.com.br

Será solicitada a senha da conta 'administrador' do AD.

Reinicie os serviços samba e winbind, e pare o serviço nscd.

# rcsmb restart

# rcnmb restart

# rcwinbind restart

# rcnscd stop

Para testar se o servidor linux foi adicionado com sucesso ao domínio do AD execute os seguintes
comandos:

# wbinfo -u

# wbinfo -g

Esses comandos irão retornar, respectivamente, a lista de usuários e grupos disponíveis no AD.

Postfix
O postfix não exige nenhuma configuração especial nesse ambiente. O mais importante é configurar
corretamente as diretivas mydomain e myhostname, as demais diretivas devem ser configuradas de
acordo com o ambiente onde será instalado.

POP3
Instale o qpopper para ser o servidor pop, é muito simples de configurar. O qpopper também não precisa
de nenhuma configuração especial para autenticar usuários no AD, apenas configure o pam corretamente.
PAM
Altere o arquivo /etc/pam.d/pop3

#%PAM-1.0
auth required pam_winbind.so
account required pam_winbind.so

Iniciando os serviços no boot


Para iniciar os serviços necessários durante o boot, execute os seguintes comandos:

# chkconfig -s postfix on

# chkconfig -s smb on

# chkconfig -s nmb on

# chkconfig -s winbind on

# chkconfig -s krb5 on

# chkconfig -s nscd off

O qpopper roda no xinetd, altere o arquivo /etc/xinetd.d/qpopper para habilitar o serviço:

disable = no

SMTP Autenticado
Instale os pacotes cyrus-sasl, cyrus-sasl-saslauthd e cyrus-sasl-plain (todos na versão 2).

Altere o arquivo /usr/lib/sasl2/smtpd.conf deixando-o como abaixo:

pwcheck_method: saslauthd

mech_list: plain login

Altere o arquivo /etc/pam.d/smtp

#%PAM-1.0

auth required pam_winbind.so

account required pam_winbind.so

Insira as diretivas abaixo no /etc/postfix/main.cf

enable_sasl_authentication = yes

broken_sasl_auth_clients = yes

smtpd_sasl_auth_enable = yes

smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain =

Reinicie o postfix

# postfix reload

Para testar se funcionou execute os comandos abaixo. As linhas em negrito são os comandos que devem
ser executados, as demais linhas são as respostas do servidor.

# telnet localhost 25

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

220 localhost ESMTP

ehlo localhost

250-localhost

250-PIPELINING

250-SIZE 20480000

250-ETRN

250-AUTH PLAIN LOGIN

250-AUTH=PLAIN LOGIN

250 8BITMIME

quit

221 Bye

Connection closed by foreign host.

Se tudo deu certo a resposta do servidor deverá incluir as linhas iniciadas por 250-AUTH.

Próximas versões
Nas próximas versões desse documento, pretendo adicionar os seguintes itens:

• Suporte a quotas;

• Login usando contas do AD no Linux;

Histórico
• 0.03 – Pequenas correções no texto e tópico sobre smtp autenticado

• 0.02 – Informações sobre sincronismo de horário


• 0.01 – Lançamento da primeira versão

Você também pode gostar