Skip to main content

108.3 Básico sobre e-mail


Vamos entender como funciona o sistema de email de forma básica, sem se aprofundar ou subir um sistema de email.

Vamos entender algumas nomeclaturas muito importante para o entendimento básico do funcionamento de email.



Mail User Agent - MUA


É o cliente de email do usuário, é por ele que o usuário vai enviar, receber e gerenciar os emails. Exemplos de MUA incluem: Thunderbird, Outlook, Gmail entre outros.

O clinte (MUA) vai gerar a mensagem e então enviar ela para o MTA, e ele quem vai se encarregar de entregar as mensagens para o servidor de email correto.



Mail Transport Agent - MTA


É o servidor de email, ele é responsável por enviar e receber os emails, sempre garantindo que eles sejam entregues. Exemplos de MTA incluem: Postfix, Sendmailm, Qmail, Exim, Microsoft Exchange entre outros.



Mail Delivery Agent - MDA


Após o MTA enviar a mensagem para o servidor e email correto, o MTA do destinatário vai enviar essa mensagem para um MDA, ele vai verificar se essa mensagem não é um spam, um vírus, vai verificar se pode enviar (as vezes existem restrições como impedir anexos que tenham .iso), ele também faz o encaminhamento para outros emails, por exemplo, quando existem aliases de email. Exemplos de MDA incluem: Procmail, Fetchmail, Courier, Dovecot, Maildrop, Postdrop e etc.



Simple Mail Tranfer Protocol - SMTP


É o protocolo usado entre os MTA, servidores de email, é por meio desse protocolo que ele enviam mensagens uns para os outros. A porta padrão é a 25.



Open Relay


Quando um servidor SMTP (servidor de email) é configurado de forma que ele permita que qualquer usuário da Internet o use para enviar e-mails, ele é chamado de Open Relay.


Nesse caso esse servidor será certamente utilizado para usos maliciosos, principalmente para envio de e-mails de SPAM e/ou Phishing.


Cabe ao administrador realizar as devidas configurações para que isso não ocorra. Essas configurações entram apenas no programa da certificação LPIC-2. Para a LPIC-1 basta conhecer o termo "Open Relay".



Mailutils


Para a LPIc-1, basta usarmos um servidor de email interno, isso significa que nosso servidor de email não vai se comunicar com outro servidor de email fora da rede e para isso, todos os usuários do mail server devem se conectar ao servidor para ter acesso ao email, geralmente isso é feito por ssh.


O pacote mailutils vai instalar um conjunto de ferramentas para trabalhar com o email, incluindo o postfix e comandos como o mail.

# Instlando o mailutils:
$ sudo apt install mailutils

Quanto estiver instalando o postfix, será feito algumas peguntas, segue uma explicação sobre a primeira pergunta:


1° - Tipo de servidor de email

Será perguntado o tipo de configuração geral para o servidor, normalmente temos 5 opções:

OpçãoDescrição
No configurationNão vai ocorrer a configuração inicial.
Internet SiteEsse tipo é para um servidor de email que vai enviar e receber mensagens diretamente, é o tipo mais comum.
Internet with smarthostRecebe mensagens normalmente, mas é outra máquina que vai enviar as mensagens, opção conhecida como relayhost.
Satellite SystemA opção mais limitada que temos para o funcionamento do servidor de email. Envia email através de outra máquina e não recebe mensagens de emails, muito útil para monitorar servidores na rede interna que precisam enviar notificações por email.
Local OnlyUsada apenas em redes de terminais leves, os emails são trocados entre os usuário na mesma máquina, é como um email, mas fica somente nesse máquina, não sai para a Internet.

Para a LPI, Local Only é o suficiente, mas vamos fazer alguns testes a mais, então escolha Internet Site .


2° - Nome de domínio

Aqui voce deve inserie apenas o domínio que você possui. Se for teste, pode apenas usar o nome da máquina, mas para padronizar vamos colocar o nome linux.


Finalizado a instalação, já temos o servidor postfix rodando com algumas configurações básicas:

