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