Escolar Documentos
Profissional Documentos
Cultura Documentos
-------------------------------
Stéfano Martins <xstefanox@gmail.com>
Versão 0.2 - domingo, 03 de outubro de 2004.
-----------------------------------------------------------------
Sobre o guia
------------
Este guia tem como seu objetivo ser o mais simples possível,
abordando o assunto nem de maneira superficial demais ou
aprofundada demais. Estou escrevendo pois estava sem fazer
nada pela comunidade GNU/Linux, somente sugando informação.
Como todos podem ver, o estilo do meu guia é similar ao do
Guia Foca GNU/Linux, que está disponível em
http://focalinux.cipsga.org.br. Fiz isso por quatro motivos:
1 - Eu gosto do estilo do guia;
2 - Aprendi mais com o autor daquele guia do que com a
maioria dos meus professores;
3 - Para os que já estavam acostumados a utilizar o Guia
Foca Linux, irão ficar mais entrosados;
4 - Porquê eu quis.
Não garanto que esse guia vá possuir inúmeras versões
melhoradas, mas é claro que de vez em quando eu posso
adicionar novos features nele, mas ele irá sempre continuar
com esse mesmo layout. Com um pouco de sorte quem sabe esse
guia passe de 10 páginas!
Nota: Nos últimos dias, um espaço foi cedido para os meus
guias pelo William Rocha para a hospedagem. O endereço
oficial desse guia e dos demais (Squid e NIS) é:
http://squid.linuxit.com.br
Grato William!
IMPORTANTE: Esse guia é disponibilizado no formato "as is",
não possui garantia alguma e julgo-me isento de qualquer
responsabilidade.
Nota de Copyright
-----------------
Copyleft (C) 2004 - Stéfano Martins.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation
License, Version 1.1 or any later version published by the
Free Software Foundation; A copy of the license is included
in the section entitled "GNU Free Documentation License".
-----------------------------------------------------------------
Conteúdo
--------
1. Introdução
1.1. Propósito do Guia/Nota do autor
1.2. O que é um servidor de e-mail?
1.3. Como é dividido um servidor de e-mail?
1.3.1. Mail Transfer Agent (MTA)
1.3.2. Mail Delivery Agent (MDA)
1.3.3. Mail User Agent (MUA)
1.4. O que um servidor de e-mail pode fazer por mim?
1.5. Como funciona
2. Protocolos
2.1. SMTP
2.2. POP
2.3. IMAP
3. Sobre os softwares utilizados nesse guia
3.1. Postfix
3.2. Maildrop
3.2.1. Mailbox (MBOX)
3.2.2. Maildir (Maildir/)
3.2.3. Mailbox ou Maildir: Qual é o melhor?
3.3. Courier-IMAP
3.4. Courier-POP
3.5. Courier-authdaemon
3.6. A distribuição Debian
4. Outros softwares com as mesmas funções
4.1. MTA's
4.1.1. qmail
4.1.2. Sendmail
4.1.3. Exim
4.1.4. Courier-mail
4.2. MDA's
4.2.1. Procmail
4.2.2. Postdrop
4.3. MUA's
4.3.1. Outlook Express
4.3.2. Microsoft Outlook
4.3.3. Mozilla Mail
4.3.4. Mail/Mailx
4.3.5. Ximian
4.3.6. Kmail
4.4. Servidores POP/IMAP
4.4.1. ipopd
4.4.2. Cyrus-POP/Cyrus-IMAP
4.4.3. solid-pop3d
4.4.4. qpopper
5. Instalando e configurando o ambiente e os serviços
5.1. Postfix
5.2. Maildrop
5.3. Courier-IMAP
5.4. Courier-POP
5.5. Courier-authdaemon
5.6. BIND
5.7. Criação das caixas de e-mail
5.8. Configurando a rede
5.9. Iniciando/Reiniciando/Parando/Reconfigurando
os daemons
6. Arquivos de configuração
6.1. /etc/postfix/main.cf
6.2. /etc/passwd
6.3. /etc/maildroprc
6.4. /var/log/mail.log
7. Outros
7.1. Sobre esse guia
7.2. O que você precisa para utilizar esse guia?
7.3. Sobre o autor
7.4. Agradecimentos
7.5. Referências
7.6. Críticas? Sugestões? Ajuda?
7.7. Atualizações do guia
7.8. ToDo
7.9. Links interessantes
-----------------------------------------------------------------
1. Introdução
-------------
Esse capítulo é básico. Para todos os que já conhecem como
um servidor de e-mail funciona, podem até pular esse
capítulo, mas recomendo a leitura de qualquer jeito.
-----------------------------------------------------------------
2. Protocolos
-------------
Não somente o Postfix, mas todos os servidores de e-mail
trabalham com esses protocolos. Cada protocolo tem uma
função diferente dentro do servidor de e-mail. Usuários um
pouco mais leigos podem não saber que estão utilizando esses
protocolos, mas eles estão sempre lá para uso.
2.1. SMTP
---------
O Simple Mail Transfer Protocol é o protocolo utilizado por
servidores de e-mail para o envio e recebimento de mensagens
eletrônicas para outros servidores espalhados na internet.
2.2. POP
--------
O POP (Post Office Protocol) é o protocolo responsável por
entregar as mensagens armazenadas no servidor para o cliente
requisitante. Detalhe: O POP não é criptografado. Todo o
tráfego é feito em texto plano.
2.3. IMAP
---------
O IMAP (Internet Message Access Protocol) é uma alternativa
ao POP, porém muito mais segura e muito mais versátil do que
o amigo acima.
O IMAP permite ao usuário criar pastas para organizar os
seus e-mails no servidor para melhor organização, permite a
utilização de webmails (como o UebiMiau, OpenWebmail ou o
Sqwebmail, que serão tratados em versões posteriores desse
guia).
Para o cliente que utiliza IMAP, sua principal vantagem é
que ele lê as mensagens armazenadas no servidor como se elas
fossem locais, o que permite uma melhor dinâmica entre o
usuário e o servidor de e-mail.
Mas uma característica muito importante em que o IMAP se
sobressai sobre o POP é a segurança. O IMAP trabalha com
criptografia e é mais recomendado para ambientes em que uma
segurança maior é requerida.
-----------------------------------------------------------------
3.1. Postfix
------------
O Postfix é um ótimo servidor de e-mail. Para falar a
verdade, eu diria que é o melhor e que revolucionou o
conceito de servidor de e-mail. Eu estou utilizando Postfix
pelos seguintes motivos:
1 - É rápido;
2 - É simples;
3 - É fácil;
4 - Muito fácil para instalar, sem falar que a Debian mantém
pacotes específicos para cada tipo de instalação. Ex: Caso
você queira trabalhar utilizando MySQL, normalmente você
teria que recompilá-lo com suporte à MySQL. A Debian mantém
um pacote chamado "postfix-mysql", que já vem pronto para a
utilização. Outros pacotes com integração com LDAP,
PostgreSQL, etc. também estão disponíveis;
5 - Grandes servidores de e-mail como os do Terra e UOL
utilizam Postfix;
6 - É extremamente simples de administrar depois de
instalado. Enquanto usuários utilizando qmail ou Sendmail
administram 100 usuários, você vai estar administrando 500
(Relativo do administrador).
7 - Vasta documentação disponível no site oficial, ainda que
seja um pouco complicada para os principiantes.
O Postfix foi escrito por Wietse Venema, personagem
conhecido por ter escrito o RPC e o NFS (por mais inseguro
que eles sejam, quem vive sem eles?).
Bom, eu acho que são motivos o suficiente. Não tenho nada
contra outros servidores de e-mail, como o qmail ou o
Sendmail, vale ressaltar.
3.2. Maildrop
-------------
O Maildrop é o nosso MDA. Ele é rápido, permite a filtragem
de mensagens com conteúdo impróprio e tem suporte a caixas
de mensagens nos dois formatos conhecidos: Mailbox (MBOX) e
Maildir (Maildir/).
3.3. Courier-IMAP
-----------------
O Courier-IMAP é um servidor que provém acesso a caixas de
mensagens no formato Maildir (e somente no formato Maildir).
Uma grande vantagem utilizando o Courier-IMAP ao invés de
outros servidores de IMAP é que ele roda como daemon, ao
invés de por meio de xinetd ou inetd, o que é vantajoso caso
você tenha um servidor com muitas requisições, sem falar dos
numerosos bugs do xinetd e do inetd. Porém quem vive sem
eles?
3.4. Courier-POP
----------------
O Courier-POP é idêntico ao Courier-IMAP, com excessão de
que ele trabalha utilizando-se do protocolo POP, ao invés do
IMAP.
3.5. Courier-authdaemon
-----------------------
O Courier-authdaemon é o daemon resposável por fazer as
autenticações dos clientes que requisitam os seus e-mails.
-----------------------------------------------------------------
4.1. MTA's
----------
Lista dos Mail Transfer Agents (MTA's) similares ao Postfix.
4.1.1. qmail
------------
O qmail, escrito por Dan Bernstein, um professor de
matemática que agora está na Universidade de Illinois em
Chicago. Ele é muito conhecido pelo seu trabalho no campo da
criptografia e pelo seu histórico de processos contra o
governo dos Estados Unidos, recorrendo ao uso da publicação
do código-fonte da criptografia.
O primeiro lançamento públicod o qmail foi a versão beta
0.70, ocorrida no dia 24 de janeiro de 1996. O primeiro
release estável, 0.90 foi em primeiro de agosto de 1996.
Depois de algumas versões lançadas do qmail, ele parou o
desenvolvimento na versão 1.03, lançada em 15 de junho de
1998. Há rumores que a versão 2.0 está para ser lançada.
O qmail não é software-livre. Sua licença proíbe de que você
distribua-o em formato pré-compilado (pacotes .rpm, .tgz ou
.deb), mas você pode distribuir o seu source-code
livremente.
Como dito acima, o qmail revolucionou o modo como os
servidores de e-mail funcionam, introduzindo o conceito de
Maildirs, sem falar de sua segurança, que é fenomenal. O
qmail foi escrito com esse intuito depois de várias brechas
de segurança encontradas no Sendmail.
NOTA: O nome correto é "qmail", não "Qmail".
4.1.2. Sendmail
---------------
O Sendmail foi um dos primeiros (se não o primeiro) MTA a
ser lançado oficialmente para GNU/Linux.
O Sendmail é pesado, seus arquivos de configuração são
horríveis (incompreensíveis, para falar a verdade) e suas
brechas de segurança são estrondosas. Porém foi o primeiro
servidor de e-mail oficial para GNU/Linux. Existem vários
administradores que não o trocam por nada.
O Sendmail vem com um aplicativo chamado *m4*. Esse
aplicativo lê algumas macros editadas e contrói um arquivo
de configuração para o Sendmail. Complicado, não?
4.1.3. Exim
-----------
Eu particularmente nunca utilizei, mas me falaram muito bem
dele. Embora não seja um servidor muito conhecido e tampouco
utilizado, falaram-me que ele é extremamente rápido e que
suporta um grande número de usuários simultâneos.
4.1.4. Courier-mail
-------------------
O Courier-mail é um servidor de e-mails e de grupos baseado
protocolos como ESMTP, IMAP, POP3, LDAP, SSL e HTTP. O
Courier-mail provém ESMTP, IMAP, POP3, webmail e serviços de
mailing lists em um único ambiente. Interessante para quem
gosta de algo centralizado. Os componentes individuais podem
ser habilitados e/ou disabilitados conforme a sua vontade.
4.2. MDA's
----------
Lista dos Mail Delivery Agents (MDA's) compatíveis com o
Maildrop.
4.2.1. Procmail
---------------
O Procmail foi originalmente desenvolvido por Stephen R. van
den Berg no outono de 1998. Reconhecendo que ele não tinha
tempo para manter o procmail por si só, Stephen criou uma
mailing list para discussão e futuro desenvolvimento do
mesmo e designou Philip Guenther como o mantenedor.
O Procmail pode ser usado para criar servidores de e-mail,
mailing lists, organizar seus e-mails em diferentes
diretórios/arquivos (dependendo do tipo de caixa de entrada
que você utiliza), inicial quaisquer programas com a chegada
de e-mail (exemplo: tocar diferentes sons dependendo do tipo
de e-mail que chega) ou encaminhar alguns e-mails chegos
para para alguém.
4.2.2. Postdrop
---------------
O Postdrop é um MDA que vem junto com o Postfix em si. Eu
nunca utilizei-o, mas me dizem que é mais simples de ser
utilizado, embora não possua filtros muito eficientes e seja
algo muito, mas muito simples. Foi uma idéia original para
manter quase tudo em um único pacote.
4.3. MUA's
----------
Lista dos Mail User Agents (MUA's). A lista é vasta.
4.3.4. Mail/Mailx
-----------------
É o MUA muito interessante quando se trata de estações
somente com modo texto e para desenvolvimento de
Shell-Scripts.
4.3.5. Ximian
-------------
O Ximian é um MUA muito poderoso que está sendo utilizado
pelos usuários mais desenvolvidos e mais maduros em sistemas
*nix-like. Creio eu que exista também uma versão para
Windows.
É muito robusto, porém eu o considero um pouco lento.
4.3.6. Kmail
------------
Leitor oficial de e-mails do KDE. Eu como não uso KDE, não
posso falar muito sobre ele, mas me falaram que ele é
simples e bem intuitivo.
4.4.1. ipopd
------------
Servidor POP da Universidade de Washington.
4.4.2. Cyrus-POP/Cyrus-IMAP
---------------------------
Servidores POP/IMAP para quem já está acostumado a utilizar
o MDA Cyrus.
4.4.3. solid-pop3d
------------------
Servidor POP com suporte a Maidir, PAM e vhosting.
4.4.4. qpopper
--------------
Servidor POP aperfeiçoado.
-----------------------------------------------------------------
5.1. Postfix
------------
Para o pacote básico, você pode fazer o seguinte:
# apt-get install postfix
Ele irá puxar o pacote do Postfix do CD (caso você tenha
puxado um conjunto de CD's e gravado) ou então puxar de
algum mirror da Debian.
Logo que ele terminar de puxar, ele irá fazer algumas
perguntas para você (o dpkg, para ser mais preciso). Ele irá
fazer à você as seguintes perguntas:
Tipo geral de configuração?
---------------------------
Aqui ele pergunta que tipo de servidor você irá querer
montar. Se é um servidor para a internet, para a intranet,
utilizando-se de SmartHost ou se será somente um servidor
para o envio local. Você pode escolher "Somente local".
Mail name?
----------
Seria o FQDN (Full Qualified Domain Name) da máquina, com
host e tudo o mais. No nosso exemplo, vamos colocar:
mail.dominio.com.br
Append .domain to simple addresses?
-----------------------------------
Essa opção especifica que quando ele ver somente um
componente no hostname, ele deva adicionar automaticamente o
.dominio.com.br. É seguro dizer "não" aqui.
Relay host?
-----------
Seria o host que você deverá repassar os e-mails. Você pode
não colocar nada aí.
Outros destinos para os quais aceitar mensagens?
------------------------------------------------
Aqui você especifica os domínios pelos quais você deseja que
o seu servidor de e-mail seja responsável, separados por
vírgulas. Adicione "dominio.com.br" depois do último valor e
vá para a próxima página.
Redes locais?
-------------
Aqui você especifica o relay do seu servidor Postfix.
Adicione as redes que você deseja que o seu MTA ouça por
requisições.
Usar procmail para entrega local?
---------------------------------
Aqui ele pergunta se você quer utilizar o Procmail como MDA.
Como nós iremos utilizar o Maildrop, vamos dizer que não.
Mailbox size limit?
-------------------
Define o tamanho máximo das suas caixas de mensagens. 0
significa que não existe valor.
Caracter de extensão de endereço local?
---------------------------------------
Você pode deixar o valor padrão aí.
Essas são as únicas perguntas que o Postfix irá fazer para
você. Vale lembrar que o Postfix foi feito para ser simples
de ser configurar. Você edita 5 tags e o seu servidor está
rodando.
Caso você tenha que alterar alguma coisa, pois errou ou
pulou algum passo, você pode refazer essa configuração
digitando:
# dpkg-reconfigure postfix
Caso você precise de alguma configuração mais específica,
rode o seguinte comando:
# dpkg-reconfigure -plow postfix
Dessa maneira, o dpkg irá fazer mais perguntas, para
configurações mais afinadas.
Ainda temos que fazer algumas alterações dentro do main.cf.
São elas:
NOTA: Caso as tags não existam, crie-as.
mailbox_command
---------------
Valor que deverá ficar:
mailbox_command = /usr/bin/maildrop -d ${USER}
home_mailbox
------------
Valor que deverá ficar:
home_mailbox = Maildir/
mynetworks
----------
Aqui é onde nós iremos definir o relay do Postfix, adicione
as redes conforme as suas necessidades.
Bom, acho que essas configurações devem resolver.
5.2. Maildrop
-------------
Para instalar o Maildrop, execute o seguinte comando:
# apt-get install maildrop
Com o Maildrop a única coisa que eu tive que fazer foi
descomentar uma linha do arquivo /etc/maildroprc, para que
ele lesse os Maildirs dentro dos diretórios HOME do usuário.
A linha é:
#DEFAULT="$HOME/Maildir"
E ela deverá ficar assim:
DEFAULT="$HOME/Maildir"
Essa linha é a última. Edite com o Vim ou com o seu editor
de texto predileto, salve e saia.
5.3. Courier-IMAP
-----------------
Para instalar o Courier-IMAP, você deverá executar o
seguinte comando:
# apt-get install courier-imap
Você não precisa configurar nada com esse item.
5.4. Courier-POP
----------------
Para instalar esse item, você deverá rodar o seguinte
comando:
# apt-get install courier-pop
Não foi necessária nenhuma configuração a mais.
5.5. Courier-authdaemon
-----------------------
Caso o Courier-IMAP ou o Courier-POP não tenham instalado
esse item já, você deverá rodar o seguinte comando para tal:
# apt-get install courier-authdaemon
Não foram necessárias mudanças em sua configuração.
5.6. BIND
---------
Estou presumindo que você saiba lidar com servidores DNS,
portanto eu não vou detalhar muito sua configuração, dizendo
apenas quais as entradas que você deverá adicionar no seu
mapa de DNS.
@ IN MX 1 mail.dominio.com.br.
smtp IN A 192.168.0.1
pop IN CNAME smtp
Isso deve resolver, saia e salve o seu mapa e reinicie o
named.
# /etc/init.d/bind9 restart
-----------------------------------------------------------------
6. Arquivos de configuração
---------------------------
Eis aqui os arquivos de configuração que serão utilizados.
6.1. /etc/postfix/main.cf
-------------------------
É o principal arquivo de configuração do Postfix. É ele que
controla como o servidor irá se comportar, regras de relay,
onde buscar os dados de usuários, escolher qual o MDA que
irá ser utilizado, os domínios pelos quais o Postfix irá
responder, etc.
6.2. /etc/passwd
----------------
É o arquivo que guarda as senhas e os logins dos usuários de
um servidor UNIX-like. Você deverá cadastrar os usuários no
seu sistema para que você possa disponibilizar uma conta de
e-mail para ele.
6.3. /etc/maildroprc
--------------------
Esse é o arquivo de configuração geral (veja bem, GERAL e
não individual) do maildrop. É nele que estarão contidas as
regras de filtragem e de configuração.
6.4. /var/log/mail.log
----------------------
Esse arquivo é muito, mas muito importante! Ele já salvou a
minha vida inúmeras vezes. Esse arquivo é o arquivo de log
do Postfix. Sempre que você está enviando, recebendo ou
se autenticando, é lá que aparece.
-----------------------------------------------------------------
7. Outros
---------
Aqui é onde eu irei colocar algumas informações sobre o
guia, em geral informações alheias ao assunto normal do
mesmo.
7.4. Agradecimentos
-------------------
Cássio, meu irmão mais velho, que além de ser o melhor
programador em C/C++ que eu já conheci, é o meu melhor
amigo. Foi ele que me apoiou sempre que eu precisei,
principalmente deixando eu usar o seu computador enquanto o
meu está queimado e não funciona.
Guilherme "semente", grande amigo e help-desk via ICQ,
sempre me ajuda quando eu estou com algum problema
aparentemente insolúvel, fez algumas revisões do guia, sem
falar que é o punk mais cult que eu já conheci!
Yuri Kropotkin, o ucraniano que é o cara que eu mais ajudei
na internet. Você me ajudou a fixar os meus conhecimentos,
sem falar que é um ótimo amigo!
Thiago Klein, professor de GNU/Linux. Sinto que a partir de
um determinado ponto, deixamos de ser aluno e professor e
passamos a ser amigos!
Sofia, grande amiga, sempre me apoiou e sempre se preocupou
com o autor do guia, mesm quando os dois estavam brigados.
Guaraná Piracaia, o qual eu bebi cerca de 30 litros enquanto
eu ia escrevendo esse guia.
Junix, grande amigo carioca que me deu uma mão sobre Postfix
e tirou algumas dúvidas. (Seu tratante, ainda espero a minha
camiseta, hehehe).
Lista de discussão debian-user-portuguese
(debian-user-portuguese@lists.debian.org). Quer tirar uma
dúvida sobre Debian? É para lá que você tem que escrever!
Pessoal da underlinux (http://www.underlinux.com.br). Me
divirto à beça escrevendo no fórum!
William "wrochal" da Rocha, por ter cedido o espaço para os
meus Guias.
E por último, mas não menos importante... Lais, os últimos
dias foram ótimos. Gosto muito de você.
Caso eu tenha esquecido do seu nome, quero ressaltar que eu
não fiz por mal e dedico esse espaço especialmente para que
você escreva seu nome com uma caneta para retro projetor:
______________________________________.
Observação: Caso a tinta não saia do seu monitor, utilize
uma flanelinha com álcool ou jogue um balde de água no
mesmo.
7.5. Referências
----------------
Para escrever esse guia, eu utilizei relativamente poucas
fontes, são elas:
* Documentação oficial do Postfix, disponível em
(http://www.postfix.org/documentation.html);
* "Editor Vi", de Roberto Severo de A. Coelho;
* Minha cuca, disponível acima do meu pescoço, mais
precisamente dentro do meu crânio.
7.8. ToDo
---------
As seguintes coisas estão na minha lista de "Coisas a serem
feitas":
* Falar de domínios virtuais;
* Falar de implementações com MySQL;
* Criar versões em outros formatos, como .doc e .pdf;
* Divulgar o guia (já que ele é praticamente um pingüim e um
gnu no ovo e na barriga da dona gnu, respectivamente).