Introdução
Sendmail surgiu como um pacote padrão para transferência de mensagens. Ele foi escrito por Eric Allman
na Universidade da Califórnia em Berkeley. O Sendmail é o responsável por mais de 75% dos servidores
de mensagens da Internet.
Sendmail é a mais popular implementação baseada em UNIX da SMTP (Simple Mail Transfer Protocol)
para transmissão de e-mails. Este protocolo é o meio padrão estabelecido para transferência de mensagens
através da Internet.
Ao receber uma mensagem o Sendmail tenta entregar imediatamente a mensagem para o destinatário
indicado e, caso o destinatário não esteja presente na rede naquele momento, ele enfileira as mensagens
para posterior entrega. No entanto, como Sendmail não fornece facilidades de caixas de correios, um
servidor POP ou IMAP é necessário para a tarefa de armazenar e-mails. A maioria dos provedores de
acesso fornecem ambas as opções: um servidor SMTP (utilizando o Sendmail) e um servidor POP ou
IMAP.
Usando as configurações demonstradas neste livro, pode-se criar um servidor de email para escritórios e
empresas independentes no número de caixa postais (mailbox), fazendo com que os usuários da rede
possam trocar mensagens entre si utilizando qualquer software de e-mail (Outlook 98/2000/Express,
Eudora, Netscape Messanger ou qualquer outro software de correio eletrônico que utilize o protocolo POP
e IMAP).
Instalação e Configuração
Instalação
- imap-4.4-5cl.i386.rpm ou posterior;
- sendmail-cf-8.9.3-11cl.i386.rpm ou posterior;
- m4-1.4-13cl.i386.rpm ou posterior;
- sendmail-8.9.3-11cl.i386.rpm ou posterior.
Devemos estar logados como root e através dos comandos abaixo verificarmos se estes pacotes já se
encontram instalados.
Caso não sejam encontrados verifique o procedimento de instalação da sua distribuição Linux. Outra
possibilidade de consulta poderá ser utilizando o próprio site do Sendmail, através do seguinte endereço
eletrônico.
http://www.sendmail.org
Na instalação do servidor Linux descrito neste livro foi mencionada a instalação de todos os
pacotes, devendo não necessitar do procedimento de instalação dos pacotes acima
mencionados. Mas se forem necessários estes pacotes, poderão ser encontrados no CD de
instalação (CD1) no diretório /conectiva/RPMS.
Configuração
Retire a marca ‘#’ da linha iniciada com pop-3 e imap, devendo ficar da seguinte forma:
Necessitamos criar o arquivo sendmail.cf com as configurações necessárias para o Sendmail funcionar e
protegidas contra SPAM.
Para isso vá ao diretório /usr/lib/sendmail-cf/cf/ e procure pelo arquivo connectiva.mc, encontrado o
arquivo execute os seguintes comandos:
m4 ../m4/cf.m4 connectiva.mc>mail.cf
cp /etc/sendmail.cf /etc/sendmail.cf.bak Caso o sendmail ninca fora configurado
rm /etc/sendmail.cf em seu servidor, estes comandos não são
cp mail.cf /etc/sendmail.cf necessários.
/etc/rc.d/init.d/sendmail restart
Agora iremos habilitar o sendmail para que inicie automaticamente nos nível 3 (inicialização em modo
texto) e 5 (inicialização em modo gráfico) de execução.
Selecione o serviço sendmail como mostrado abaixo, vá até o botão OK (através da tecla TAB) e tecle
ENTER.
O arquivo do sendmail.cf já foi criado, todo usuário cadastrado no Linux tem e-mail automaticamente, há
a possibilidade de criação de contas especiais somente para conta de e-mail. No conectiva Linux poderá ser
criado esta conta através do Linuxconf, para outras distribuições verifique no manual específico da
distribuição.
Iremos configurar alguns arquivos utilizados pelo Sendmail para que o usuário possa usar o servidor de e-
mail para enviar as mensagens. Desta forma iremos permitir que somente pessoas, domains ou IPs de nossa
rede interna possam enviar e-mail, evitando que algum hacker ou usuário não autorizados utilizem este
servidor de e-mail, para SPAM.
SPAM significa enviar uma mensagem qualquer para uma grande quantidade de usuários, sem
primeiro verificar a utilidade do conteúdo da mensagem para aqueles destinatários.
# arquivo sendmail.cw – inclua todos os apelidos ou dominios da sua empresa neste arquivo
# suaempresa.com.br RELAY ---> Coloque o NomeDoSeuDominio
advlinux.com.br RELAY Os campos estão configurados
#111.222.333 RELAY ---> Coloque o IP da sua rede interna para a instalação demonstrada
neste livro.
192.168.1 RELAY
localhost.localhost RELAY
#fim da alteração
Necessitamos agora editar/criar o arquivo relay-domains, localizado no diretório /etc/mail (caso o arquivo
/etc/mail/relay-domains não exista deverá ser criado).
# arquivo relay-domains
O campo esta configurados
# IPdasuaRedeInterna RELAY para a instalação demonstrada
neste livro.
192.168.1 RELAY
#fim da alteração
Depois de criado o arquivo verifique se o arquivo relay-domanis tem a permissão 664, caso esta permissão
esteja diferente, altere com o comando abaixo a permissão.
Com a configuração acima somente endereço IP que comece com 192.168.1.0 até 192.168.1.255 utilizará o
servidor de e-mail para RELAY, evitando assim que intrusos utilizem seu servidor para SPAM.
Pode-se também usar endereço de e-mail [alguem@empresas.com.br],o qual se deseja bloquear. Para fazer
isso, basta incluir o endereço de e-mail com o parâmetro DENY na frente dentro do arquivo relay-domains
conforme exemplo abaixo :
192.168.1 RELAY
fulano@empresas.com.br DENY
/etc/rc.d/init.d/sendmail restart
É cada vez mais comum a utilização de apelidos (alias) em caixas postais, o apelido poderá ser utilizado de
forma a encurta o nome do destinatário da caixa de correio, esconder o real nome do destinatário, utilizar o
apelido de forma que a mensagem recebida possa ser reenviada para múltiplos destinatários.
O arquivo /etc/mail/aliases é responsável pela configuração dos apelidos para o sistema de mensagem
eletrônica (e-mail).
apelido: destinatário
Exemplo:
A usuária Lucybel do departamento administrativo tem o nome de login l.linux, portanto o seu endereço de
mail é l.linux, de forma a tornar mais amigável iremos colocar um apelido de Lucybel para o mail l.linux
simplesmente incluindo a linha abaixo no arquivo aliases.
# insira o seguinte lina
lucybel: l.linux
# fim da inclusão
Muitas vezes queremos que um departamento ou grupo de usuários receba determinada mensagem, sem ter
necessidade de colocarmos todos os nomes dos destinatários. A estrutura deste comando no arquivo aliases
será:
nomedogrupo: usuário1,usuário2,usuário3
Exemplo:
Para que mensagens enviadas para um determindo apelido sejam gravadas em arquivo, utilize a seguinte
sintaxe.
apelido: /diretório/nomedoarquivo
Exemplo:
pedidos: /opt/comercial/vendas/pedidos
Caso necessite que através de uma mensagem enviada para um determinado apelido, este execute um
programa, utilize a sintaxe.
apelido: | /diretório/arquivoexecutável
Exemplo:
executa: /usr/bin/dir
Após qualquer modificação do arquivo aliases execute o comando abaixo, para que o Sendmail atualize sua
base de dados, a fim de assumir a nova configuração.
newaliases
Após execusão, serão mostrados algumas informações referente ao conteúdo do arquivo aliases.
Teste do Anti-SPAM
Devemos lembrar que para realização deste teste, o servidor deverá estar permanentemente conectado a
Internet e com o domínio registrado. Caso contrário não há necessidade deste teste.
Agora iremos verificar se a proteção Anti-SPAM configurada está funcionando corretamente. Se tudo
estiver configurado conforme foi mostrado anteriormente, nosso servidor de correio eletrônico deverá
recusar o SPAM, para testá-lo vá até o endereço eletrônico abaixo :
http://maps.vix.com/tsi/ar-test.html
Coloque o endereço do seu servidor de correio eletrônico conforme mostrado abaixo, para fazer um teste
anti-spam, este é o resultado que deverá ser visto em.
mail.advlinux.com.br
Relay test 1
>>> RSET
<<< 250 Reset state
>>> MAIL FROM:
<<< 250 ... Sender ok
>>> RCPT TO:
<<< 550 ... Relaying denied
Relay test 2
>>> RSET
<<< 250 Reset state
>>> MAIL FROM:
<<< 553 ... Domain name required
Relay test 3
>>> RSET
<<< 250 Reset state
>>> MAIL FROM:<>
<<< 250 <>... Sender ok
>>> RCPT TO:
<<< 550 ... Relaying denied
Relay test 4
>>> RSET
<<< 250 Reset state
>>> MAIL FROM:
<<< 250 ... Sender ok
>>> RCPT TO:
<<< 550 ... Relaying denied
Relay test 5
>>> RSET
<<< 250 Reset state
>>> MAIL FROM:
<<< 553 ... Invalid host name
Relay test 6
>>> RSET
<<< 250 Reset state
>>> MAIL FROM:
<<< 250 ... Sender ok
>>> RCPT TO:
<<< 550 ... Relaying denied
Relay test 7
>>> RSET
<<< 250 Reset state
>>> MAIL FROM:
<<< 250 ... Sender ok
>>> RCPT TO:
<<< 553 ... Invalid host name
Relay test 8
>>> RSET
<<< 250 Reset state
>>> MAIL FROM:
<<< 250 ... Sender ok
>>> RCPT TO:<"relaytest@mail-abuse.org">
<<< 550 <"relaytest@mail-abuse.org">... Relaying denied
Relay test 9
>>> RSET
<<< 250 Reset state
>>> MAIL FROM:
<<< 250 ... Sender ok
>>> RCPT TO:<"relaytest%mail-abuse.org">
<<< 550 <"relaytest%mail-abuse.org">... Relaying denied
Relay test 10
>>> RSET
<<< 250 Reset state
>>> MAIL FROM:
<<< 250 ... Sender ok
>>> RCPT TO:
<<< 550 ... Relaying denied
Relay test 11
>>> RSET
<<< 250 Reset state
>>> MAIL FROM:
<<< 250 ... Sender ok
>>> RCPT TO:<"relaytest@mail-abuse.org"@mail.advlinux.com.br>
<<< 550 <"relaytest@mail-abuse.org"@mail.advlinux.com.br>... Relaying denied
Relay test 12
>>> RSET
<<< 250 Reset state
>>> MAIL FROM:
<<< 250 ... Sender ok
>>> RCPT TO:
<<< 553 ... Invalid host name
Relay test 13
>>> RSET
<<< 250 Reset state
>>> MAIL FROM:
<<< 250 ... Sender ok
>>> RCPT TO:
<<< 550 ... Relaying denied
Relay test 14
>>> RSET
<<< 250 Reset state
>>> MAIL FROM:
<<< 250 ... Sender ok
>>> RCPT TO:
<<< 553 ... Invalid host name
Relay test 15
>>> RSET
<<< 250 Reset state
>>> MAIL FROM:
<<< 250 ... Sender ok
>>> RCPT TO:
<<< 550 ... Relaying denied
Relay test 16
>>> RSET
<<< 250 Reset state
>>> MAIL FROM:
<<< 250 ... Sender ok
>>> RCPT TO:
<<< 550 ... Relaying denied
Relay test 17
>>> RSET
<<< 250 Reset state
>>> MAIL FROM:
<<< 250 ... Sender ok
>>> RCPT TO:
<<< 553 ... Invalid host name
http://www.pmail.com
Devido às características mencionas iremos utilizá-lo em nossa instalação, o software poderá ser
encontrado no endereço acima para download. Outros softwares como OutLook 98/2000, Eudora, Netscape
Messager poderão ser utilizados para esta finalidade, as configurações a serem utilizadas poderão ser
extraídas do procedimento mostrado na instalação do software Pegasus.
Após ter baixado o arquivo de instalação (para a versão Windows 32 bits o atual arquivo é win32-
312c.exe), utilize um usuário do SAMBA com acesso de administrador no diretório /opt (direito 775 no
diretório), rode o programa de instalação e será iniciada a instalação como mostra a figura abaixo.
Selecione o botão Next> para continuar a instalação.
Observe que esta versão é compatível com Windows9x, Windows NT 4.0 e Windows 2000.
Após ter lido as informações importantes sobre as condições legais de uso deste software, selecione o botão
Next> .
Este item é muito importante, deve ser instalo este software no diretório /opt/appl/PMAIL (na figura
acima o driver K: represente o diretório /opt, para mais informações consulte capítulo sobre SAMBA) onde
todos os aplicativos utilizados em nosso servidor estão instalados, serão então criado um diretório para uso
de todos os usuários com direito ao acesso ao correio eletrônico (serão abordados mais detalhes no
transcorrer deste capítulo). Depois de selecionado o diretório de instalação através do botão Browse, clique
sobre o botão Next>.
Após o reinicio do computador, selecione o programa Pegasus através do menu Iniciar-> Programas ->
Pegasus for Win32.
Iremos agora configurar uma conta de administrador do Pegasus, o administrador terá direitos de inclusão,
alteração e configuração do software no acesso ao servidor de correio eletrônico (Sendmail). Não há limites
no número de admistradores do software, mas deverá sempre ter cautela na escolha e no número de
administradores. As contas dos administradores são configuradas da mesma forma que as contas de outros
usuários, a única diferença será selecionar a opção de administrador no momento da criação da
configuração no Pegasus. Copie o arquivo /etc/hosts do servidor Linux para o diretório /windows, este
arquivo contem a relação entre nome do servidor e computadores conectados a rede com os respectivos
números IP.
Administrador no Pegasus não tem direitos de administrador no Sendmail, desta forma poderá
haver uma distribuição na administração da solução de correio eletrônico. Não ha restrição caso
o usuário seja administrador de ambos os sistemas (Pegasus e Sendmail). Na primeira execução
do programa será mostrada a tela abaixo, iniciando o processo de configuração do acesso aos
arquivos e diretórios contendo os programas e diretórios do Pegasus.
Selecione o último Ícone, conforme mostrado na figura acima.
De forma a facilitar a administração do sistema, selecione o mesmo diretório no qual foi instalado o
programa Pegasus adicionando o diretório MAIL. No nosso caso deverá ser selecionado o diretório
/opt/appl/PMAIL/MAIL (não esqueça que o driver K: representa o diretório /opt no servidor Linux).
Depois de configurado o path selecione o botão OK.
O diretório configurado acima, conterá todas as mensagens das caixas postais dos usuários
configurados no Pegasus. Certifique-se que o filesystem que contem este diretório, tem espaço
suficiente para o armazenamento das mensagens.
Este menu é utilizado para a criação de todos os usuário do Pegasus com diretos de acesso ao servidor de
mensagens (Sendmail), iremos somente cadastrar o usuário administrador, para posteriormente
cadastrarmos os outros usuários. Clique sobre o botão NEW e a janela abaixo será mostrada.
Preencha o campo Username com o login do administrador do Pegasus (não deve ser usado o usuário
root), no campo Personal name coloque o nome do usuário, assinale os itens Administrator privileges e
Copy default mail messages como mostra a figura e clique sobre o botão OK.
Automaticamente a janela fechará e será mostrada a janela anterior com o username do usuário
administrador, clique no botão Close e a seguinte tela será mostrada.
Insira o nome do servidor POP3 (no nosso caso complete com advlinux.com.br) e clique no botão Next>.
Insira o nome do usuário, senha e clique no botão Next>. Estes campos deverão ser completados com as
mesmas informações que o usuário utiliza para acessar o servidor Linux.
Complete o campo com o nome do servidor SMTP, em nossa instalação deverá ser utilizado
advlinux.com.br (este é o nome do servidor Linux onde esta rodando o Sendmail) e clique sobre o botão
Next>.
Selecione o item Network (pois os computadores em conectados a uma rede local e não remotamente) e
selecione Next>.
A administração de usuários será realizada acessando o item User management, possibilitando a inclusão
e remoção dos usuários.
Atualiza o envio e recebimento
de e-mail manualmente
Será mostrada ao administrador a tela abaixo.
Para uma atualização automática do recebimento e envio de mensagens selecione no menu principal o item
Tools->Internet options.
De forma a delimitar acesso aos e-mails iremos alterar os direitos dos arquivos do Pegasus. Para entender s
as permissões dentro do Pegasus, deveremos entender como é a estrutura de diretórios usada, abaixo é
mostrada e comentada essa estrutura.
Diretório de
/opt/appl instalação de
aplicativos
Lucybel
usuário
e-mail
Logado como root, altere as permissões do diretório e arquivos onde está instalado o Pegaus, para rwx para
o usuário e grupo responsável pela administração do Pegausus e r_x para os demais grupos ou usuários.
Desta forma iremos impedir que qualquer usuário possa alterar ou apagar qualquer arquivo importante para
a execução e configuração do software.
Exemplo:
Em nosso sistema determinamos que o usuário adm01 é pertencente ao grupo root e será responsável pela
administração.
Vá ao diretório /opt/appl e altere os direitos do diretório PMAIL e os arquivos contidos neste diretório.
cd /opt/appl
chmod 775 PMAIL
chown adm01:root PMAIL
cd PMAIL
chmod 775 *
chown adm01:root *
Como cada subdiretório abaixo do diretório MAIL representa uma caixa postal, iremos dar direito de rwx
para o usuário a qual pertence este diretório e grupo root, mas nenhum direito para os demais usuários
ou grupos.
cd /opt/appl/PMAIL
chmod 770 MAIL
chown adm01:root MAIL
chown l.linux:root *
Finalizado esta etapa, somente o usuário da caixa postal ou administradores do sistema terão acesso,
impedindo assim que intrusos vasculhem e-mails.
Conclusões
Escalabilidade:
Em termos de envio do mail, pode haver um aumento de escalabilidade horizontal. Basta para isso
aumentarmos o número de máquinas que podem enviar mail, teremos apenas que aplicar o load balancing
de forma a haver sempre uma máquina diferente a responder a um pedido de envio de mail.
Em termos de recepção as coisas já se complicam mais, a escalabilidade só pode ser aumentada a nível
vertical, isto é, com o incremento de memória, CPU, discos rígidos, etc.
Versatilidade:
O Sendmail é utilizado em plataformas Linux e UNIX, assim as configurações aqui mostradas poderão ser
migradas para outras plataformas com um índice de aproveitamento desta instalação elevada. Hoje o
Sendmail esta presente num grande número de empresas e provedores internet, devido a sua portabilidade,
confiabilidade e velocidade de excusão.