Instalando e Configurando o Servidor de E-mail Carbonio CE na AWS (Substituto do Zimbra)

Instalando e Configurando o Servidor de E-mail Carbonio CE na AWS (Substituto do Zimbra)

A segurança em um servidor de e-mail é de extrema importância para qualquer organização ou empresa. Os servidores de e-mail lidam com uma quantidade significativa de informações sensíveis e confidenciais, incluindo comunicações internas e externas, documentos anexados, dados de contato e muito mais. Portanto, garantir a segurança desses dados é essencial para proteger a privacidade dos usuários e a integridade das informações da organização.

A Synacor anunciou que, a partir de dezembro de 2023, não fornecerá mais suporte nem atualizações de segurança para o Zimbra Open Source. Isso significa que a versão 8.8.15 será a última Open Source disponível. Manter uma versão de um servidor de e-mail sem suporte ou sem atualizações de segurança pode acarretar diversos riscos, especialmente vulnerabilidades de segurança não corrigidas que podem ser exploradas por hackers. Como é de conhecimento geral, o e-mail representa uma das principais portas de entrada para esse tipo de ataque, e um sistema de e-mail vulnerável pode deixar as empresas expostas a sérias consequências.

A Zextras resolveu disponibilizar e manter a sua própria versão chamada Carbonio CE, e é sobre ele que iremos falar hoje. O passo a passo abaixo irei demonstrar como instalar e configurar o servidor de e-mail Carbonio CE em uma instância EC2 na AWS.

Ambiente:

Uma instância EC2 com um Elastic IP.

Também é necessário possuir um registro DNS.

Sistema Operacional
CPU
RAM
HD
Versão do E-mail

Ubuntu 20.04 LTS
4vCPU
16GB
50GB
Carbonio Release 24.3.0

Portas externas (0.0.0.0/0):

80 (HTTP)
443 (HTTPs)
25 (SMTP)
465 (SMTPs)
587 (SMTP)
143 (IMAP)
993 (IMAPs)
110 (POP3)
995 (POP3s)

Porta interna (VPN/IP Static):

6071 (Administração)

Etapa 01 – Criando os registro DNS

Antes de tudo, vamos definir e criar a URL que iremos utilizar para o servidor de e-mail.

Irei utilizar o domínio alfredocastro.com.br, defini a URL mail.alfredocastro.com.br para o portal web do Carbonio CE.

Acesse o seu gerenciador de registros DNS do seu domínio e crie os registro abaixo de acordo com o seu cenário:

Tipo
Registro
Valor
Observação

A
mail
52.XX.XXX.216
Elastic IP atribuído à EC2

MX
@
10 mail.alfredocastro.com.br
URL definida para o servidro de e-mail

TXT
@
v=spf1 ip4:52.XX.XXX.216/32 -all
Elastic IP atribuído à EC2

TXT
_dmarc
v=DMARC1; p=none; sp=quarantine; rua=mailto:admin@alfredocastro.com.br

E-mail para envio de recebimento de relatórios de conformidade DMARC

Veja um exemplo:

Para consultar a propagação do registro criado, consulte o site: WhatsMyDNS



Etapa 02 – Solicitando a remoção de restrição da porta 25 SMTP do Elastic IP

Obs: Antes de criar um registro DNS reverso, você deve definir um registro DNS de encaminhamento correspondente (registro tipo A) que aponte para seu endereço Elastic IP (feito na etapa anterior).

Criando um registro DNS reverso.

Acesse a console AWS e procure pelo serviço “EC2”.

No menu lateral a esquerda, clique em “Elastic IPs”.

Selecione o Elastic IP e clique em Actions > Update reverse DNS.

Digite a URL criada na etapa anterior para o servidor de e-mail. Em seguida escreva update e clique no botão “Update”.

Acesse a URL abaixo e preencha o formulário para solicitar a liberação da porta 25 (SMTP).

https://aws-portal.amazon.com/gp/aws/html-forms-controller/contactus/ec2-email-limit-rdns-request

Email address: email para receber o contato da AWS

Use case description: Descrição do motivo que você quer a liberação da porta SMTP

Elastic IP address: O endereço IP atachado na instância EC2

Reverse DNS record: A URL que você definiu para o DNS Reverso

Em seguida clique em “Submit”.

Você irá receber um e-mail de confirmação da solicitação.

Caso sua solicitação seja aprovada, você irá receber outro email confirmando.

Utilizei o seguinte texto para solicitar a liberação:

I request the release of the SMTP port for sending emails through the provided EIP below. We will use an EC2 with this EIP to set up a business email server.
To ensure that the EC2 is not used for sending unwanted emails, the following measures will be implemented:
* Email Authentication: Implementation of SPF (Sender Policy Framework) and DKIM (DomainKeys Identified Mail) authentication to verify the authenticity of sent emails.
* Constant Monitoring: Implementation of monitoring tools to identify any suspicious activity or abnormal email volume.
* Responsible Use Policies: Establishment of internal policies to ensure that email sending is done responsibly and in compliance with applicable laws and regulations.

