One place for hosting & domains

      Como instalar e configurar o Postfix no Ubuntu 20.04


      Uma versão anterior deste tutorial foi escrita por Justin Ellingwood.

      Introdução

      O Postfix é um Agente de Transferência de E-mail (MTA) de código aberto popular que pode ser usado para rotear e entregar e-mails em um sistema Linux. Estima-se que cerca de 25% dos servidores públicos de e-mail na internet executem o Postfix.

      Neste guia, você irá aprender como instalar e configurar o Postfix em um servidor Ubuntu 20.04. Em seguida, você irá testar se o Postfix é capaz de encaminhar e-mail corretamente instalando o s-nail, um Mail User Agent (MUA), também conhecido como um cliente de e-mail.

      Observe que o objetivo deste tutorial é ajudá-lo a colocar o Postfix funcionando rapidamente com apenas algumas funcionalidades básicas de e-mail. Você não terá um servidor de e-mail completo ao final deste guia, mas você terá alguns dos componentes fundamentais dessa configuração para ajudá-lo a começar.

      Pré-requisitos

      Para seguir este guia, você precisará do seguinte:

      • Um servidor executando Ubuntu 20.04 para funcionar como seu servidor de e-mail do Postfix. O servidor deve ter um usuário não-root com privilégios sudo e um firewall configurado com UFW. Siga nosso guia de configuração inicial do servidor Ubuntu 20.04 para configurar isto.
      • Um nome de domínio totalmente qualificado apontado para o seu servidor Ubuntu 20.04. Você pode encontrar ajuda para configurar seu nome de domínio com a DigitalOcean seguindo nossa documentação de rede sobre domínios e DNS. Esteja ciente de que se você planeja acessar e-mails de um local externo, você também precisará certificar-se de que tem um registro MX apontando para seu servidor de e-mail.

      Observe que este tutorial assume que você está configurando um host que tenha o FQDN de mail.example.com. Sempre que necessário, certifique-se de alterar example.com ou mail.example.com para refletir seu próprio FQDN.

      Passo 1 — Instalando o Postfix

      O Postfix está incluído nos repositórios padrão do Ubuntu, assim você pode instalá-lo com o APT.

      Para começar, atualize seu cache de pacotes apt local:

      Em seguida, instale o pacote postfix com o seguinte comando. Observe que aqui passamos a variável de ambiente DEBIAN_PRIORITY=low neste comando de instalação. Isso fará com que o processo de instalação solicite que você configure algumas opções adicionais:

      • sudo DEBIAN_PRIORITY=low apt install postfix

      O processo de instalação abrirá uma série de prompts interativos. Para os propósitos deste tutorial, use as seguintes informações para preencher seus prompts:

      • General type of mail configuration?: para isto, escolha Internet Site uma vez que isso atende às nossas necessidades de infraestrutura.
      • System mail name: este é o domínio base usado na construção de um endereço de e-mail válido quando apenas a parte da conta do endereço é fornecida. Por exemplo, digamos que o nome de host do seu servidor é mail.example.com. Você provavelmente desejará definir o nome do correio do sistema como example.com para que, dado o usuário user1, o Postfix usará o endereço user1@example.com.
      • Root and postmaster mail recipient: esta é a conta Linux em que serão encaminhados e-mails destinados a root@ e postmaster@. Use sua conta principal para isso. Neste caso de exemplo, sammy.
      • Other destinations to accept mail for: define os destinos de e-mail que essa instância do Postfix aceitará. Se você precisar adicionar outros domínios pelos quais este servidor será responsável por receber, adicione-os aqui. Caso contrário, o padrão será suficiente.
      • Force synchronous updates on mail queue?: uma vez que você provavelmente está usando um sistema de arquivos registrados em diário, aceite a opção No aqui.
      • Local networks: esta é uma lista das redes para as quais seu servidor de e-mail está configurado para retransmitir as mensagens. O padrão deve funcionar para a maioria dos cenários. Se você optar por modificá-la, certifique-se de ser muito restritivo em relação à faixa da rede.
      • Mailbox size limit: isso pode ser usado para limitar o tamanho das mensagens. Definindo-o para 0 desativa qualquer restrição de tamanho.
      • Local address extension character: este é o caractere que pode ser usado para separar a parte regular do endereço de uma extensão (usado para criar pseudônimos dinâmicos). O padrão, + irá funcionar para este tutorial.
      • Internet protocols to use: escolha se vai restringir a versão de IP que o Postfix suporta. Para os fins deste tutorial, escolha all.

      Para ser explícito, estas são as configurações usadas neste guia:

      • General type of mail configuration?: Internet Site
      • System mail name: example.com (e não mail.example.com)
      • Root and postmaster mail recipient: o nome de usuário da sua conta principal do Linux (sammy em nossos exemplos)
      • Other destinations to accept mail for: $myhostname, example.com, mail.example.com, localhost.example.com, localhost
      • Force synchronous updates on mail queue?: No
      • Local networks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
      • Mailbox size limit: 0
      • Local address extension character: +
      • Internet protocols to use: all

      Nota: Se você precisar retornar para alterar essas configurações, poderá fazê-lo digitando:

      • sudo dpkg-reconfigure postfix

      Os prompts estarão pré-preenchidos com suas respostas anteriores.

      Quando o processo de instalação terminar, você está pronto para fazer algumas atualizações nas configurações do seu Postfix.

      Passo 2 — Alterando a configuração do Postfix

      Agora você pode ajustar algumas configurações que o processo de instalação do pacote não solicitou. Muitas definições de configuração do Postfix estão definidas no arquivo /etc/postfix/main.cf. Em vez de editar este arquivo diretamente, você pode usar o comando postconf do Postfix, para consultar ou definir itens de configuração.

      Para começar, defina a localização para a caixa de correio do seu usuário não-root do Ubuntu. Neste guia, usaremos o formato Maildir, que separa mensagens em arquivos individuais que são então movidos entre diretórios baseados na ação do usuário. A opção alternativa que não está coberta neste guia é o formato mbox, que armazena todas as mensagens dentro de um único arquivo.

      Defina a variável home_mailbox para Maildir/. Mais tarde, você criará uma estrutura de diretórios nesse nome dentro do diretório home do usuário. Configure a home_mailbox digitando:

      • sudo postconf -e 'home_mailbox= Maildir/'

      Em seguida, defina a localização da tabela virtual_alias_maps, que mapeia contas de e-mail arbitrárias para contas do sistema Linux. Execute o seguinte comando, que mapeia a localização da tabela para um arquivo hash de banco de dados chamado /etc/postfix/virtual:

      • sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'

      Agora que você definiu a localização do arquivo de mapas virtuais em seu arquivo main.cf, você pode criar o próprio arquivo e começar a mapear contas de e-mail para contas de usuário em seu sistema Linux. Crie o arquivo com seu editor de texto preferido; neste exemplo, vamos usar o nano:

      • sudo nano /etc/postfix/virtual

      Liste quaisquer endereços para os quais você deseja aceitar e-mail, seguido por um espaço em branco e o usuário do Linux para o qual você gostaria que o e-mail fosse entregue.

      Por exemplo, se você quiser aceitar e-mails para contact@example.com e admin@example.com e que esses e-mails sejam entregues ao usuário Linux sammy, você poderia configurar seu arquivo dessa forma:

      /etc/postfix/virtual

      contact@example.com sammy
      admin@example.com sammy
      

      Após mapear todos os endereços para as contas apropriadas do servidor, salve e feche o arquivo. Se você usou o nano, faça isso pressionando as teclas CTRL + X, Y e depois ENTER.

      Aplique o mapeamento digitando:

      • sudo postmap /etc/postfix/virtual

      Reinicie o processo do Postfix para ter certeza de que todas as alterações foram aplicadas:

      • sudo systemctl restart postfix

      Supondo que você tenha seguido os pré-requisitos do guia de configuração inicial do servidor, você terá configurado um firewall com o UFW. Este firewall irá bloquear conexões externas aos serviços no seu servidor por padrão, a menos que essas conexões sejam explicitamente permitidas, então você terá que adicionar uma regra de firewall para permitir uma exceção para o Postfix.

      É possível permitir conexões ao serviço digitando:

      Com isso, o Postfix está configurado e pronto para aceitar conexões externas. No entanto, você ainda não está pronto para testá-lo com um cliente de e-mail. Antes que você possa instalar um cliente e usá-lo para interagir com o e-mail sendo entregue ao seu servidor, você precisará fazer algumas alterações na configuração do seu servidor Ubuntu.

      Passo 3 — Instalando o cliente de e-mail e inicializando a estrutura do Maildir

      Para interagir com o e-mail que está sendo entregue, este passo irá conduzi-lo através do processo de instalação do pacote s-nail . Esta é uma variante rica em recursos do cliente BSD xmail, que pode lidar com o formato Maildir corretamente.

      Antes de instalar o cliente, porém, seria prudente certificar-se de que sua variável de ambiente MAIL esteja definida corretamente. O s-nail irá procurar esta variável para descobrir onde encontrar e-mail para seu usuário.

      Para garantir que a variável MAIL esteja definida, independentemente de como você acesse sua conta — seja através do ssh, su, su -, ou sudo, por exemplo — você precisará definir a variável no arquivo /etc/bash.bashrc e adicioná-la a um arquivo dentro de /etc/profile.d para certificar-se de que ela está definida para todos os usuários por padrão.

      Para adicionar a variável a esses arquivos, digite:

      • echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh

      Para ler a variável em sua sessão atual, faça um source no arquivo /etc/profile.d/mail.sh:

      • source /etc/profile.d/mail.sh

      Uma vez feito isso, instale o cliente de e-mail s-nail com o APT:

      Antes de executar o cliente, há algumas configurações que você precisa ajustar. Abra o arquivo /etc/s-nail.rc no seu editor:

      No final do arquivo, adicione as seguintes opções:

      /etc/s-nail.rc

      . . .
      set emptystart
      set folder=Maildir
      set record=+sent
      

      Aqui está o que estas linhas fazem:

      • set emptystart: permite que o cliente abra mesmo com uma caixa de entrada vazia
      • set folder=Maildir: define o diretório Maildir para a variável interna folder
      • set record =+sent cria um arquivo mbox sent para armazenar e-mails enviados dentro do diretório que for definido como a variável folder, neste caso Maildir

      Salve e feche o arquivo quando você terminar. Agora você está pronto para inicializar a estrutura Maildir do seu sistema.

      Uma maneira rápida de criar a estrutura Maildir dentro do seu diretório home é enviar um e-mail para você mesmo com o comando s-nail. Como o arquivo sent estará disponível apenas após a criação do Maildir, você deve desativar a gravação nele para este e-mail inicial. Faça isso passando a opção -Snorecord.

      Envie o e-mail transmitindo uma string para o comando s-nail. Ajuste o comando para marcar seu usuário Linux como o destinatário:

      • echo 'init' | s-nail -s 'init' -Snorecord sammy

      Nota: você pode obter a seguinte resposta:

      Output

      Can't canonicalize "/home/sammy/Maildir"

      Isso é normal e pode apenas aparecer ao enviar essa primeira mensagem.

      Você pode verificar para se certificar que o diretório foi criado procurando pelo seu diretório ~/Maildir:

      Você verá que a estrutura de diretórios foi criada e que um novo arquivo de mensagem está no diretório ~/Maildir/new:

      Output

      /home/sammy/Maildir/: cur new tmp /home/sammy/Maildir/cur: /home/sammy/Maildir/new: 1463177269.Vfd01I40e4dM691221.mail.example.com /home/sammy/Maildir/tmp:

      Agora que a estrutura de diretórios foi criada, você está pronto para testar o cliente s-nail visualizando a mensagem init que você enviou e enviando uma mensagem para um endereço de e-mail externo.

      Passo 5 — Testando o cliente

      Para abrir o cliente, execute o comando s-nail:

      Em seu console, você verá uma caixa de entrada rudimentar com a mensagem init esperando:

      Output

      s-nail version v14.9.15. Type `?' for help "/home/sammy/Maildir": 1 message 1 new >N 1 sammy@example.com 2020-05-19 15:40 14/392 init

      Pressione ENTER para exibir a mensagem:

      Output

      [-- Message 1 -- 14 lines, 369 bytes --]: From sammy@example.com Tue May 19 15:40:48 2020 Date: Tue, 19 May 2020 15:40:48 +0000 To: sammy@example.com Subject: init Message-Id: <20160513220749.A278F228D9@mail.example.com> From: sammy@example.com init

      Você pode voltar para a lista de mensagens digitando h, e depois ENTER:

      Output

      >R 1 sammy@example.com 2020-05-19 15:40 14/392 init

      Observe que a mensagem agora tem um estado de R, indicando que ela foi lida.

      Como esta mensagem não é muito útil, você pode excluí-la pressionando d, e depois ENTER:

      Para voltar ao terminal, digite q e depois ENTER:

      Como um teste final, verifique se o s-nail é capaz de enviar mensagens de e-mail corretamente. Para fazer isso, você pode fazer um pipe do conteúdo de um arquivo de texto para o processo do s-nail, como você fez com a mensagem init do passo anterior.

      Comece escrevendo uma mensagem de teste em um editor de texto:

      Dentro, digite algum texto que você gostaria de enviar:

      ~/test_message

      Hello,
      
      This is a test.  Please confirm receipt!
      

      Salve e feche o arquivo depois de escrever sua mensagem.

      A seguir, use o comando cat para fazer um pipe da mensagem para o processo do s-nail. Você pode fazer isto com o seguinte exemplo, que usa essas opções:

      • -s: isso define a linha de assunto da mensagem de e-mail
      • -r: uma alteração opcional no campo “De:” do e-mail. Por padrão, o usuário Linux com o qual você estiver logado será usado para preencher este campo. A opção -r lhe permite substituir isto com um endereço válido, como um daqueles que você definiu no arquivo /etc/postfix/virtual. Para ilustrar, o seguinte comando usa contact@example.com

      Além disso, certifique-se de alterar user@email.com para um endereço de e-mail válido que você tenha acesso:

      • cat ~/test_message | s-nail -s 'Test email subject line' -r contact@example.com user@email.com

      Em seguida, navegue até a caixa de entrada do endereço de e-mail para o qual você enviou a mensagem. Você verá sua mensagem logo em seguida.

      Nota: se a mensagem não estiver em sua caixa de entrada, ela pode ter sido entregue na sua pasta de Spam.

      Você pode ver suas mensagens enviadas dentro do seu cliente s-nail. Inicie o cliente interativo novamente:

      No cliente de email, visualize suas mensagens enviadas digitando:

      Você verá um resultado como esse:

      Output

      +[/home/sammy/Maildir/]sent: 1 message 1 new ▸N 1 contact@example.com 2020-05-19 15:47 12/297 Test email subject line

      Você pode gerenciar os e-mails enviados usando os mesmos comandos que você usa para os e-mails recebidos.

      Conclusão

      Agora você tem o Postfix configurado em seu servidor Ubuntu 20.04. O gerenciamento de servidores de e-mail pode ser uma tarefa difícil para novos administradores de sistema, mas com esta configuração, você deve ter funcionalidade de email MTA suficiente para começar.



      Source link