UP | HOME

LPI-2 202-450 Topico 211.1: Utilização de servidores de email
Serviços de email

Índice

211.1 Utilização de servidores de email - Objetivos

Peso 4

O candidato deve ser capaz de administrar um servidor de email, incluindo a configuração de aliases de email, cotas e domínios de email virtuais, que inclui saber configurar redirecionamento interno de emails.

Conhecimentos-chave:

Lista parcial dos arquivos, termos e ferramentas utilizados:

211.1 Utilização de servidores de email - Conteúdo

O processo de envio e recebimento de emails é composto de vários serviços interagindo entre si utilizando protocolos diferentes. Dentre esses protocolos, o SMTP (Simple Mail Transfer Protocol ou protocolo simples de transferência de correio em tradução nossa) é o responsável pelo tráfego das mensagens através da rede ou mesmo dentro de um mesmo sistema.

É importante ter em mente que o EMail (Electronic Mail ou correio eletrônico em tradução nossa) começou a tomar forma nos anos 60 a patir do advento dos computadores compartilhados onde vários usuários faziam uso de um mesmo equipamento. O uso desses equipamentos acontecia 24 horas por dia e se viu necessária a criação de uma forma confiável de trocas de mensagens entre usuários do mesmo sistema em turnos diferentes. Logo os primeiros sistemas de trocas de mensagens entre usuários começaram a tomar forma. Levando-se em conta que as primeiras redes de interconexões que deram forma a ARPANET começaram a ser implementadas apenas no final de 1960 toda essa troca de mensagens prévia eram feitas em caixas de entradas dentro de um único computador. Porém em 1971 a ARPANET já era uma realidade assim o primeiro EMail realmente parecido com o que temos hoje foi enviado, introduzindo a agora familiar sintaxe de endereço com o símbolo @ designando o endereço do sistema do usuário. Levou mais dez anos mas em 1981 foi introduzido o protocolo SMTP.

Os componentes da comunicação via EMail

Como já exposto acima o processo da comunicação via EMail é composto de vários serviços e/ou softwares e protocolos interagindo entre si estes softwares são divididos em 4 categorias:

  • MUA: Mail User Agent ou agente de usuário de correio em tradução nossa. Trata-se, por exemplo, do programa que é executado pelo usuário final para escrever, ler e remeter EMails;
  • MSA: Mail Submission Agent ou agente de submissão de correio em tradução nossa. Trata-se do software que recebe os EMails enviados pelos MUA e interage com o MTA;
  • MTA: Mail Transfer Agent ou agente de transferência de correio em tradução nossa. Ele aceita o EMail enviado pelo MUA através do MSA e se a conta de destino for de um dos domínios dele próprio ele a enviará ao MDA, caso a conta de destino for de um domínio externo ele a eviará para outro MTA que irá receber e processar a mensagem.
  • MDA: Mail Delivery Agent ou agente de entrega de correio em tradução nossa. Trata-se do responsável por processar e entregar as mensagens nas caixas de entradas dos usuários do domínio em questão (locais ou remotas). Sendo também conhecido como LDA (Local Delivery Agent ou agente de entrega local em tradução nossa).

    Tabela 1: Tabela de exemplos de componentes da comunicação via EMail
    MUA MSA MTA MDA
    Outlook SMTP SMTP POP
    Thunderbird postfix Postfix IMAP
    Evolution Exim Exim Procmail
    SquirrelMail Sendmail Sendmail Maildrop
          Sieve
          Dovecot
          Courier

O funcionamento do EMail

O EMail funciona manipulando as mensagens através de caixas de entrada sejam elas locais ou enviando a caixas de entradas que residam em outros servidores.

SMTP-transfer-model.png

Figura 1: Modelo do transito do EMail

