Rss

  • youtube
  • linkedin
  • google

Archives for : Email

Servidor de Email – Parte 4 – Postfix 3

Parte 1 – Configurar arquivo main.cf

Esta é a terceira parte do processo de criação do servidor de Email em um CentOS 7 e a primeira parte da configuração do Postfix. Se chegou aqui por acaso, melhor ler primeiro uma das publicações abaixo:

Parte 1 – Instalação dos Pacotes

Parte 2 – Configuração do MariaDB

Parte 3 – Configuração do Dovecot

O Postfix é a parte mais importante do nosso servidor de email. Ele será responsável por conversar com outros MTAs para que receba e envie as mensagens de correio eletrônico e para que ele possa ser contatado é necessário que ele seja identificável através do nome do servidor ou o seu hostname.



Continue Reading >>

Servidor de Email – Parte 3 – Dovecot

Esta é a terceira parte do processo de criação do servidor de Email em um CentOS 7. Se chegou aqui por acaso, melhor ler primeiro as publicações anteriores

Parte 1 – Instalação dos Pacotes

Parte 2 – Configurar MariaDB

O Dovecot é um MDA (Mail Delivery Agent) que é um agente que transporta as mensagens do Postfix para as caixas de mensagens virtuais. Nesta seção iremos configurar a instalação do Dovecot para forçar os usuários a usarem SSL quando eles se conectarem, desta forma nunca enviando senhas em modo texto simples.

Eu sempre gosto de manter os arquivos originais de qualquer definição para caso eu acabar me perdendo durante as configurações. Eu posso dizer que esse passo não é necessário caso esteja fazendo esse tutorial integralmente, porém, se já tem uma configuração anterior e está apenas usando para melhorá-lo sugiro fortemente que faça copia de seus arquivos.

No nosso caso, os arquivos de configuração estarão em /etc/dovecot/conf.d/. Podemos então fazer a cópia com o comando:

Criando usuário

O Dovecot irá armazenar as mensagens (e todo seu conteúdo) em um diretório que definiremos no arquivo de configuração e para que ele consiga fazer isso é necessário que ele rode sob um usuário com as permissões adequadas. Os comandos abaixo irão criar este usuário e grupo. Usarei um padrão comum aos nomes que facilitam bastante a busca por soluções de problemas pela internet.

Editando Arquivos de Configurações

Primeiro arquivo que vamos configurar é o de autenticação. Como vamos usar uma tabela no banco de dados MariaDB para guardar os usuários e suas senhas vamos apontar isso em dois arquivos. O primeiro define o tipo de autenticação e segundo como o Dovecot irá fazer a validação da autenticação.

Edite o arquivo /etc/dovecot/conf.d/10-auth.conf e descomente (ou adicione) as linhas abaixo:

Depois, edite o arquivo /etc/dovecot/conf.d/auth-sql.conf.ext para que fique com as linhas abaixo:

ATENÇÃO: As ultimas linhas que diferem ligeiramente da original comentada quanto ao argumento home.

Devemos também configurar os dados de conexão com o MariaDB através do arquivo /etc/dovecot/dovecot-sql.conf.ext. Este arquivo não é criado na instalação então nós o criaremos.

NOTA: Use os mesmos dados que usou no passo que configurou a base de dados no MariaDB

Vamos fazer varias alterações no arquivo principal de configuração do Dovecot que é o 10-master.conf. O número a frente do arquivo indica a ordem de carregamento (prioridade). Você pode user qualquer editor que preferir. Eu gosto do Vim porque estou muito acostumado com seus comandos, mas nada impede de que use o nano por exemplo.

Para melhorar a segurança do servidor e reduzir ataques vamos desativar o acesso não criptografado. Para isso baste atribuirmos a porta 0 para os serviços imap e pop3. Somente imaps e pop3s estarão disponíveis. Será necessário usar uma chave SSL que iremos criar logo mais adiante.

Altere também as configurações a seguir:

Certificado SSL

