você está aqui: Home  → Arquivo de Mensagens

Autenticação no Sendmail

Colaboração: Peder Munksgaard

Data de Publicação: 14 de Julho de 2003

Durante muito tempo, procurei por tutorias, manuais e ate mesmo listas de discussoes onde falassem sobre Authenticacao no Sendmail.

Apos longas semanas tentando fazer com que e meu bom e velho Sendmail (heheheh Pelo menos eu acho muito bom!), consegui um excelente resultado. (Neste caso, nao abordarei a questao da seguranca utilizando Criptografia para autenticacao segura, estaremos lidando com o RUIM e VELHO "Plain Text").

Vamos aos passos iniciais:

1) Baixe os programas Sendmail e Cyrus-sasl: (hoje as versoes mais atuais e utilizadas neste tutorial estao descritas abaixo)

  sendmail.8.12.9.tar.gz 
  cyrus-sasl-1.5.28.tar.gz 

2) Descomprima os mesmos em um diretorio preferencialmente em comum para que voce nao se perca:

  $ tar -zxvf cyrus-sasl-1.5.28.tar.gz 
  $ tar -zxvf sendmail.8.12.9.tar.gz 

3) Vamos a instalacao do cyrus-sasl:

  $ cd cyrus-sasl-1.5.28 
  $ ./configure --enable-login 
  $ make 
  $ make install 

(a linha abaixo é necessaria para leitura de bibliotecas do sasl pelo sendmail) ln -s /usr/local/lib/*sasl* /usr/lib/

Agora vamos a configuracao:

  $ cd /usr/lib/sasl 
  $ vi Sendmail.conf (isso mesmo, S com letra maiuscula) 

Agora insira no Arquivo Sendmail.conf a seguinte linha: pwcheck_method: shadow Nao se esqueca que a distancia entre o ":" e a palavra shadow é um TAB.

Estamos com o Cyrus-SASL OK, devidamente instalado e configurado. Seguimos para o Sendmail! =)

Volte ao diretorio onde vc descomprimiu o seu source do sendmail e faca os seguintes passos:

  $ cd sendmail-8.12.9 
  $ cd devtools/Site 
  $ vi site.config.m4 

Dentro do arquivo site.config.m4 insira as seguintes linhas:

  define(``confSTDIO_TYPE',``portable') 
  APPENDDEF(``confENVDEF',``-DSASL') 
  APPENDDEF(``conf_sendmail_LIBS',``-lsasl') 
  APPENDDEF(``confLIBDIRS',``-L/usr/lib/sasl') 
  APPENDDEF(``confINCDIRS',``-I/usr/local/include') 

Beleza, agora que voce ja criou o site.config.m4 vamos aos confs do Sendmail: Supondo que voce ainda esteje dentro do diretorio sendmail-8.12.9/devtools/Site, digite:

  $ cd ../../cf/cf 
  $ vi sendmail.mc 

Agora, colarei um exemplo inteiro do sendmail.mc incluindo utilizacao do SpamCop:

  divert(-1) 
  # 
  # Copyright (c) 1998, 1999 Sendmail, Inc. and its suppliers. 
  # All rights reserved. 
  # Copyright (c) 1983 Eric P. Allman. All rights reserved. 
  # Copyright (c) 1988, 1993 
  # The Regents of the University of California. All rights reserved. 
  # 
  # By using this file, you agree to the terms and conditions set 
  # forth in the LICENSE file which can be found at the top level of 
  # the sendmail distribution. 
  # 
  # 
  
  # 
  # This is a generic configuration file for Linux. 
  # It has support for local and SMTP mail only. If you want to 
  # customize it, copy it to a name appropriate for your environment 
  # and do the modifications there. 
  # 
  
  divert(0)dnl 
  VERSIONID(`$Id: generic-linux.mc,v 8.1 1999/09/24 22:48:05 gshapiro Exp $') 
  OSTYPE(linux)dnl 
  DOMAIN(generic)dnl 
  define(``confAUTH_MECHANISMS',``LOGIN DIGEST-MD5 CRAM-MD5 PLAIN') 
  TRUST_AUTH_MECH(`LOGIN DIGEST-MD5 CRAM-MD5 PLAIN') 
  FEATURE(`virtusertable')dnl 
  FEATURE(`access_db')dnl 
  FEATURE(`redirect')dnl 
  FEATURE(``dnsbl',``bl.spamcop.net', `"Spam blocked see: http://spamcop.net/bl.shtml?"$&{client_addr}')dnl 
  FEATURE(`accept_unresolvable_domains')dnl 
  MAILER(local)dnl 
  MAILER(smtp)dnl 
  define(``confALIAS_WAIT',``0')dnl 

Otimo, salvamos o arquivo sendmail.mc, agora digite ainda dentro do diretorio cf:

  $ sh Build install-cf 
  $ cd ../.. 
  $ sh Build all 
  $ sh Build install 

Agora é só restartar o seu sendmail:

  $ /etc/rc.d/rc.sendmail restart 

Pronto, voce acaba de configurar o seu sendmail para utilizar Authenticacao por senha.

Gostaria de lembrar, que todos os passos acima, foram executados em um Slackware (preferencialmente da versao 8.1 para cima, pois a distribuicao do sendmail que ja vem com o mesmo e a familia 8.12.x, sendo assim, voce nao precisa se preocupar com a criacao de usuarios e setar permissoes para rodar o sendmail pois tudo isso jah vem pronto.)

Para testar seu sendmail com autenticacao, basta executar os seguintes comandos:

  $ telnet localhost 25

Apos o retorno padrão do sendmail digite EHLO localhost como mostrado abaixo:

  Trying 127.0.0.1... 
  Connected to localhost. 
  Escape character is '^]'. 
  220 server03.cruiser.com.br ESMTP Sendmail 8.12.9/8.12.9; Thu, 22 May 2003 10:29:16 -0300 
  EHLO localhost 

E voce tera o seguinte retorno do sendmail:

  250-server03.cruiser.com.br Hello localhost [127.0.0.1], pleased to meet you 
  250-ENHANCEDSTATUSCODES 
  250-PIPELINING 
  250-EXPN 
  250-VERB 
  250-8BITMIME 
  250-SIZE 
  250-DSN 
  250-ETRN 
  250-AUTH LOGIN PLAIN 
  250-DELIVERBY 
  250 HELP 

Pronto, caso apareca a opcao "AUTH LOGIN PLAIN" significa que esta tudo certo, e agora basta utilizar qualquer cliente de e-mail com suporte a autenticacao de senha no smtp que voce conseguirá enviar e-mails de qualquer lugar do mundo!

Qualquer duvida, entre em contato comigo pelo E-mail: <peder (a) pm eti br>

Abraços a todos,

Att.,

Peder Munksgaard



Veja a relação completa dos artigos de Peder Munksgaard

 

 

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script