Descritivo do fluxo de transito do EMail:

  1. O usuário tem acesso a sua caixa de entrada usando um dos vários clientes de EMail disponíveis (Thunderbird, Outlook, Evolution…) que são classificados como MUA. De uso do MUA o usuário pode compor seu EMail e enviá-lo ao MSA utilizando o protocolo SMTP;
  2. O MSA recebe a mensagem que foi enviada pelo MUA no passo anterior e interage com o MTA para a entrega do EMail;
  3. O MTA ao receber a mensagem do MSA verifica o campo destinatário da mensagem e:
    1. se a mensagem for destinada a um usuário do domínio administrado pelo próprio MTA ele a entregara ao MDA para entrega na caixa de entrada do destinatário;
    2. se a mensagem for destinada a um usuário de um domínio externo o MTA fará uma consulta no DNS requisitando quais os registros MX (Mail eXchanger ou trocador de correio em tradução nossa) para o domínio de destino e encaminhará o EMail para os MTA que respondem por essas entradas MX também utilizando o protocolo SMTP;

      Email-mx.png

      Figura 2: Detalhe da entrega de EMails para domínios diferentes

    3. o MTA do domínio de destino receberá via protocolo SMTP a mensagem do MTA de origem fará a verificação no endereço de destinatário e se este endereço for de uma das contas abaixo dele ele a entregará ao seu MDA para a entrega na caixa de entrada do destinatário. Caso a conta não exista ele responderá ao MTA de origem com uma mensagem de bounce negando a entrega com uma mensagem de rejeição padrão explicando o motivo;
  4. Por fim o usuário destinatário com seu MUA consultará o MDA de seu domínio utilizando o protocolo POP3 ou o protocolo IMAP para receber a mensagem em seu computador.

Protocolos envolvidos

POP3
(Post Office Protocol ou protocolo de agência postal em tradução nossa), é o protocolo que o MUA utiliza para para buscar as mensagens para a caixa de entrada em conjunto com o MDA, este assunto será abordado com mais profundidade to tópico 211.3;
IMAP
(Internet Message Access Protocol ou protocolo de acesso a mensagens pela Internet em tradução nossa) é utilizado pelos MUAs para verificar os status dos EMails (emails lidos, deletados ou movidos) através de múltiplos clientes de EMail. Com o IMAP, uma copia de cada mensagem é salva no servidor logo que as tarefas de sincronização são completadas. Este assunto também será abordado com mais profundidade no tópico 211.3.

O protocolo SMTP

O protocolo SMTP foi concebido tendo em mente as contas locais de usuário. A função do daemon SMTP é receber as mensagens destinadas aos usuários locais do sistema e encaminhar, via rede, as mensagens destinadas a usuários que não correspondam a contas do sistema local.

Como já exposto categoria de programas que tem essa função é chamada MTA os softwares mais tradicionais dessa categoria em código aberto são o Sendmail, Exim, e o Postfix.

A porta de comunicação padrão do SMTP é a 25/TCP onde o daemon MTA aguarda a chegada de mensagens enviadas por outro MTA na rede. Um usuário remoto autorizado também pode se comunicar com o MTA através do protocolo SMTP para enviar EMails. Neste caso a conexão será através do MSA pela porta 587/TCP para fins de criptografia e autenticação.

Os MTAs para o Linux

Agora vamos explanar os MTAs mais comuns em servidores GNU/Linux:

Sendmail

O Sendmail é agora conhecido como Proofpoint (após a Proofpoint, Inc adquirir a Sendmail, inc) é de longe o mais popular e um dos mais antigos MTAs da plataforma GNU/Linux. No entanto ele é bastante limitado em comparação com os MTAs modernos.

Por conta de seu setup complexo e mecanismos de segurança fracos novos MTAs surgiram como alternativas ao Sendmail.

Exim

O Exim é um MTA Free (GPL) desenvolvido para sistemas operacionais do tipo Unix como o Linux, Mac OSX, Solaris e outros. O Exim oferece um grande nível de flexibilidade no roteamento de mensagens em uma rede, com mecanismos e facilidades excepcionais para o monitoramento de mensagens recebidas, é o MTA padrão da distribuição Debian GNU/Linux.

Dentre suas características podemos citar:

  • Não conta com suporte aos protocolos POP3 e IMAP;
  • Suporta os protocolos SMTP (RFC 2821) e LMTP (RFC 2033, o LMTP é uma alternativa ao SMTP para situações onde o lado receptor não conta com uma fila de correio);
  • Suas configurações incluem ACLs, scan de conteúdo, criptografia e controle de roteamento de mensagens;
  • Uma documentação excelente;
  • Tem um utilitário chamado Lemonade que provê extensões para os protocolos SMTP e IMAP para prover mensagens para clientes móveis.

