integrando postfix com active directory
TRANSCRIPT
Integrando postfix com Active DirectoryMauricio Bonani – [email protected]/07/2006Versão 0.03A 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 – [email protected]), 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/cha_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 ambienteDados dos servidores
Servidor Active DirectoryDomínio = meuad.com.brNome do host = adserverEndereço IP = 192.168.0.10
Servidor PostfixDomínio = meuad.com.brNome do host = mailserver Endereço IP = 192.168.0.20
KerberosConfigurando 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 [email protected]
Isso irá gerar um ticket para o usuário “administrador”. Se tudo correu bem, você pode listar os tickets ativos:
# klist
NSSwitchAltere as linhas abaixo do arquivo /etc/nsswitch.conf
passwd: compat winbindgroup: compat winbind
SambaConfigure 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.
PostfixO 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.
POP3Instale 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.
PAMAltere o arquivo /etc/pam.d/pop3
#%PAM-1.0auth required pam_winbind.soaccount required pam_winbind.so
Iniciando os serviços no bootPara 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 AutenticadoInstale 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õesNas 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