integrando postfix com active directory

6
Integrando postfix com Active Directory Mauricio Bonani – [email protected] 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 – [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/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 }

Upload: carlos-leonardo-de-souza

Post on 01-Nov-2015

668 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Integrando postfix com Active Directory

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 }

Page 2: Integrando postfix com Active Directory

[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

Page 3: Integrando postfix com Active Directory

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.

Page 4: Integrando postfix com Active Directory

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

Page 5: Integrando postfix com Active Directory

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

Page 6: Integrando postfix com Active Directory

• 0.01 – Lançamento da primeira versão