Anda di halaman 1dari 30

Capítulo 6 - Servidor de Email (Sendmail)

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

Os seguintes pacotes relacionados devem estar instalados.

- 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.

rpm –qa|grep sendmail


sendmail-cf-8.9.3-11cl

rpm –qa|grep sendmail-cf


sendmail-cf-8.9.3-11cl

rpm –qa|grep imap


imap-4.4-5cl
rpm –qa|grep m4
m4-1.4-13cl

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

Agora edite o arquivo /etc/inetd.conf e encontre estas linhas:

# Pop and imap mail services email


#
#pop-2 stream tcp nowait root /usr/sbin/tcpd ipop2d
#pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d
#imap stream tcp nowait root /usr/sbin/tcpd imapd

Retire a marca ‘#’ da linha iniciada com pop-3 e imap, devendo ficar da seguinte forma:

# Pop and imap mail services email


#
#pop-2 stream tcp nowait root /usr/sbin/tcpd ipop2d
pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d
imap stream tcp nowait root /usr/sbin/tcpd imapd

Salve o arquivo e iremos reiniciar o servidor INED através do seguinte comando:

killall -HUP inetd

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.

Utilizaremos a aplicativo ntsysc para isso.

Rode o seguinte comando.


ntsysv –level 35

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.

Necessitamos agora editar o arquivo sendmail.cw. localizado no diretório /etc.

Os espaços mostrados no arquivo abaixo são TABs.

Inclua as seguintes linhas, conforme mostrado abaixo :

# 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).

Os espaços mostrados no arquivo abaixo são TABs.

Inclua as seguintes linhas, conforme mostrado abaixo :

# 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.

chmod 644 relay-domanis

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

Após ter configurado reinicie o Sendmail, através do seguinte comando:

/etc/rc.d/init.d/sendmail restart

Apelido e redirecionamento de caixas de correio

É 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).

As estruturas dos comandos dentro dos arquivos são:

apelido ser direcionado para um único destinatário.

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:

# criaremos um apelido chamado de admempresa de forma que todos os usuários da administração


# recebam as mensagens.
# Utilizarems os usuários cadastrados no nosso servidor advlinux
# (vide capitulo 2 para ver a estrutura da empresa).
admempresa: l.linux,a.linux,m.linux
# fim da inclusão

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

E deverá voltar a seguinte resposta:

Mail Relay Testing

Mail Relay Testing


Connecting to mail.brasillife.co.jp for anonymous test ...
<<< 220 .advlinux.com.br ESMTP Sendmail 8.9.3/8.9.3; Sat, 16 Nov 2000 13:41:22 -0300
>>> HELO mail-abuse.org
<<< 250 .advlinux.com.br Hello maps1.pa.vix.com [204.152.184.35], pleased to meet you

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

Relay test result


All tests performed, no relays accepted.

Configuração do e-mail nas Estações de Trabalho (Pegasus – e-mail


client)
Iremos abordar a instalação de um software de e-mail para a comunicação da nossa solução de correio
eletrônico (Sendmail). Para esta solução utilizaremos o software Pegasus Mail, este foi desenvolvo por
David Harris e apresenta excelentes qualidades, das quais destacamos :

- cliente para servidores POP3, SMTP, IMAP,LPAD e PH;


- suporta plataformas DOS, Windows9x, Windows NT, Windows 2000 e Windows 16bits (3.1 ou
posterior);
- suporta múltiplos usuários no mesmo computador;
- suporta protocolo MIME;
- cria múltiplos livros de endereços (addressbooks);
- aceita adição de plugins;
- extremamente ágil e configurável;
- gratuito;
- trabalha em rede.

Para mais detalhes acesse o endereço eletrônico:

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>.

Selecione os itens acima mostrados e clique sobre o botão Next>.


Será criado um grupo no windows do computador o qual se iniciou a instalação, posteriormente nos outros
computadores da rede será mostrado como criar um atalho na área de trabalho destes computadores,
selecione o botão Next>.
Agora será iniciada cópia dos arquivos necessários à execução do software, clique sobre o botão Next>.
Após a conclusão, clique sobre o botão Finish e reinialise o computador.

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.

# exemplo de um arquivo hosts


192.168.1.100 advlinux.com.Br
192.168.1.101 pc1101
# fim do arquivo

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 username do usuário administrador e selecione o botão OK.

Agora é iniciado o assistente de configuração, selecione o botão Next para prosseguir.


Complete este campo o endereço de e-mail completo (por exemplo d.linux@advlinux.com.br).

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>.

Selecione Finish para finalizar a configuração.

A figura abaixo mostra a tela principal do software Pegasus.


Administrando os usuários do Pegasus.

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.

Esta janela dispensa comentários pois o processo já fora mostrado anteriormente.


Este é um exemplo de uma mensagem recebido pelo usuário.

Para uma atualização automática do recebimento e envio de mensagens selecione no menu principal o item
Tools->Internet options.

Selecione a aba Receiving (POP3).


O item Check for new POP3 mail every deverá ser preenchido com valores ente 60 e 300 segundos, este
valor depende do tráfego no rede, número de usuários do servido de e-mail e carga de trabalho no servidor
Linux.

Segurança de acesso as caixas postais

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

/PMAIL Contem os arquivos executáveis e


bibliotecas para uso no Pegasus

/MAIL Estão localizadas todas


as caixas postais.

Lucybel

Debora Cada diretório


representa uma caixa
postal e o nome deste
diretório é o nome
utilizado na
configuração do usuário

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.

Para determinar as permissões proceda da seguinte maneira.

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

cd MAIL l.linux representa o


chmod 770 l.linux nome do usuário no
Linux.
chown l.linux:root Lucybel
Lucybel representa
cd l.linux o nome do usuário
chmod 770 * no Pegasus.

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.

Anda mungkin juga menyukai