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 []:example@example.com

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 root@192.168.0.190:/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:       remote@192.168.0.191
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.

Deixar um comentário

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.