Para realizar um teste, acesse sua instância EC2 e execute um telnet em algum servidor de e-mail na porta 25. No exemplo abaixo utilizei o servidor do Gmail.

telnet smtp.gmail.com 25

Etapa 03 – Instalando e configurando o Carbonio CE

Primeiro vamos atualizar a lista de pacotes disponíveis nos repositórios. Execute o seguinte comando:

apt-get update

Agora vamos alterar o hostname da máquina. Execute o seguinte comando:

hostnamectl set-hostname mail

Precisamos atualizar o arquivo /etc/hosts com o IP da máquina seguido do FQDN e o hostname. Execute o primeiro comando para descobrir o seu IP, em seguida altere o segundo comando conforme o seu ambiente:

hostname -I
echo “10.0.2.133 mail.alfredocastro.com.br mail” >> /etc/hosts

Reinicie a máquina utilizando o comando abaixo:

reboot

Execute os comandos abaixo para adicionar o repositório da Zextras:

NOTA: Acesse a página do Carbonio Community Edition e preencha o formulário. Você receberá um e-mail com instruções de como adicionar o repositório, parecido com os comandos abaixo:

cd /tmp
wget https://repo.zextras.io/inst_repo_ubuntu.sh
chmod +x inst_repo_ubuntu.sh
./inst_repo_ubuntu.sh


Agora execute o comando abaixo para realizar a instalação do Carbonio CE:

apt-get install service-discover-server
carbonio-directory-server
carbonio-proxy
carbonio-webui
carbonio-files-ui
carbonio-admin-login-ui
carbonio-mta
carbonio-appserver
carbonio-user-management
carbonio-files-ce
carbonio-files-db
carbonio-storages-ce
carbonio-preview-ce
carbonio-docs-connector-ce
carbonio-docs-editor
carbonio-admin-ui
carbonio-admin-console-ui
postgresql-12 -y

Execute o seguinte comando para realizar a configuração inicial do Carbonio CE:

carbonio-bootstrap

Vamos realizar a alteração do timezone do Carbonio CE, digite “1” para entrar no menu “Common Configuration”:

Digite “6” para entrar no menu “TimeZone”:

Digite o número corresponde ao seu timezone, irei configurar o timezone de “America/Sao_Paulo” número “43”:

Retorne ao menu principal digitando “r”:

Confirme as configurações digitando “y”:

Aguarde até que ele exiba a mensagem “Configuration complete”, e em seguida tecle “ENTER”:

Agora vamos configurar o Carbonio Mesh, ele é necessário para permitir a comunicação entre o Carbonio e seus componentes. Execute o comando abaixo para realizar a configuração de forma interativa:

service-discover setup-wizard

Primeiro ele irá solicitar o seu endereço IP seguido da máscara de rede, no meu exemplo será o 10.0.2.133/20. Em seguida irá solicitar uma senha para o Carbonio Mesh que é usado para configurações e gerenciamento, repita a senha novamente (por segurança, ele não irá mostrar os caracteres):

Obs: Caso tenha perdido a senha, você pode encotrar ela no arquivo /var/lib/service-discover/password (acessível apenas pelo usuário root).

Para concluir a instalação do Carbonio Mesh, execute o seguinte comando (será solicitada a senha, digite a senha definida na etapa anterior):

pending-setups -a


Execute os comandos abaixo para realizar a criação da Role, da Database e para o banco de dados inicial de arquivos para o Carbonio CE:

NOTA: Altere DB_ADM_PWD para uma senha de sua escolha, no primeiro e no terceiro comando.

su – postgres -c “psql –command=CREATE ROLE carbonio_adm WITH LOGIN SUPERUSER encrypted password ‘DB_ADM_PWD’;
su – postgres -c “psql –command=CREATE DATABASE carbonio_adm owner carbonio_adm;
PGPASSWORD=DB_ADM_PWD carbonio-files-db-bootstrap carbonio_adm 127.0.0.1

Execute um Stop/Start utilizando os comandos abaixo:

su – zextras
zmcontrol stop
zmcontrol start

Execute o comando abaixo para definir uma senha para o usuário Global Admin (usuário administrador da console Carbonio CE acessível na porta 6071):

NOTA: Altere a informação do domínio conforme o seu ambiente e altere para uma senha de sua escolha.

su – zextras
carbonio prov setpassword zextras@alfredocastro.com.br YOURPASSWORD

NOTA: Execute o comando logado com o usuário zextras (su – zextras).

Etapa 04 – Configurando o DKIM

DKIM, ou DomainKeys Identified Mail, é um método de autenticação de emails. Ele ajuda a verificar a autenticidade do remetente e a integridade da mensagem de email. Quando um servidor de email usa DKIM, ele adiciona uma assinatura criptográfica aos cabeçalhos do email enviado. Essa assinatura é gerada usando uma chave privada específica do domínio do remetente.