Qmail

É outro MTA livre e open-source disponível para o GNU/Linux. É considerado confiável, eficiente e oferece recursos de segurança abrangentes, portanto, um pacote MTA seguro. Porém está há muito tempo sem receber novas releases, sendo possivelmente e infelizmente um projeto abandonado.

É um pacote relativamente pequeno mas rico em recursos, que incluem:

  • Roda em vários sistemas operacionais Unix-like;
  • Instalação simples e rápida;
  • Configuração automática de clientes;
  • Contem uma organização separada entre endereços, arquivos e programas;
  • Suporte completo a grupos de endereços;
  • Permite que os usuários criem suas listas de email próprias;
  • Suporta e é fácil de configurar listas de email;
  • Suporta VERPs (variable envelope return path addresses ou envelopes com caminho de endereço de retorno - em tradução nossa - na requisição) o EMail não entrege pode revelar o endereço do destinatário não entregue sem exigir que o proprietário da lista analise as mensagens de bounce;
  • tem prevenção automática de loops nas listas de EMail;
  • suporta o gerenciador de listas Ezmlm.

Postfix

É um MTA multi-plataforma que foi desenhado e desenvolvido por Wietse Zweitze Venema para seu servidor de EMail enquanto ele trabalhava no departamento de pesquisa da IBM.

Foi desenvolvido como uma alternativa ao conhecido e popular Sendmail.

Ele empresta muitas das propriedades do Sendmail, mas tem uma operação interna totalmente distinta. Além disso é rápido e fácil de configurar tendo um mecanismo de operação seguro. Suas características principais são:

  • Controle de lixo eletrônico;
  • suporta múltiplos protocolos;
  • suporta bancos de dados;
  • suporta caixas de entradas;
  • suporte a manipulação de endereços e muito mais.

Para o exame LPI2 devemos focar nossos estudos sobre o Postfix e seus arquivos de configuração. Sobre os outros MTAs o que importa é ter uma noção sobre sua existência e características básicas.

O diretório /etc/postfix

É o diretório que abriga os arquivos de configuração principais do postfix.

┌─[root@centos7lpi]──[22:46]──[~]
└─[45]─># tree /etc/postfix/
/etc/postfix/
├── access
├── canonical
├── generic
├── header_checks
├── main.cf
├── master.cf
├── relocated
├── transport
└── virtual

0 directories, 9 files

main.cf

É o arquivo de configuração principal do Postfix. Dentro do arquivo há uma grande quantidade de comentários documentando as várias diretivas de configuração, o arquivo tem perto de 700 linhas.

Com um arquivo tão extenso é difícil analisar por ele a configuração corrente, para facilitar existe o comando postconf este aliado a opção -n mostrará apenas as diretivas que foram ajustadas (excluindo-se as que estejam com valores padrão).

┌─[root@centos7lpi]──[22:46]──[~]
└─[46]─># postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
html_directory = no
inet_interfaces = localhost
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
sample_directory = /usr/share/doc/postfix-2.10.1/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
unknown_local_recipient_reject_code = 550

Observação: para ver todas os valores das diretivas do Postfix incluindo os valores padrão execute o comando postconf sem argumentos.

Vamos verificar as diretivas mais importantes do arquivo main.cf:

myhostname

por padrão especifica o nome deste serviço de MTA na Internet. Para servidores em redes locais o hostname do próprio servidor basta. Porém em servidores que ficarão alcançáveis na Internet este valor deve corresponder a entrada DNS que o identificará na Internet (incluindo apontamento reverso);

myhostname = centos7lpi.infralinux.com.br

mydomain

especifica o nome de domínio para este serviço de MTA. Por padrão é utilizado o valor de $myhostname menos a primeira porção;

mydomain = infralinux.com.br

myorigin

Determina o domínio que aparecerá nos EMails enviados a partir do servidor local. O padrão é o valor $myhostname porém pode ser mais interessante mudar para o valor $mydomain para não expor o nome do servidor;

myorigin = $mydomain

disable_vrfy_command

é uma diretiva que eventualmene é oculta no arquivo main.cf. Esta diretiva lida com o problema de mineração de endereços de EMail executando algumas tratativas que tornam esta prática mais difícil. É uma diretiva útil de ser ativada em servidores que ficam expostos na Internet devendo ser configurada como yes. Essa diretiva mesmo que não apareça no arquivo main.cf tem o valor padrão como no;

