MariaDB seguro com suporte a SSL no Ubuntu 16.04

O MariaDB é um banco de dados de código aberto gratuito e é o substituto mais usado para o MySQL. É feito pelos desenvolvedores do MySQL e pretende permanecer livre sob a GNU GPL. É muito rápido, escalável e vem com um rico conjunto de recursos que o tornam muito versátil para uma ampla variedade de casos de uso.

Este tutorial mostrará como instalar e configurar o MariaDB com suporte a SSL no Ubuntu 16.04.

Exigências

  • Uma nova instância do Ubuntu 16.04 Vultr.
  • Um usuário não root com privilégios sudo.
  • Um endereço IP estático 192.168.0.190 está configurado na instância do servidor.
  • Um endereço IP estático 192.168.0.191 está configurado na máquina cliente.

Etapa 1: instalar o MariaDB

Por padrão, a versão mais recente do MariaDB não está disponível no repositório Ubuntu 16.04; portanto, você precisará adicionar o repositório MariaDB ao seu sistema.

Primeiro, faça o download da chave com o seguinte comando:

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

Em seguida, adicione o repositório MariaDB ao /etc/apt/sources.listarquivo:

sudo echo "deb [arch=amd64,i386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main" >> /etc/apt/sources.list

Atualize o índice apt com o seguinte comando:

sudo apt-get update -y

Depois que o índice apt for atualizado, instale o servidor MariaDB com o seguinte comando:

sudo apt-get install mariadb-server -y

Inicie o servidor MariaDB e ative-o no momento da inicialização:

sudo systemctl start mysql
sudo systemctl enable mysql

Em seguida, você precisará executar o mysql_secure_installationscript para proteger a instalação do MariaDB. Esse script permite definir a senha raiz, remover usuários anônimos, proibir o login remoto e remover o banco de dados de teste:

sudo mysql_secure_installation

Etapa 2: criar um certificado SSL e uma chave privada para o servidor

Primeiro, crie um diretório para armazenar todos os arquivos de chave e certificado.

sudo mkdir /etc/mysql-ssl

Em seguida, altere o diretório para /etc/mysql-ssle crie o certificado CA e a chave privada com o seguinte comando:

sudo cd /etc/mysql-ssl
sudo openssl genrsa 2048 > ca-key.pem
sudo openssl req -new -x509 -nodes -days 365000 -key ca-key.pem -out ca-cert.pem

Responda a todas as perguntas, como mostrado abaixo:

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:IN
State or Province Name (full name) [Some-State]:GUJ
Locality Name (eg, city) []:JND
Organization Name (eg, company) [Internet Widgits Pty Ltd]:ENJ
Organizational Unit Name (eg, section) []:SYSTEM
Common Name (e.g. server FQDN or YOUR name) []:HITESH
Email Address []:[email protected]

Em seguida, crie uma chave privada para o servidor com o seguinte comando:

sudo openssl req -newkey rsa:2048 -days 365 -nodes -keyout server-key.pem -out server-req.pem

Responda a todas as perguntas como você fez no comando anterior.

Em seguida, exporte a chave privada do servidor para uma chave do tipo RSA com o seguinte comando:

sudo sudo openssl rsa -in server-key.pem -out server-key.pem

Por fim, gere um certificado de servidor usando o certificado da CA da seguinte maneira:

sudo openssl x509 -req -in server-req.pem -days 365 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem

Agora você pode ver todos os certificados e chaves com o seguinte comando:

ls

Você deve ver a seguinte saída:

ca-cert.pem  ca-key.pem  server-cert.pem  server-key.pem  server-req.pem

Quando terminar, você pode prosseguir para a próxima etapa.

Etapa 3: Configurar o MariaDB Server para usar SSL

Você deve ter todos os certificados e uma chave privada; e agora você precisará configurar o MariaDB para usar a chave e os certificados. Você pode fazer isso editando o /etc/mysql/mariadb.conf.d/50-server.cnfarquivo:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Adicione as seguintes linhas na [mysqld]seção:

ssl-ca=/etc/mysql-ssl/ca-cert.pem
ssl-cert=/etc/mysql-ssl/server-cert.pem
ssl-key=/etc/mysql-ssl/server-key.pem

##Change this value to connect the MariaDB server from another host.
bind-address = *

