Pesquisa de site

Configurando serviços de e-mail (SMTP, Imap e Imaps) e restringindo o acesso ao SMTP - Parte 7


Um LFCE (Linux Foundation Certified Engineer) é um profissional treinado que possui as habilidades para instalar, gerenciar e solucionar problemas de serviços de rede em sistemas Linux e é responsável pelo projeto, implementação e manutenção contínua da arquitetura do sistema e administração de usuários.

Apresentando o Programa de Certificação Linux Foundation.

Num tutorial anterior discutimos como instalar os componentes necessários de um serviço de correio. Se você ainda não instalou o Postfix e o Dovecot, consulte a Parte 1 desta série para obter instruções sobre como fazer isso antes de continuar.

Requerimento

  1. Instale Postfix Mail Server e Dovecot – Parte 1

Neste post, vou mostrar como configurar seu servidor de e-mail e como realizar as seguintes tarefas:

  1. Configurar aliases de e-mail
  2. Configurar um serviço IMAP e IMAPS
  3. Configurar um serviço smtp
  4. Restringir o acesso a um servidor smtp

Nota: Nossa configuração cobrirá apenas um servidor de e-mail para uma rede local onde as máquinas pertencem ao mesmo domínio. O envio de mensagens de e-mail para outros domínios exige uma configuração mais complexa, incluindo recursos de resolução de nomes de domínio, que está fora do escopo da certificação LFCE.

Mas primeiro, vamos começar com algumas definições.

Componentes de um processo de envio, transporte e entrega de correspondência

A imagem a seguir ilustra o processo de transporte de e-mail começando pelo remetente até que a mensagem chegue à caixa de entrada do destinatário:

Para tornar isso possível, várias coisas acontecem nos bastidores. Para que uma mensagem de e-mail seja entregue de um aplicativo cliente (como Thunderbird, Outlook ou serviços de webmail como Gmail ou Yahoo! Mail) para seu servidor de e-mail e de lá para o servidor de destino e, finalmente, para o destinatário pretendido , um serviço SMTP (Simple Mail Transfer Protocol) deve estar instalado em cada servidor.

Ao falar sobre serviços de e-mail, você encontrará os seguintes termos mencionados com frequência:

Agente de Transporte de Mensagens – MTA

MTA (abreviação de Mail ou Message Transport Agent), também conhecido como mail relay, é um software responsável por transferir mensagens de e-mail de um servidor para um cliente (e vice-versa também). Nesta série, o Postfix atua como nosso MTA.

Agente de usuário de correio – MUA

MUA, ou Mail User Agent, é um programa de computador usado para acessar e gerenciar as caixas de entrada de e-mail do usuário. Exemplos de MUAs incluem, mas não estão limitados a, Thunderbird, Outlook e interfaces de webmail como Gmail, Outlook.com, para citar alguns. Nesta série, usaremos o Thunderbird em nossos exemplos.

Agente de entrega de correio

MDA (abreviação de Message ou Mail Delivery Agent) é a parte do software que realmente entrega mensagens de e-mail nas caixas de entrada dos usuários. Neste tutorial, usaremos o Dovecot como nosso MDA. O Dovecot também cuidará da autenticação do usuário.

Protocolo Simples de Transferência de Correio – SMTP

Para que esses componentes possam “conversar” entre si, eles devem “falar” a mesma “linguagem” (ou protocolo ), ou seja, SMTP (Simple Mail Transfer Protocol) conforme definido na RFC 2821. Provavelmente, você terá que consultar essa RFC ao configurar seu ambiente de servidor de e-mail.

Outros protocolos que devemos levar em consideração são o IMAP4 (Internet Message Access Protocol), que permite gerenciar mensagens de e-mail diretamente no servidor sem baixá-las para o disco rígido do nosso cliente. e POP3 (Post Office Protocol), que permite baixar as mensagens e pastas para o computador do usuário.

Nosso ambiente de testes

Nosso ambiente de testes é o seguinte:

