![]() |
Sendmail e qmail
| Linux in Brazil Documentação original e de qualidade em bom português |
Comparação
entre os servidores de e-mail: sendmail e qmail
Elvis Pfutzenreuter
Sua primeira
versão foi escrita em 1979, por Eric Allman. Desde então,
tem sido incluído em todas as distribuições UNIX.
Ele ficou um tanto "esquecido" pelo autor entre 1982 e 1990. Por
esse e outros motivos, os diversos fabricantes de UNIX (IBM, HP,
Sun) trataram de expandir e melhorar o sendmail original. O resultado
desse processo foi o aparecimento de inúmeras versões incompatíveis
entre si.
Em 1994, Eric começou a trabalhar na versão 8.7
do sendmail, que incorporou a maioria das extensões apresentadas
pelos UNIXes comerciais. Assim, o sendmail passou a ser novamente
um programa único.
A versão atual do sendmail é a 8.9.2, que foi
liberada no final de 1998. O site mestre do sendmail é
http://www.sendmail.org.
As versões comerciais podem ser encontradas no site http://www.sendmail.com.
Vantagens do sendmail
Padrao da Internet
Mais de 70% dos servidores de e-mail utilizam o sendmail como
MTA (mail transfer agent). O QMail ainda detém um sétimo
lugar em utilização na Internet, atrás do Exchange
Server da Microsoft e de outros.
Documentação
Existe uma quantidade razoável de documentação
sobre o sendmail na Internet; existem HOWTOs dedicados a certos aspectos
da configuração do sendmail; e caso tudo isso falhe,
sempre há o livro sendmail, da O´ Reilly, mais conhecido
pelos íntimos como BatBook.
Ainda não existe um livro para o QMail, e a documentação
sobre o mesmo na Internet ainda é pouca. Sua documentação
on-line é suficiente porém esparsa, ainda pode melhorar bastante.
Configuração poderosa/flexível
A flexibilidade de configuração do sendmail é
impressionante, bem superior a do QMail. Essa flexibilidade é herança
de uma época onde redes TCP/IP, UUCP e outras tinham de conviver
em harmonia. (Hoje, com o monopólio do TCP/IP e da uniformização
da Rede, essa vantagem do sendmail já não é
um diferencial tao importante.)
Suporte comercial
A Sendmail Inc., empresa fundada pelo próprio Eric Allman, vende
versões comerciais do sendmail com front-end gráfico
de configuração. Isso pode ser interessante para aqueles
que precisam de suporte comercial ou fazem questão da configuração
facilitada em modo gráfico.
No caso do QMail, o que existe são empresas que dão suporte
comercial ao QMail, sem vinculação direta com o autor.
Versão para NT
Uma das versões comerciais é para a plataforma Windows
NT. Não existe versão do QMail para Windows.
Por ser um programa recente, levou em conta desde o início questões
como segurança, que tornaram-se críticas após a difusão
explosiva da Internet. Tambem levou em conta os problemas e complexidades
do próprio sendmail; e procurou mimificar todos os seus
recursos. Disso resultou um programa que é o principal
concorrente free-software do sendmail.
A versão atual do QMail é a 1.03, liberada em junho/1998.
O site mestre do QMail é, previsivelmente, http://www.qmail.org.
Vantagens do QMail
Velocidade
Segundo o autor, o QMail é até 100 vezes mais rápido
que o sendmail em determinadas tarefas.
Segurança
O QMail foi planejado desde o início para ser seguro. O
autor chegou a oferecer um prêmio de US$ 1.000 para quem conseguisse
invadir uma máquina por meio de uma fraqueza do QMail. Ninguém
conseguiu, e o dinheiro acabou sendo doado à Free Software Foundation.
Enquanto o sendmail é um programa monolítico
(um único executável que faz tudo) rodando com permissões
de superusuário, o QMail é dividido em diversos executáveis,
dos quais apenas um (o que gerencia a fila) tem permissão de superusuário.
Mesmo que um invasor remoto consiga "tomar conta" de um dos programas de
comunicação, nao terá permissão para fazer
muita coisa. Já se ele tomar conta do sendmail, terá
permissoes de superusuário.
Outro aspecto interessante do QMail é que ele usa uma biblioteca
própria, diferenciada, para lidar com strings. Isso praticamente
elimina a chance de ocorrer um estouro de buffer, que é o defeito
mais comumente explorado na invasão de um programa.
Facilidade de configuração
A forma de armazenamento dos parâmetros de configuração
é direta, honesta, em arquivos claramente nominados, é incrivelmente
fácil de entender e manter.
Já no caso do sendmail, aos que vão querer ou
vão precisar usá-lo, recomendo adquirir o BatBook. A configuração
via macros é relativamente fácil, mas depois que você
tiver uma boa noção do funcionamento geral do sendmail,
e *isso* é dificil obter.
Adoção bem-sucedida por grandes usuários de
e-mail
Empresas como Red Hat e Conectiva substituíram o sendmail
pelo QMail com grande sucesso.
Consultores e administradores de sistema deveriam estudar os dois programas,
pois poderão ter de enfrentar situações do tipo "transição
do sendmail para o QMail", ou "configuração do sendmail
em servidor preexistente".
epx@netville.com.br
(fonte: sendmail address rewriting mini-HOWTO)
Instale o sendmail. A maioria, se não a totalidade das distribuições
Linux vem com o sendmail; basta instalar o respectivo TGZ ou RPM.
A própria instalação já ativa o serviço na porta 25, basta reiniciar a
máquina.
Configurar diretamente o arquivo /etc/sendmail.cf seria uma
aventura à parte. Aqui, utilizaremos um processador de macros (m4) para
gerar o arquivo de configuração. Quem quiser que use o diff para
ver em que pontos o /etc/sendmail.cf padrãozão será modificado.
# cd /usr/src/sendmail/cf/cf
Crie um arquivo de configuração com este conteúdo:
include(` ../m4/cf.m4´ )
A feature masquerade_envelope indica que queremos mascarar
o remetente. De fato, queremos que epx@vnsa.netville.com.br saia como epx@netville.com.br
para o mundo externo.
A definição SMART_HOST permite-nos dizer para que servidor
de e-mail devemos passar adiante as mensagens não locais. Não queremos
entregá-las nós mesmos, pois isso demoraria muito e ocuparia muito tempo
de uma cara linha discada. Se fôssemos um provedor Internet, nao usaríamos
esse recurso.
Note que as aspas simples que cercam alguns campos são aspas opostas
(a crase à esquerda, o apostrofe à direita). Coisas de m4....
Depois execute o comando
# m4 epx.mc > /etc/sendmail.cf
Agora, vamos ao diretório /etc, criar algumas tabelas.
# cd /etc
# echo "" > genericstable
A função desta tabela é determinar que os endereços da primeira
coluna - no caso, endereços locais - serão convertidos para os endereços
à direita. Quem eventualmente responder a um de nossos e-mails, mandará
a resposta para a caixa postal do provedor, que atende 24h por dia e está
registrada no DNS.
# echo "vnsa.netville.com.br" > genericsdomain
Os domínios constantes nesse arquivo serão considerados locais. Pelo
menos no nosso caso, basta inserir o nome de nossa própria máquina.
# echo "postmaster: epx" > aliases
A função desta tabela é passar adiante os e-mails de certos usuários
para outros. Todo servidor de e-mail deve aceitar mensagens para o usuário
postmaster, então no nosso caso passaremos essas mensagens adiante para
um usuário real.
# killall -1 sendmail
Ordenamos ao sendmail que releia nossos arquivos de configuração, e
aí temos nosso próprio servidor de e-mail.
O QMail foi escrito por D. J. Bernstein. A primeira versão pública
(beta, 0.7) foi liberada em Janeiro/1996.
Recomendação final
Recomendamos a utilização do QMail, salvo em alguma situação
especial que exija o uso do sendmail.
Exemplos de configuração
dos servidores sendmail e QMail
Elvis Pfutzenreuter
Configuração

VERSIONID(`versao EPX para workstations dial-up´)dnl
OSTYPE(linux)
FEATURE(nouucp)dnl
FEATURE(masquerade_envelope)
FEATURE(genericstable, `hash -o genericstable´)
GENERICS_DOMAIN_FILE(`/etc/genericsdomain´)
define(`SMART_HOST´,`netville.com.br´)
define(`ALIAS_FILE´,`/etc/aliases´)
MAILER(local)dnl
MAILER(smtp)dnl
# echo "epx epx@netville.com.br" >> genericstable
# echo "root epx@netville.com.br" >> genericstable
# makemap -r hash genericstable.db < genericstable
# newaliases