$ ps aux | grep -i postfix
root 3051 0.0 0.2 38032 4472 ? Ss 11:34 0:00 /usr/lib/postfix/sbin/master -w
postfix 3052 0.0 0.3 38300 6196 ? S 11:34 0:00 pickup -l -t unix -u -c
postfix 3053 0.0 0.3 38352 6212 ? S 11:34 0:00 qmgr -l -t unix -u
vagrant 4248 0.0 0.0 10756 728 pts/0 S+ 11:34 0:00 grep --color=auto -i postfix

O comando mail é um MUA muito simples, mas muito simples mesmo, por ele vamos enviar mensagens e ler mensagens também.

# Enviando mensagem:
$ mail -s "Assunto" user@domain

# Para enviar um email para um usuário local, rode assim:
$ mail -s "Assunto" user

#### Para finalizar a mensagem e enviar, digite 'Ctrl+d'.

# Um modo mais pratico é enviar assim:
$ echo "conteudo" | mail -s "Assunto" user

### Como estou usando uma máquina com vagrant, o nome do usuário é 'vagrant', então um email de teste no meu caso seria assim:
$ echo "Olá, você consegue ler isso?" | mail -s "Teste de email" vagrant

Para ler a mensagem, basta digitar mail sem argumentos e você será redirecionado para a caixa de entrada do email.

# Lendo emails:
$ mail
"/var/mail/vagrant": 1 message 1 new
>N 1 vagrant Tue Jun 15 11:40 13/539 Teste de email
?

# Para abrir esse email, basta digitar o número da mensagem, nesse caso, o número 1.

$ mail
"/var/mail/vagrant": 1 message 1 new
>N 1 vagrant Tue Jun 15 11:40 13/539 Teste de email
? 1
Return-Path: <vagrant@ubuntu2004.localdomain>
X-Original-To: vagrant@ubuntu2004.localdomain
Delivered-To: vagrant@ubuntu2004.localdomain
Received: by ubuntu2004.localdomain (Postfix, from userid 1000)
id 8FF814204C5; Tue, 15 Jun 2021 11:40:46 -0300 (-03)
Subject: Teste de email
To: <vagrant@ubuntu2004.localdomain>
X-Mailer: mail (GNU Mailutils 3.7)
Message-Id: <20210615144046.8FF814204C5@ubuntu2004.localdomain>
Date: Tue, 15 Jun 2021 11:40:46 -0300 (-03)
From: vagrant <vagrant@ubuntu2004.localdomain>

Olá, você consegue ler isso?

As mensagens de cada usuário ficam em /var/mail/ contendo o nome do usuário, se esse caminho não existir, já que ele é um link, o caminho absoluto é /var/spool/mail/.



Fazer o forward de emails


Uma forma de fazer um redirecionamento de email é criar um arquivo na home do usuário chamada .forward e dentro dele vamos colocar para quem o email deva ser redirecionado, assim toda vez que ele receber um email, esse email vai ser enviado para outra conta.

Essa é uma forma simples, mas não é a mais prática nem usual, a forma correta mesmo seria usando um MDA, mas para a LPI, você deve conhecer essa maneira.



Aplicando o Aliases


Uma prática muito comum para enviar um email de um remetente para outro, (onde esse primeito remetente não precisa de fato existir) ou para vários outros é usando aliases de email.

# Verificando os aliases existentes:
$ cat /etc/aliases
# See man 5 aliases for format
postmaster: root

# Tudo que for enviado para 'postmaster' será entregue para o root.

Sempre que alterar esse arquivo aliases, você deve rodar o comando newaliases para aplicar as mudanças.


Por exemplo:

$ cat /etc/aliases
# See man 5 aliases for format
postmaster: root
adm: user1,joao,roberto,cleber

Quando for enviado um email para adm, todos os administradores vão receber esse email.



Fila de email


Antes de enviar um email, o servidor de email guarda as mensagens numa fila, para poder então ser enviada, até mesmo em caso de problemas, com o email na fila, o servidor pode enviar assim que possível.


Para ver essa fila, usamos o comando mailq ou sendmail -bp. Outro comando importante é o postqueue -f, ele vai tentar reenviar os emails que questão na fila.