disable_vrfy_command = yes

inet_interfaces

determina quais interfaces no servidor que o Postfix irá esperar por conexões, o valor padrão é localhost. Porém para fazer o Postfix atender a clients da rede esta diretiva pode ser setada para all;

inet_interfaces = all

mydestination

especifica para quais domínios as mensagens recebidas devem ser entregues localmente e não encaminhadas para outro servidor geralmente é setado com múltiplos valores separados por vírgulas;

mydestination = $myhostname, localhost.$mydomain, localhost

Essa diretiva também pode ser utilizada quando precisa-se que o MTA precisa responder para mais de um domínio mantendo as mesmas contas, tipo jeremias@infralinux.com.br e jeremias@redes.eti.br sendo as mesmas contas.

relay_domains

define para quais domínios será feito relay (direcionamento) de EMails recebidos de clientes desconhecidos (fora das redes autorizadas). O padrão é aceitar todos os EMails cujos destinos estejam definidos em mydestination;

relay_domains = $mydestination

sender_canonical_maps
indica o caminho (path) para uma tabela de mapeamento de endereços, permite transformar um endereço remetente de "usuario@dominio.feio" para "usuario@dominio.bonito";
relayhost

por padrão, o servidor Postfix entregará os EMails diretamente na Internet. Caso não seja esse o comportamento desejado ou possível, pode ser especificado um caminho indireto. O servidor que servirá de ponte deve ser definido como valor dessa diretiva;

relayhost = mailserver.infralinux.com.br

Observação: para linhas de configuração muito longas do main.cf é possível inserir uma quebra de linha no contúdo de alguma diretiva e continuar na próxima linha, desde que se mantenha um (1) espaço em branco de endentação.

myorigin = $mydomain
mydestination = localhost
mynetworks = 127.0.0.0/8

Comandos da camada de emulação do Sendmail

Como já exposto o Sendmail é o MTA mais antigo, logo os outros sistemas de MTA que vieram após ele mantiveram um nível de compatibilidade através de uma camada de emulação. Assim podemos utilizar comandos do Sendmail na CLI indiferente do MTA que está instalado. Exemplos disso são os comandos mailq, o comando sendmail e o comando newaliases.

O comando mailq invoca sendmail -bp, que lista o estado atual das filas de email locais. Cada entrada mostra o número ID do arquivo na fila, o tamanho da mensagem, a hora de chegada, remetente e os destinatários que ainda precisam ser entregues. Se uma mensagem não pôde ser entregue na última tentativa, é exibida a razão da falha.

┌─[root@centos7lpi]──[03:55]──[~]
└─[50]─># sendmail -bp
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
5A0F861A4DDD      524 Mon May 21 03:45:15  user1@centos7lpi.infralinux.com.br
              (connect to localhost.com[78.125.224.73]:25: Connection refused)
                                         user2@localhost.com

8C43F61A4DC9      447 Mon May 21 03:46:04  user1@centos7lpi.infralinux.com.br
              (connect to localhost.com[78.125.224.73]:25: Connection refused)
                                         user2@localhost.com

-- 1 Kbytes in 2 Requests.
┌─[root@centos7lpi]──[03:55]──[~]
└─[51]─># mailq
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
5A0F861A4DDD      524 Mon May 21 03:45:15  user1@centos7lpi.infralinux.com.br
              (connect to localhost.com[78.125.224.73]:25: Connection refused)
                                         user2@localhost.com

8C43F61A4DC9      447 Mon May 21 03:46:04  user1@centos7lpi.infralinux.com.br
              (connect to localhost.com[78.125.224.73]:25: Connection refused)
                                         user2@localhost.com

-- 1 Kbytes in 2 Requests.

Aliases

O comando newaliases invoca sendmail -I, que atualiza a tabela de aliases. Os aliases são nomes alternativos para entrega de EMail em uma conta local. É possível, por exemplo, criar um alias para que todas as mensagens destinadas para admin sejam entregues na conta do usuário root. Os aliases são definidos no arquivo /etc/aliases.