Para que possamos usar os serviços de criptografia necessários tanto na autenticação do usuário ao acessar sua conta quanto para garantir que o postfixadmin e o roundcube estejam sob conexões seguras devemos criar as chaves SSL validas. Neste ponto faremos a configuração criando uma chave auto-assinada (self-signed) que já é criada durante a instalação do Dovecot. Essa chave não pode ser usada para validar a conexão segura do navegador. Mais tarde iremos alterar essa configuração para usar uma chave SSL obtida através do Certbot (Lets Encrypt) em conjunto com o Nginx e configurações do DNS.

Se estiver seguindo os passos desse tutorial, não será necessário nenhuma mudança no arquivo /etc/dovecot/conf.d/10-ssl.conf que deverá conter as seguintes linhas

Caso os arquivos não existam ou se preferir recriá-los (deve ser feito caso tenha alterado o hostname, por exemplo) faça o seguinte:

Edite o arquivo /etc/pki/dovecot/dovecot-openssl.cnf e altere as entradas de acordo com as informações que você possuir.

Após ter alterado o arquivo, se já existirem os arquivos /etc/pki/dovecot/certs/dovecot.pem e /etc/pki/dovecot/private/dovecot.pem, apague-os e em seguida execute o script mkcert.sh.

A saída do script deverá ser algo parecido com essa:

Outra configuração ainda no arquivo/etc/dovecot/conf.d/10-ssl.conf relacionada a criptografia é o atributo opcional ssl_dh. Adicione ou descomente a linha:

e execute o comando abaixo para gerar o arquivo .pem:

A execução do comando acima costuma demorar bastante, as vezes até perto de 1 hora. É possível também utilizar um comando abaixo para gerar o mesmo arquivo de forma mais rápida.

Arquivo de Log

Por default o Dovecot irá usar o mecanismo de log syslog do CentOS, que normalmente envia as informações para o arquivo /var/log/messages. Como mais adiante irei mostrar como barrar diversas tentativas de ataques e uma delas inclui o uso do script fail2ban, que faz analise de logs é melhor definirmos um arquivo exclusivo para que não tenhamos que monitorar arquivo de log que se altera constantemente.

Para definirmos um arquivo de log exclusivo, vamos abrir o arquivo de configuração de log do Dovecot /etc/dovecot/conf.d/10-logging.conf e alterar ou adicionar as linhas a seguir.

Salve o arquivo e reinicie o serviço

Verifique se o arquivo /var/log/dovecot.log foi criado e contém as informações indicando que o serviço está funcionando normalmente.

Regras de Firewall

Se estiver seguindo este tutorial desde o início em uma instalação padrão, é possível que as portas de conexão estejam fechadas para o exterior. Os comandos abaixo visam liberar as portas imaps (993), pop3s (995) para que seja possível conectar um cliente de e-mail como o Outlook ou Gmail. Mesmo que elas estejam abertas, mais adiante em outra publicação, vou mostrar uma lista de regras básicas de firewall para melhorar a segurança.

Primeiro certifique-se de que o serviço firewalld esteja rodando. Caso esteja parado, provavelmente todas as portas que possuírem um serviço de escuta estarão abertas.

Verifique a linha do estado que pode estar como active (running) ou como inactive (dead). Caso esteja como inactive, não há necessidade de continuar. Se estiver como active, vamos listar quais portas estão abertas externamente.

No exemplo acima, apenas ssh e dhcpv6-client estão permitidas. Vamos então adicionar as portas necessárias para receber e enviar emails externamente.

Como podemos notar no exemplo, adicionamos os serviços imaps e pop3s que estão sendo ouvidas pelo serviço do Dovecot. Mais adiante iremos também adicionar as portas smtp e submission que serão ouvidas pelo serviço do Postfix (master). Note que não abrirei as portas imap e pop3 inseguras porque quero forçar o uso de SSL/TLS.

Para se certificar de que as portas estão mesmo abertas você pode tentar fazer telnet nas portas 993 e 995 de outro sistema na mesma rede e verificar se o arquivo /var/log/dovecot.log exibirá as tentativas. Se não tiver condições no momento de fazer o teste desta forma verifique a saída do comando abaixo?

E isso é tudo por enquanto. A seguir vamos configurar o Postfix 3.