Quando o email é recebido pelo servidor de destino, o servidor verifica essa assinatura usando a chave pública disponível no registro DNS do domínio do remetente. Se a assinatura corresponder aos dados do cabeçalho do email, isso indica que o email não foi alterado após ter sido enviado pelo remetente autenticado.

Essencialmente, DKIM ajuda a combater o spoofing de email e a garantir que os emails sejam autenticados como legítimos. Isso pode ajudar a reduzir a probabilidade de que emails falsificados ou maliciosos sejam entregues na caixa de entrada do destinatário.

Para configurarmos, execute o seguinte comando para gerar o registro DNS:

NOTA: Altere o domínio conforme o seu ambiente.

su – zextras
/opt/zextras/libexec/zmdkimkeyutil -a -d alfredocastro.com.br

No exemplo acima, foi gerado o seguinte registro para ser criado no DNS:

Tipo: TXT

Registro: 9EEEDFAE-FC33-11EE-9B42-EAD105BED053._domainkey

Valor: v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5IYCXNy92oQdyTDrXAIfDFz/fHzmNdeqhgSeErR/m0SYDguQKeb7c19zr4imctX2a6HdzV1W5c8w90jvbvKYGUuBOBhSA/APx0DEa+DxV59+D173PE/iKpDuAIBajWyXT+oVH9JX6iCg33Jk4ghEakZ4jz+NsSkVJ3rwUIHvBWnfb7BNF5MPnQ18O9YHvS3POdldIdIme/JHCuew3k/biXIhZxVE9zg2YXwq1AjxCo24jqtDIUhG26koAeSguDDXremk3hyzEG4qKLnF47gdbDSijBBllAMV3CVzqBhBuVOV3gNA1ifGtiAUXH3YHQJeYFqy2yld8oZlqFozuSXzFQIDAQAB

Acesse o seu gerenciador de registros DNS do seu domínio e crie o registro acima de acordo com o seu cenário:

Veja um exemplo:

Para consultar a propagação do registro criado, consulte o site: WhatsMyDNS

Etapa 05 – Configurando um Certificado SSL Let’s Encrypt no Carbonio CE via Console

A Zextras introduziu uma maneira simplificada e aprimorada de configurar certificados SSL Let’s Encrypt através da Console Web. Com esta atualização, você agora pode facilmente implementar certificados para um único domínio ou vários domínios.

Para configurar o Let’s Encrypt, você precisa ter o pacote certbot, execute o seguinte comando para verificar se ele está instalado:

dpkg -l | grep carbonio-certbot

Verifique o modo zimbraReverseProxyMailMode do seu servidor. Por padrão é definido como https, execute o seguinte comando:

NOTA: Altere a URL conforme o seu ambiente

su – zextras -c “carbonio prov gs mail.alfredocastro.com.br | grep -i zimbraReverseProxyMailMode”

Para que o certbot funcione, precisamos alterar o modo zimbraReverseProxyMailMode de https para redirect, execute os comandos abaixo para realizar a alteração:

NOTA: Altere a URL conforme o seu ambiente

su – zextras -c “carbonio prov ms mail.alfredocastro.com.br zimbraReverseProxyMailMode redirect”
su – zextras -c “zmconfigdctl restart”
su – zextras -c “carbonio prov gs mail.alfredocastro.com.br | grep -i zimbraReverseProxyMailMode”

Faça login no Console de administração do Carbonio CE, utilize o usuário zextras@alfredocastro.com.br:

NOTA: https://mail.alfredocastro.com.br:6071/ – altere a URL conforme o seu ambiente

Clique em “Domains” no menu lateral esquerdo:

Selecione o domínio desejado:

Clique em “Virtual Hosts & Certificates”:

Digite a URL que você configurou em seu servidor de mail e clique em “ADD”:

Clique em “SAVE”:

Clique em “UPLOAD AND VERIFY CERTIFICATE”:

Altere “Certificate Type” para “I want to use a Let’s Encrypt (longChain) certificate” e em seguida clique em “GENERATE CERTIFICATE”:

Você verá uma notificação em verde escrito “The System is processing your certificate generation request. It will send the result to the Global and Domain notification recipients.”, o Carbonio CE irá solicitar o certificado.

Se tudo ocorrer bem você irá receber dois e-mails com a conclusão da solicitação, acesse a URL do seu servidor de e-mail e faça login com o usuário zextras@alfredocastro.com.br:


Para finalizar, execute o comando abaixo para reiniciar o Carbonio CE e finalizar a instalação do Certificado SSL:

su – zextras -c “zmcontrol restart”

Espero tê-lo ajudado! Se houver alguma dúvida, não hesite em entrar em contato.

https://alfredocastro.com.br/posts/instalando-e-configurando-o-servidor-de-e-mail-carbonio-ce-na-aws-substituto-do-zimbra/

Leave a Reply

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