#
#  Aliases in this file will NOT be expanded in the header from
#  Mail, but WILL be visible over networks or from /bin/mail.
#
#       >>>>>>>>>>      The program "newaliases" must be run after
#       >> NOTE >>      this file is updated for any changes to
#       >>>>>>>>>>      show through to sendmail.
#

# Basic system aliases -- these MUST be present.
mailer-daemon:  postmaster
postmaster:     root

# General redirections for pseudo accounts.
bin:            root
daemon:         root
adm:            root
lp:             root
sync:           root
shutdown:       root
halt:           root
mail:           root
news:           root
uucp:           root
operator:       root
...

Cada alias é definido em uma linha, no formato destinatário: conta-local. Utiliza-se a vírgula para definir mais de uma conta local para o mesmo destinatário:

root: jeremias,firmino

Após alterar o arquivo /etc/aliases, é necessário executar o comando newaliases ou o comando sendmail -I para atualizar a tabela de aliases utilizada pelo MTA. Os destinatários não incorporam o nome de domínio no endereço de EMail, pois a entrega local está subordinada aos domínios que o MTA trata como locais.

Virtual

O conceito do arquivo /etc/postfix/virtual é similar ao conceito dos aliases mas ele é usado para redirecionar EMails para destinos virtuais. É um conceito comum em servidores multi-domínios. Tal como direcionar mensagens de jeremias@infralinux.com.br para jeremias@redes.eti.br. Também de forma análoga aos aliases será criada uma lista apontando que uma mensagem de um endereço vá para outro qualquer.

abc@xyz.com    user1
efg@lmnop.com   root

Assim como no caso dos aliases precisamos converter o arquivo para o formato binário porém utilizando o comando postmap

postmap /etc/postfix/virtual

Agora precisamos ajustar a diretiva virtual_alias_map no arquivo main.cf:

virtual_alias_map = unix:hash:/etc/postfix/virtual

Por fim reiniciar o daemon do Postfix.

O comando mail

O comando mail está contido no pacote mailx. Trata-se de um utilitário simples em linha de comando para interagir com o MTA que está rodando no servidor. Assim em nosso servidor de testes podemos enviar um email para o usuário root a partir do usuário user1.

┌─[root@centos7lpi]──[00:06]──[~]
└─[67]─># su - user1
Último login:Qua Dez  8 00:04:13 -03 2021em pts/0
[user1@centos7lpi ~]$ mail -s "hello root" root@localhost
Olá!! Eu sou o user1...
EOT
[user1@centos7lpi ~]$ exit
logout
┌─[root@centos7lpi]──[00:06]──[~]
└─[68]─># mail
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/root": 2 messages 1 new
    1 user1@centos7lpi.inf  Wed Dec  8 00:05  20/696   "hello root"
>N  2 user1@centos7lpi.inf  Wed Dec  8 00:06  18/684   "hello root"
& 
Message  2:
From user1@centos7lpi.infralinux.com.br  Wed Dec  8 00:06:28 2021
Return-Path: <user1@centos7lpi.infralinux.com.br>
X-Original-To: root@localhost
Delivered-To: root@localhost.infralinux.com.br
Date: Wed, 08 Dec 2021 00:06:27 -0300
To: root@localhost.infralinux.com.br
Subject: hello root
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=iso-8859-1
From: user1@centos7lpi.infralinux.com.br
Status: R

Olá!! Eu sou o user1...

& Held 2 messages in /var/spool/mail/root

No exemplo acima o user1 utilizou o modo interativo onde ele cria a mensagem e após digitá-la ele entra com a combinação de teclas CTRL+D para sair do modo de edição (onde o terminal emite EOT).

Também podemos trabalhar de modo não interativo utilizando o |:

echo "Isto é um e-mail de teste" | mail -s "Assunto Teste 2" root@localhost

Porém para mensagens grandes o echo é limitado, como alternativa usamos o < para direcionar um arquivo para o comando mail:

mail -s "Assunto Teste 3" root@localhost < /tmp/texto

Contas de EMail

As tradicionais contas de usuários no sistema já não são mais o principal modo de administrar contas de EMail em ambientes de média ou larga escala. Mesmo em ambeintes de pequena escala, como uma intranet de poucos usuários, o ônus de administrar contas de usuários Unix tradicionais apenas para oferecer uma conta de EMail acessada remotamente torna mais atraente outros tipos de gestão de contas, no caso as contas virtuais.

