Rss

  • youtube
  • linkedin
  • google

Archives for : Abril2019

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.

Servidor de Email – Parte 2 – MariaDB

Esta é a segunda parte do processo de criação do servidor de Email em um CentOS 7. Se chegou aqui por acaso, melhor ler primeiro a publicação anterior sobre a Instalação dos Pacotes

Porque usar MariaDB/MySQL?

Antes de tudo devo deixar claro que prefiro usar o PostgreSQL em detrimento do MariaDB/MySQL por muitas razões, porém, há uma que pesa muito contra o uso do PostgreSQL em um servidor unificado com WordPress e serviços de E-mail que é o simples fato de que o WP não possui suporte nativo ao PostgreSQL. Você pode ter mais informações sobre esse assunto na documentação oficial do WordPress neste link. Como estou me baseando em experiências pessoais para escrever este documento e também para pequenos serviços, estou usando o que há de mais comum e mais acessível. Caso o uso de PostgreSQL seja do seu interesse, você pode consultar este documento mais tarde onde mostrarei como migrar do MariaDB para o PostgreSQL.

Configurando MariaDB/MySQL

Supondo que você esteja seguindo os passos deste manual, você estará com uma instalação do MariaDB ainda não configurada. Caso já tenha uma instalação funcional, pode pular para o próximo passo.

Inicialmente eu bloqueio todo e qualquer acesso ao Bando de Dados de origem externa. Somente a partir de conexões criadas de dentro do próprio servidor é que elas podem ser feitas por medida de segurança. Para isso abrimos o arquivo /etc/my.cnf.d/server.cnf e adicionar as linhas abaixo logo após [mysqld] existente.

Se a intenção for permitir conexões remotas ao MariaDB, será necessário executar os comandos abaixo para permitir conexões remotas.

Reinicie o serviço para que as alterações sejam efetivadas

Criando usuário para o Postfix e as tabelas necessárias

Para que possamos utilizar o Postfix com o MariaDB teremos que criar um usuário para acesso e a partir dele as tabelas necessárias para gerenciar os domínios e contas virtuais.

Primeiro vamos criar o banco de dados.

NOTA: Se não foi feito nenhuma alteração na instalação do MariaDB você pode conectar sem o uso de senha para o usuário ‘root’@’localhost’, do contrário, utilize a opção -p para que seja requisitado digitar a senha.

Em seguida vamos criar o usuário e as tabelas. Vou utilizar mypostfixdb como nome para a base de dados e mypostfixdbuser para o nome de usuário. Altere as informações de acordo com o que deseja, principalmente mypostfixdbuser_password. Essas informações serão utilizadas na etapa de configuração dos arquivos do Postfix que utilizarão as tabelas criadas.

Essas tabelas irão armazenar as contas e os domínios virtuais e serão acessadas pelo Dovecot (de acordo com a proposta desse tutorial).
E isso é tudo.

Agora estamos prontos para configurar o Dovecot.

DataTables + HTML 5 Botões de exportação + Laravel-Mix (Webpack)

Nos últimos dias, Eu experimentei um problema ao tentar usar DataTables e Bootstrap 4 com suporte para exportar os resultados para Excel e PDF usando Laravel-Mix. Após horas e horas tentando colocar todos os scripts para trabalharem juntos, Eu finalmente consegui. Então, decidi escrever este pequeno Como Fazer para aqueles com o mesmo tipo de problemas.



Continue Reading >>