RSS

  • YouTube
  • LinkedIn
  • Google

Servidor de Email –; Part 1 ; Necessary facilities

Share in your social media
  •  ;
  •  ;
  •  ;
  •  ;

I have my own mail server using Postfix, Dovecot, MariaDB, SpamAssassin, ClamAV, Amavisd-new, fail2ban, nginx, postfixadmin and RoundCube under CentOS 7.
Although it has several recipes for how to configure this package, It took me many hours to figure out how to keep the service running correctly, each setting in main.cf and master.cf and in order to achieve in reducing the flood of spam that arrives every minute.
And anti-spam is the focus of this publication. I have suffered and still suffer with the constant attempts to use my services as a zombie or shedding of viruses, fraud and everything else you can.

I lost count of how many times my DNS service stopped by excess of connection attempts to entupiam the memory and forced the s.. cutting processes to conserve resources and the named was chosen for being the weakest link.
So, This article has focus in the proper configuration for private mail services, a few users and few domains. Certainly a lot of what is in this short manual serves to world-class services, but I believe that for these cases the use of tools or dedicated and specialized services should always be taken into consideration.

Então deixemos de lado o falatório para irmos direto ao mão na massa.

Instalação dos pacotes

O primeiro passo é instalar todo os pacotes que serão utilizados. O roundcube e o postfixadmin rodam sob um webserver com suporte a PHP e cujas contas de e-mail possam ser armazenadas em um servidor de banco de dados. Como Webserver eu utilizo o Nginx e embora prefira o PostgreSQL vou utilizar o MariaDB como SGBD devido ao fato de que a maioria já o utiliza (devido ao WordPress provavelmente).

So, ao final do processo de instalação, deveremos ter instalado alguns novos repositórios de pacotes para o CentOs, Postfix, Dovecot, SpamAssassin, MariaDB, Nginx, PHP, PostfixAdmin, RoundCube e opcionalmente o Amavis e o ; ClamAV.

Ative os repositórios de Extra Packages para a sua distribuição, caso ainda não o tenha feito. Para o CentOS 6 or 7 os comando abaixo farão isso.

Adicionalmente, instale os pacotes curl, htop, vim, yum-utils, wget, net-tools, ntp e certbot que serão necessários em outros pontos do documento.

Postfix

Postfix é um MTA (mail transfer agent). Um MTA faz a ponte entre os computadores para a troca de mensagens de correio eletronico. Para o nosso caso, é o elemento principal. A versão do Postfix que utilizarei neste documento é a 3 e para instala-lo utilizei o repositorio GhettoForge.
Para isso execute os comandos abaixo:

Para se certificar de que o repositorio esta ativo verifique se o pacote postfix3 esta disponivel

Note: O repositorio gf-plus é instalado desativado e é melhor mantê-lo assim pois ele contém versões de pacotes que conflitam com versões existentes nos repositórios base da instalação do CentOS.

A saída deverá ser algo como:

Com o repositorio configurado e pronto pra uso, vamos remover o atual postfix (que costuma ser instalado por padrão no CentOS) pela versão mais atual.

Vamos deixar o serviço parado por enquanto mas já configurado para iniciar junto com o Sistema Operacional.

Dovecot

Dovecot é um Servidor de Email Imap e Pop3. Com ele que poderemos enviar e receber as mensagens via Postfix e entre outras coisas controlar o acesso ao serviço via autenticação.
Para instalar o Dovecot basta executar o comando:

Mais uma vez, vamos ativar o serviço porém deixá-lo parado.

Amavis

Amavis é um filtro de conteúdo para correio eletrônico. Com ele é possível filtrar mensagens nocivas usando configurações contra spam, vírus e outros malwares. No nosso caso usaremos a versão amavisd-new. Abaixo os comandos que o instalam. Ele requer muitas dependencias que serão atualizadas e/ou instaladas junto. Uma dessas dependencias é o SpamAssassin que será configurado mais adiante, juntamente com todos os outros pacotes que estamos instalando.

Complementando a instalação de elementos de filtro de conteúdo nocivo, instalaremos também o ClamAV que é um antivirus simples e bastante eficiente para os tipos mais comuns de ameaças e totalmente gratuito.

Novamente, vamos ativar os serviços para que sempre iniciem de forma automática, mas por enquanto deixando-os parados.

MariaDB (ou MySQL)

Normalmente, quem usa WordPress já possui instalado e configurado o MariaDB ou o MySQL. Eu particularmente prefiro o PostgreSQL, mas como a intenção deste documento é permitir que DevOps consigam ter seus proprios serviços e nem sempre dá pra ter varias instancias resolvi usar o MariaDB. Dessa forma, caso necessite adicionar posteriormente o WordPress, não precisará adicionar um SGBD adicional ou mesmo usar wrappers para que ele tenha suporte a PostgreSQL.

Como a intenção é instalar a versão mais atual usaremos o repositório oficial. Abaixo todos os comandos necessários.

Webserver (Nginx e PHP)

Os ultimos elementos a serem instalados fazem parte do Webserver. É possível que você já tenha um rodando como o Apache então esse ponto pode ser pulado. Se você está iniciando um novo servidor, recomendo seguir as dicas dessa instalação.

Eu gosto muito do Nginx e vou usar em conjunto com o PHP-FPM. Novamente vou utilizar repositórios que permitam instalar versões mais atuais possíveis.

Roundcube e Postfixadmin

Os ultimos itens para serem instalados são o Roundcube e o Postfixadmin. O Roundcube é um cliente de e-mail Web para ser usado com PHP e o Postfixadmin é um gerenciador Web de contas e dominios para o Postfix tambem usado com PHP. Como são aplicações PHP para serem usados dentro do Webserver, caso esteja usando Apache ou outro Webserver, será necessário adpatar algumas informações. Aqui usarei diretorios default.

Neste ponto já temos todos os arquivos necessários para inciar a configuração do Servidor de Email.

Sou muito preguiçoso

Não gosta de ficar digitando ou não está preocupado nos detalhes de cada item instalado. Seus problemas acabaram!

Você pode executar todos os comando deste documento com as linhas abaixo:

ATTENTION! Este script é apenas um arquivo com as linhas de comando. Eventualmente pode não funcionar corretamente dependendo das configurações do seu sistema.

With everything installed we can start the settings. Comecemos pelo MariaDB.


Share in your social media
  •  ;
  •  ;
  •  ;
  •  ;

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.