Configuração do servidor de correio
Mail Server OS	: 	Debian Wheezy 7.5 
IP Address	:	192.168.0.15
Local Domain	:	example.com.ar
User Aliases	:	[email  is aliased to [email  and [email 
Configuração da máquina cliente
Mail Client OS	: 	Ubuntu 12.04
IP Address	:	192.168.0.103

Em nosso cliente, configuramos a resolução DNS elementar adicionando a seguinte linha ao arquivo /etc/hosts.

192.168.0.15 example.com.ar mailserver

Adicionando aliases de e-mail

Por padrão, uma mensagem enviada a um usuário específico deve ser entregue somente a esse usuário. No entanto, se você quiser entregá-lo também a um grupo de usuários ou a um usuário diferente, você pode criar um alias de e-mail ou usar um dos existentes em /etc/postfix/aliases , seguindo esta sintaxe:

user1: user1, user2

Assim, os e-mails enviados para usuário1 também serão entregues para usuário2. Observe que se você omitir a palavra user1 após os dois pontos, como em

user1: user2

as mensagens enviadas para usuário1 serão enviadas apenas para usuário2, e não para usuário1.

No exemplo acima, user1 e user2 já devem existir no sistema. Você pode consultar a Parte 8 da série LFCS se precisar refrescar sua memória antes de adicionar novos usuários.

  1. Como adicionar e gerenciar usuários/grupos no Linux
  2. 15 comandos para adicionar usuários no Linux

No nosso caso específico, usaremos o seguinte alias conforme explicado anteriormente (adicione a seguinte linha em /etc/aliases).

sysadmin: gacanepa, jdoe

E execute o seguinte comando para criar ou atualizar a tabela de pesquisa de aliases.

postalias /etc/postfix/aliases

Assim, as mensagens enviadas para [email protegido] serão entregues na caixa de entrada dos usuários listados acima.

Configurando o Postfix – O serviço SMTP

O arquivo de configuração principal do Postfix é /etc/postfix/main.cf. Você só precisa configurar alguns parâmetros antes de poder usar o serviço de correio. Entretanto, você deve se familiarizar com todos os parâmetros de configuração (que podem ser listados em man 5 postconf) para configurar um servidor de e-mail seguro e totalmente personalizado.

Nota: Este tutorial destina-se apenas a iniciar esse processo e não representa um guia completo sobre serviços de e-mail com Linux.

Abra o arquivo /etc/postfix/main.cf com o editor de sua escolha e faça as seguintes alterações conforme explicado.

vi /etc/postfix/main.cf

1. myorigin especifica o domínio que aparece nas mensagens enviadas do servidor. Você pode ver o arquivo /etc/mailname usado com este parâmetro. Sinta-se à vontade para editá-lo, se necessário.

myorigin = /etc/mailname

Se o valor acima for usado, os e-mails serão enviados como [email , onde usuário é o usuário que envia a mensagem.

2. mydestination lista quais domínios esta máquina entregará mensagens de e-mail localmente, em vez de encaminhá-las para outra máquina (agindo como um sistema de retransmissão). As configurações padrão serão suficientes em nosso caso (certifique-se de editar o arquivo para se adequar ao seu ambiente).

Onde o arquivo /etc/postfix/transport define o relacionamento entre os domínios e o próximo servidor para o qual as mensagens de correio devem ser encaminhadas. No nosso caso, como entregaremos mensagens apenas para nossa rede local (ignorando assim qualquer resolução DNS externa), a seguinte configuração será suficiente.

example.com.ar    local:
.example.com.ar    local:

Em seguida, precisamos converter esse arquivo de texto simples para o formato .db, que cria a tabela de pesquisa que o Postfix realmente usará para saber o que fazer com os e-mails recebidos e enviados.

postmap /etc/postfix/transport

Você precisará se lembrar de recriar esta tabela se adicionar mais entradas ao arquivo de texto correspondente.

3. mynetworks define as redes autorizadas das quais o Postfix encaminhará mensagens. O valor padrão, sub-rede, diz ao Postfix para encaminhar mensagens de clientes SMTP nas mesmas sub-redes IP apenas da máquina local.

mynetworks = subnet

4. relay_domains especifica os destinos para os quais os e-mails devem ser enviados. Deixaremos o valor padrão intacto, que aponta para mydestination. Lembre-se de que estamos configurando um servidor de e-mail para nossa LAN.

relay_domains = $mydestination

Observe que você pode usar $mydestination em vez de listar o conteúdo real.

5. inet_interfaces define quais interfaces de rede o serviço de correio deve escutar. O padrão, all, diz ao Postfix para usar todas as interfaces de rede.

inet_interfaces = all

6. Finalmente, mailbox_size_limit e message_size_limit serão usados para definir o tamanho da caixa de correio de cada usuário e o tamanho máximo permitido de mensagens individuais, respectivamente, em bytes.

mailbox_size_limit = 51200000
message_size_limit = 5120000

Restringindo o acesso ao servidor SMTP

O servidor Postfix SMTP pode aplicar certas restrições a cada solicitação de conexão do cliente. Nem todos os clientes devem ter permissão para se identificarem no servidor de e-mail usando o comando smtp HELO e certamente nem todos eles devem ter acesso para enviar ou receber mensagens.

Para implementar essas restrições, usaremos as seguintes diretivas no arquivo main.cf. Embora sejam autoexplicativos, comentários foram adicionados para fins de esclarecimento.

Require that a remote SMTP client introduces itself with the HELO or EHLO command before sending the MAIL command or other commands that require EHLO negotiation.
smtpd_helo_required = yes

Permit the request when the client IP address matches any network or network address listed in $mynetworks
Reject the request when the client HELO and EHLO command has a bad hostname syntax
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_helo_hostname

Reject the request when Postfix does not represent the final destination for the sender address
smtpd_sender_restrictions = permit_mynetworks, reject_unknown_sender_domain

Reject the request unless 1) Postfix is acting as mail forwarder or 2) is the final destination
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination

A página postconf dos parâmetros de configuração do Postfix pode ser útil para explorar melhor as opções disponíveis.

Configurando o Dovecot

Logo após a instalação do dovecot, ele suporta os protocolos POP3 e IMAP, juntamente com suas versões seguras, POP3S e IMAPS, respectivamente.

Adicione as seguintes linhas no arquivo /etc/dovecot/conf.d/10-mail.conf.

%u represents the user account that logs in
Mailboxes are in mbox format
mail_location = mbox:~/mail:INBOX=/var/mail/%u
Directory owned by the mail group and the directory set to group-writable (mode=0770, group=mail)
You may need to change this setting if postfix is running a different user / group on your system
mail_privileged_group = mail

Se você verificar seu diretório inicial, notará que há um subdiretório de correio com o seguinte conteúdo.

Além disso, observe que o arquivo /var/mail/%u é onde os e-mails do usuário são armazenados na maioria dos sistemas.

Adicione a seguinte diretiva a /etc/dovecot/dovecot.conf (observe que imap e pop3 implicam imaps e pop3s também).

protocols = imap pop3

E certifique-se de que /etc/conf.d/10-ssl.conf inclua as seguintes linhas (caso contrário, adicione-as).

ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem

Agora vamos reiniciar o Dovecot e verificar se ele escuta nas portas relacionadas a imap, imaps, pop3 e pop3s.

netstat -npltu | grep dovecot

Configurando um cliente de email e enviando/recebendo emails

Em nosso computador cliente, abriremos o Thunderbird e clicaremos em ArquivoNovoConta de e-mail existente. Seremos solicitados a inserir o nome da conta e o endereço de e-mail associado, juntamente com sua senha. Quando clicamos em Continuar, o Thunderbird tentará se conectar ao servidor de e-mail para verificar as configurações.

Repita o processo acima para a próxima conta ([email protegido]) e as duas caixas de entrada a seguir deverão aparecer no painel esquerdo do Thunderbird.

Em nosso servidor, escreveremos uma mensagem de e-mail para sysadmin, que tem alias de jdoe e gacanepa.

O registro de e-mail (/var/log/mail.log) parece indicar que o e-mail enviado para sysadmin foi retransmitido para [email  e [email , como pode ser visto na imagem a seguir.

Podemos verificar se o e-mail foi realmente entregue ao nosso cliente, onde as contas IMAP foram configuradas no Thunderbird.

Por fim, vamos tentar enviar uma mensagem de [email  para [email .

No exame, você deverá trabalhar exclusivamente com utilitários de linha de comando. Isso significa que você não poderá instalar um aplicativo cliente de desktop como o Thunderbird, mas será solicitado a usar o e-mail. Usamos o Thunderbird neste capítulo apenas para fins ilustrativos.

Conclusão

Neste post explicamos como configurar um servidor de e-mail IMAP para sua rede local e como restringir o acesso ao servidor SMTP. Se acontecer de você encontrar um problema ao implementar uma configuração semelhante em seu ambiente de teste, você vai querer verificar a documentação online do Postfix e Dovecot (especialmente as páginas sobre os principais arquivos de configuração, /etc/postfix/main.cf e/etc/dovecot/dovecot.conf, respectivamente), mas em qualquer caso, não hesite em entrar em contato comigo usando o formulário de comentários abaixo. Terei o maior prazer em ajudá-lo.