Salve o arquivo e reinicie o serviço MariaDB para aplicar estas alterações:

sudo systemctl restart mysql

Agora, você pode verificar se a configuração do SSL está funcionando ou não com a seguinte consulta:

mysql -u root -p
MariaDB [(none)]> SHOW VARIABLES LIKE '%ssl%';

Se a configuração foi bem-sucedida, você deverá ver a seguinte saída:

+---------------+--------------------------------+
| Variable_name | Value                          |
+---------------+--------------------------------+
| have_openssl  | YES                            |
| have_ssl      | YES                            |
| ssl_ca        | /etc/mysql-ssl/ca-cert.pem     |
| ssl_capath    |                                |
| ssl_cert      | /etc/mysql-ssl/server-cert.pem |
| ssl_cipher    |                                |
| ssl_crl       |                                |
| ssl_crlpath   |                                |
| ssl_key       | /etc/mysql-ssl/server-key.pem  |
+---------------+--------------------------------+

Você deve observar que os valores have_ssle have_opensslestão ativados na saída acima.

Etapa 4: criar um usuário com privilégios SSL

Crie um usuário remoto que tenha privilégio de acessar o servidor MariaDB por SSL. Faça isso executando o seguinte comando:

Primeiro, faça o login no shell do MySQL:

mysql -u root -p

Em seguida, crie usuário remotee conceda privilégio para acessar o servidor via SSL.

MariaDB [(none)]>GRANT ALL PRIVILEGES ON *.* TO 'remote'@'192.168.0.191' IDENTIFIED BY 'password' REQUIRE SSL;

Em seguida, limpe os privilégios com o seguinte comando:

MariaDB [(none)]>FLUSH PRIVILEGES;

Por fim, saia do shell do MySQL com o seguinte comando:

MariaDB [(none)]>exit;

Nota: 192.168.0.191 é o endereço IP da máquina do usuário remoto (cliente).

Agora seu servidor está pronto para permitir conexões com usuários remotos.

Etapa 5: Criar o certificado do cliente

Sua configuração do lado do servidor está concluída. Em seguida, você precisará criar uma nova chave e certificado para o cliente.

Na máquina servidor, crie a chave do cliente com o seguinte comando:

sudo cd /etc/mysql-ssl
sudo sudo openssl req -newkey rsa:2048 -days 365 -nodes -keyout client-key.pem -out client-req.pem

Em seguida, processe a chave RSA do cliente com o seguinte comando:

sudo openssl rsa -in client-key.pem -out client-key.pem

Por fim, assine o certificado do cliente com o seguinte comando:

sudo openssl x509 -req -in client-req.pem -days 365 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem

Etapa 6: configurar o cliente MariaDB para usar SSL

Todos os certificados e a chave estão prontos para o cliente. Em seguida, você precisará copiar todos os certificados do cliente para qualquer máquina cliente na qual deseja executar o cliente MariaDB.

Você precisará instalar o cliente MariaDB na máquina cliente.

Primeiro, na máquina cliente, faça o download da chave do MariaDB com o seguinte comando:

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

Em seguida, adicione o repositório MariaDB ao /etc/apt/sources.listarquivo:

sudo echo "deb [arch=amd64,i386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main" >> /etc/apt/sources.list

Em seguida, atualize o índice apt com o seguinte comando:

sudo apt-get update -y

Depois que o índice apt for atualizado, instale o cliente MariaDB na máquina cliente com o seguinte comando:

sudo apt-get install mariadb-client -y

Agora crie um diretório para armazenar todos os certificados:

sudo mkdir /etc/mysql-ssl

Em seguida, copie todos os certificados do cliente da máquina servidor para a máquina cliente com o seguinte comando:

sudo scp [email protected]:/etc/mysql-ssl/client-* /etc/mysql-ssl/

Em seguida, você precisará configurar o cliente MariaDB para usar SSL. Você pode fazer isso criando um /etc/mysql/mariadb.conf.d/50-mysql-clients.cnfarquivo:

sudo nano /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf

Adicione as seguintes linhas:

[client]
ssl-ca=/etc/mysql-ssl/ca-cert.pem
ssl-cert=/etc/mysql-ssl/client-cert.pem
ssl-key=/etc/mysql-ssl/client-key.pem

Salve o arquivo quando terminar.

Etapa 7: verificar conexões remotas