Uma conta virtual substitui a conta de usuário Linux tradicional como mecanismo de identificação de usuários no sistema de EMail. Além dessas contas e dos aliases para elas, o MTA pode consultar outras fontes que informem quais são os domínios administrados localmente e as contas de email associadas a eles.

As informações de domínios e contas virtuais podem ser armazenadas em arquivos de texto ou em bancos de dados. Para informações armazenadas num banco de dados MySQL, as seguintes entradas devem constar no arquivo /etc/postfix/main.cf:

virtual_mailbox_domains = mysql:/etc/postfix/vmail-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/vmail-mailboxes.cf
virtual_alias_maps = mysql:/etc/postfix/vmail-aliases.cf

As diretivas acima indicam os arquivos que contém as informações de acesso ao banco de dados. Por exemplo, o arquivo /etc/postfix/vmail-domains.cf deve possuir um conteúdo no formato a seguir:

user = vmail-user
password = p4ssw0rd
hosts = 127.0.0.1
dbname = vmail-db
query = SELECT 1 FROM virtual_domains WHERE name='%s'

A partir deste arquivo, o Postfix vai utilizar as credenciais em user e password para acessar o banco de dados indicado em dbname. Os domínios que constarem na tabela virtual_domains serão considerados domínios administrados pelo Postfix local.

Os demais arquivos cumprem função semelhante, definindo em quais tabelas do banco de dados são encontrados os endereços de EMail (que substituem as contas de usuários locais) e a tabela com os aliases de EMail. Após alterar os arquivos com as definições de acesso, é necessário executar o comando postmap:

postmap /etc/postfix/vmail-*.cf

Com a execução do comando serão gerados arquivos binários com o sufixo .db para cada arquivo de definições. Nesses arquivos são armazenadas as informações extraídas do banco de dados e que serão utilizadas pelo Postfix.

Segurança

O Postfix permite implementar criptografia TLS para garantir a identidade do servidor e a criptografia dos dados trafegados. Para isso é necessário que tenha sido gerado o certificado de autenticidade do domínio e a chave privada correspondente (consultar o tópico 208.2 para detalhes da geração do certificado). O certificado e as opções de TLS devem ser incluídas no arquivo /etc/postfix/main.cf.

smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/ssl/certs/mailcert.pem
smtpd_tls_key_file = /etc/ssl/certs/mail.key

As opções smtpd_tls_cert_file e smtpd_tls_key_file indicam a localização dos arquivos do certificado e da chave privada. Com essas alterações a comunicação do Postfix com outros servidores SMTP será criptografada e a identidade do servidor assegurada pelo certificado.

O diretório /var/spool/postfix

É o diretório usado para as atividades do Postfix, é para onde vão as mensagens enfileiradas.

┌─[root@centos7lpi]──[00:42]──[/var/spool/postfix]
└─[73]─># ll
total 0
drwx------. 2 postfix root       6 Dez  8 00:06 active
drwx------. 2 postfix root       6 Abr  1  2020 bounce
drwx------. 2 postfix root       6 Abr  1  2020 corrupt
drwx------. 2 postfix root       6 Abr  1  2020 defer
drwx------. 2 postfix root       6 Abr  1  2020 deferred
drwx------. 2 postfix root       6 Abr  1  2020 flush
drwx------. 2 postfix root       6 Abr  1  2020 hold
drwx------. 2 postfix root       6 Dez  8 00:06 incoming
drwx-wx---. 2 postfix postdrop   6 Dez  8 00:06 maildrop
drwxr-xr-x. 2 root    root      80 Dez  8 00:05 pid
drwx------. 2 postfix root     256 Dez  7 22:40 private
drwx--x---. 2 postfix postdrop  73 Dez  7 22:40 public
drwx------. 2 postfix root       6 Abr  1  2020 saved
drwx------. 2 postfix root       6 Abr  1  2020 trace

Existe um bom número de diretórios aqui. A maioria desses diretórios só terá informações se a configuração do Postfix estiver retendo algum EMail por algum motivo ou se estiver esperando pra entregá-lo, caso contrário, a maioria desses diretórios (exceto pid ou corrupt) devem permanecer vazios.

