Rss

  • youtube
  • linkedin
  • google

Servidor de Email –; Part 2 ; MariaDB

Esta é a segunda parte do processo de criação do servidor de Email em um CentOS 8. If you came here by accident, melhor ler primeiro a publicação anterior sobre a Instalação dos Pacotes

Why use 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 This 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. If the use of PostgreSQL is of your interest, você pode consultar este documento mais tarde onde mostrarei como migrar do MariaDB para o PostgreSQL.

Configuring 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, You can skip to the próximo passo.

Inicialmente eu bloqueio todo e qualquer acesso ao Banco 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. For that we open the file /etc/my.cnf. d/server.cnf e adicionamos as linhas abaixo logo após a entrada [mysqld] existing.

[mysqld]
# Diretorio para o arquivo errmsg.sys no idioma que você desejar usar 
language=/usr/share/mysql/portuguese
# Ativa o logging por default para ajudar a encontrar problemas
general-log
# Indica que o log será enviado para uma tabela ao invés de ser escrito em um arquivo. Útil para quem não quer ficar conectando no servidor para analisar os logs. Você poderá utilizar o PHPMyAdmin para fazer as consultas
log_output=TABLE
# Habilita o relatório de consultas lentas
slow_query_log
# Tempo mínimo para considerar uma consulta lenta (em segundos)
long_query_time=5.0
# Indica para desativar o mecanismo de rede e somente aceitar conexões através do arquivo de socket local
skip-networking
bind-address = 127.0.0.1

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

$ firewall-cmd --add-port=3306/tcp 
$ firewall-cmd --permanent --add-port=3306/tcp

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

$ sudo systemctl stop mysqld && sudo systemctl start mysqld

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.

First let's create the database.

NOTE: 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 to be requested enter the password.

$ mysql -u root

Em seguida vamos criar o usuário e as tabelas. I'm going to use mypostfixdb as the name for the database and mypostfixdbuser para o nome de usuário. Altere as informações de acordo com o que deseja, mainly mypostfixdbuser_password. Essas informações serão utilizadas na etapa de configuração dos arquivos do Postfix que utilizarão as tabelas criadas.

MariaDB> CREATE DATABASE mypostfixdb;
MariaDB> GRANT SELECT, INSERT, UPDATE, DELETE ON mypostfixdb.* TO 'mypostfixdbuser'@'localhost' IDENTIFIED BY 'mypostfixdbuser_password';
MariaDB> GRANT SELECT, INSERT, UPDATE, DELETE ON mypostfixdb.* TO 'mypostfixdbuser'@'localhost.localdomain' IDENTIFIED BY 'mypostfixdbuser_password';
MariaDB> FLUSH PRIVILEGES;
MariaDB> USE mypostfixdb;
MariaDB> CREATE TABLE virtual_domains (id int(11) NOT NULL AUTO_INCREMENT, name VARCHAR(100) NOT NULL, PRIMARY KEY(id)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
MariaDB> CREATE TABLE virtual_users(id int(11) NOT NULL AUTO_INCREMENT, vdomain_id int(11) NOT NULL, password VARCHAR(100) NOT NULL, email VARCHAR(100) NOT NULL, PRIMARY KEY (id), UNIQUE KEY email(email), FOREIGN KEY (vdomain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8;
MariaDB> CREATE TABLE virtual_aliases (id int(11) NOT NULL AUTO_INCREMENT, vdomain_id int(11) NOT NULL, source VARCHAR(100) NOT NULL, PRIMARY KEY (id),FOREIGN KEY (vdomain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Essas tabelas irão armazenar as contas e os domínios virtuais e serão acessadas pelo Dovecot (According to the proposal of this tutorial).
E isso é tudo.

Now we're ready to configure the Dovecot.

Comments (3)

  1. […] Com tudo instalado podemos iniciar as configurações. Comecemos pelo MariaDB. […]

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

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