Agora que tudo está configurado, é hora de verificar se você pode se conectar ao servidor MariaDB com êxito ou não.

Na máquina cliente, execute o seguinte comando para conectar-se ao servidor MariaDB:

mysql -u remote -h 192.168.0.190 -p mysql

Você será solicitado a inserir a remotesenha do usuário. Depois de fornecer a senha, você estará conectado ao servidor MariaDB remoto.

Verifique o status da conexão com o seguinte comando:

MariaDB [mysql]> status

Você deve ver a seguinte saída:

--------------
mysql  Ver 15.1 Distrib 10.2.7-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Connection id:      62
Current database:   mysql
Current user:       [email protected]
SSL:            Cipher in use is DHE-RSA-AES256-SHA
Current pager:      stdout
Using outfile:      ''
Using delimiter:    ;
Server:         MariaDB
Server version:     10.0.31-MariaDB-0ubuntu0.16.04.2 Ubuntu 16.04
Protocol version:   10
Connection:     192.168.0.190 via TCP/IP
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8
Conn.  characterset:    utf8
TCP port:       3306
Uptime:         1 hours 31 min 31 sec

Você deve ver SSL: Cipher in use is DHE-RSA-AES256-SHAna saída acima. Isso significa que sua conexão agora está segura com SSL.

Conclusão

Parabéns! Você configurou com êxito um servidor MariaDB com suporte a SSL. Agora você pode conceder acesso a outros clientes para acessar o servidor MariaDB por SSL.



Leave a Comment

Como instalar o Apache Cassandra 3.11.x no CentOS 7

Como instalar o Apache Cassandra 3.11.x no CentOS 7

Usando um sistema diferente? O Apache Cassandra é um sistema de gerenciamento de banco de dados NoSQL gratuito e de código aberto, projetado para fornecer escalabilidade, alta

Como instalar o MyCLI no Linux (CentOS, Debian, Fedora e Ubuntu)

Como instalar o MyCLI no Linux (CentOS, Debian, Fedora e Ubuntu)

Introdução O MyCLI é um cliente de linha de comando para MySQL e MariaDB que permite concluir automaticamente e ajuda na sintaxe de seus comandos SQL. MyCL

Protegendo o MongoDB

Protegendo o MongoDB

O MongoDB não é seguro por padrão. Se você estiver instalando o MongoDB e iniciando-o sem configurá-lo para autenticação, terá um mau momento

Como instalar e configurar o OrientDB Community Edition no CentOS 7

Como instalar e configurar o OrientDB Community Edition no CentOS 7

O OrientDB é um DBM NoSQL de código aberto de última geração e com vários modelos. Com suporte para vários modelos de dados, o OrientDB pode fornecer mais funcionalidade e flexibilidade em

Como instalar e usar o ArangoDB no Ubuntu 16.04

Como instalar e usar o ArangoDB no Ubuntu 16.04

Usando um sistema diferente? Introdução O ArangoDB é um banco de dados NoSQL de código aberto com um modelo de dados flexível para documentos, gráficos e valores-chave. Isto é

Implantar um conjunto de réplicas com alta disponibilidade no MongoDB 3.4 usando o arquivo de chaves para controle de acesso no Ubuntu 16.04

Implantar um conjunto de réplicas com alta disponibilidade no MongoDB 3.4 usando o arquivo de chaves para controle de acesso no Ubuntu 16.04

Desde sua concepção, em 2009, o MongoDB lidera o setor NoSQL. Um dos principais conceitos do MongoDB é o conjunto de réplicas, portanto, antes de trabalhar com o i

Como configurar o WordPress com Redis

Como configurar o WordPress com Redis

Redis é um armazenamento de estrutura de dados. É popular nos sites WordPress, pois oferece um grande aumento de desempenho devido à sua abordagem otimizada no cache.

Fazendo backup de bancos de dados MySQL

Fazendo backup de bancos de dados MySQL

O MySQL é o software mais popular do mundo usado para bancos de dados. É muito importante garantir que você tenha backups do seu banco de dados. Essa prática permite

Faça backup automaticamente de vários bancos de dados MySQL ou MariaDB

Faça backup automaticamente de vários bancos de dados MySQL ou MariaDB

Introdução Neste artigo, passo a passo sobre como fazer backup de vários bancos de dados MySQL ou MariaDB que ficam na mesma máquina usando um script bash personalizado