O diretório /var/spool/mail

É o diretório padrão para as caixas de entrada. No caso por padrão os EMails serão entregues nos arquivos existentes nomeados com os nomes dos usuários dentro desse diretório.

┌─[root@centos7lpi]──[00:45]──[/var/spool/mail]
└─[79]─># ll
total 4
-rw-------. 1 root  mail 1391 Dez  8 00:06 root
-rw-rw----. 1 user1 mail    0 Dez  8 00:00 user1

Quando o Postfix recebe uma mensagem, se ela for para um usuário local então ela será colocada em /var/spool/mail/<username> mas se ele for enviá-la para outro lugar ela existirá no diretório /var/spool/postfix ficando lá até ser entregue no MTA de destino, depois ela será eliminada.

Logs do sistema de EMail

O Postfix usa o daemon syslog para seus registros. A configuração disso fica em /etc/syslog.conf ou em /etc/rsyslog.conf dependendo da distribuição usada.

┌─[root@centos7lpi]──[00:52]──[/var/spool/mail]
└─[83]─># cat /etc/rsyslog.conf | grep maillog
mail.*                                                  -/var/log/maillog
┌─[root@centos7lpi]──[00:52]──[/var/spool/mail]
└─[84]─># tail /var/log/maillog 
Dec  8 00:05:48 centos7lpi postfix/pickup[1368]: 5F06C87DD90: uid=1000 from=<user1>
Dec  8 00:05:48 centos7lpi postfix/cleanup[2577]: 5F06C87DD90: message-id=<20211208030548.5F06C87DD90@centos7lpi.infralinux.com.br>
Dec  8 00:05:48 centos7lpi postfix/qmgr[1369]: 5F06C87DD90: from=<user1@centos7lpi.infralinux.com.br>, size=505, nrcpt=1 (queue active)
Dec  8 00:05:49 centos7lpi postfix/local[2579]: 5F06C87DD90: to=<root@localhost.infralinux.com.br>, orig_to=<root@localhost>, relay=local, delay=1.6, delays=1/0.36/0/0.26, dsn=2.0.0, status=sent (delivered to mailbox)
Dec  8 00:05:49 centos7lpi postfix/qmgr[1369]: 5F06C87DD90: removed
Dec  8 00:06:27 centos7lpi postfix/pickup[1368]: D701787DBE9: uid=1000 from=<user1>
Dec  8 00:06:27 centos7lpi postfix/cleanup[2577]: D701787DBE9: message-id=<20211208030627.D701787DBE9@centos7lpi.infralinux.com.br>
Dec  8 00:06:28 centos7lpi postfix/qmgr[1369]: D701787DBE9: from=<user1@centos7lpi.infralinux.com.br>, size=503, nrcpt=1 (queue active)
Dec  8 00:06:28 centos7lpi postfix/local[2579]: D701787DBE9: to=<root@localhost.infralinux.com.br>, orig_to=<root@localhost>, relay=local, delay=0.44, delays=0.33/0/0/0.11, dsn=2.0.0, status=sent (delivered to mailbox)
Dec  8 00:06:28 centos7lpi postfix/qmgr[1369]: D701787DBE9: removed

Como mostrado acima no rsyslog está configurado para escrever os registros do postfix no arquivo /var/log/maillog e por fim os registros constantes nesse arquivo.

O comando qshape ajuda o administrador a entender a distribuição de mensagens da fila do Postfix, elas serão classificadas por tempo, domínio do remetente ou domínio do destinatário. O programa precisa de acesso de leitura aos diretórios de filas e arquivos de filas, portanto deve ser executado como superusuário ou por um mail_owner especificado no main.cf (geralmente usuário postfix).

# qshape
               T  5 10 20 40 80 160 320 640 1280 1280+
        TOTAL  5  0  0  0  0  0   0   0   0    0     5
    gmail.com  4  0  0  0  0  0   0   0   0    0     4
    yahoo.com  1  0  0  0  0  0   0   0   0    0     1

Por fim esses são os pontos requisitados nesse tópico.

Autor: Jeremias Alves Queiroz

Criado em: 2021-12-19 dom 20:58

Valid XHTML 1.0 Strict