Como instalar o Apache Cassandra 3.11.x no Ubuntu 16.04 LTS

Como instalar o Apache Cassandra 3.11.x no Ubuntu 16.04 LTS

Usando um sistema diferente? O Apache Cassandra é um sistema de gerenciamento de banco de dados NoSQL gratuito e de código aberto, projetado para fornecer escalabilidade, alta

Como instalar o MongoDB 4.0 no Arch Linux

Como instalar o MongoDB 4.0 no Arch Linux

Pré-requisitos Um servidor Vultr executando o Arch Linux atualizado (consulte este artigo) Acesso ao Sudo: os comandos necessários para serem executados como raiz são prefixados por # e um

Como instalar o Laravel GitScrum no CentOS 7

Como instalar o Laravel GitScrum no CentOS 7

O Laravel GitScrum, ou GitScrum, é uma ferramenta de produtividade de código aberto projetada para ajudar as equipes de desenvolvimento a implementar a metodologia Scrum de maneira semelhante a

Como instalar o PostgreSQL 11.1 no Arch Linux

Como instalar o PostgreSQL 11.1 no Arch Linux

Pré-requisitos Um servidor Vultr executando o Arch Linux atualizado (consulte este artigo.) Acesso ao Sudo. Os comandos que precisam ser executados como raiz são prefixados por # e um

Como instalar o MariaDB 10.3 ou MySQL 8.0 no Arch Linux

Como instalar o MariaDB 10.3 ou MySQL 8.0 no Arch Linux

Pré-requisitos Um servidor Vultr executando o Arch Linux atualizado (consulte este artigo.) Acesso ao Sudo: os comandos necessários para serem executados como raiz são prefixados por # e um

Instale versões mais recentes do MongoDB no Debian 7

Instale versões mais recentes do MongoDB no Debian 7

O MongoDB é um banco de dados NoSQL rápido e poderoso. No entanto, os repositórios Debian são atualizados lentamente e geralmente contêm versões muito antigas dos pacotes. Esta tutoria

Instalação Barnyard 2 With Snort

Instalação Barnyard 2 With Snort

Barnyard2 é uma maneira de armazenar e processar as saídas binárias do Snort em um banco de dados MySQL. Antes de começar Por favor, note que se você não tem ronco

Instale o RockMongo no CentOS 7

Instale o RockMongo no CentOS 7

O RockMongo é uma ferramenta de gerenciamento do MongoDB baseada na Web, semelhante à ferramenta de gerenciamento do MySQL: phpMyAdmin. Este tutorial abordará o processo de instalação

Configurar o MariaDB no OpenBSD 6

Configurar o MariaDB no OpenBSD 6

Neste artigo, mostrarei como instalar o MariaDB no OpenBSD 6 e configurá-lo para ser acessível a um servidor da web com chroot (Apache ou Nginx). Você também

Como instalar e configurar o ArangoDB no CentOS 7

Como instalar e configurar o ArangoDB no CentOS 7

Usando um sistema diferente? Introdução O ArangoDB é um banco de dados NoSQL de código aberto com um modelo de dados flexível para documentos, gráficos e valores-chave. Isto é

Como instalar o Redis no Ubuntu 15.10

Como instalar o Redis no Ubuntu 15.10

Redis é uma solução de armazenamento de dados de valor-chave, geralmente chamada de banco de dados NoSQL. Ele pode atingir velocidades de leitura / gravação muito altas porque é um recurso de memória

A IA pode lutar contra o aumento do número de ataques de ransomware

A IA pode lutar contra o aumento do número de ataques de ransomware

Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane

ReactOS: Este é o futuro do Windows?

ReactOS: Este é o futuro do Windows?

ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+

Como a IA pode levar a automação de processos ao próximo nível?

Como a IA pode levar a automação de processos ao próximo nível?

Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

O que é um sistema de arquivos de registro no diário e como ele funciona?

O que é um sistema de arquivos de registro no diário e como ele funciona?

Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true

Singularidade tecnológica: um futuro distante da civilização humana?

Singularidade tecnológica: um futuro distante da civilização humana?

À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

O impacto da inteligência artificial na saúde 2021

O impacto da inteligência artificial na saúde 2021

A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA ​​na área da saúde ainda está crescendo dia a dia.