MariaDB sicura con supporto SSL su Ubuntu 16.04

MariaDB è un database open source gratuito ed è la sostituzione drop-in più utilizzata per MySQL. È realizzato dagli sviluppatori di MySQL e intende rimanere libero sotto GNU GPL. È molto veloce, scalabile e viene fornito con un ricco set di funzionalità che lo rendono molto versatile per un'ampia varietà di casi d'uso.

Questo tutorial ti illustrerà come installare e configurare MariaDB con supporto SSL su Ubuntu 16.04.

Requisiti

  • Una nuova istanza di Ubuntu 16.04 Vultr.
  • Un utente non root con privilegi sudo.
  • Un indirizzo IP statico 192.168.0.190 è configurato sull'istanza del server.
  • Un indirizzo IP statico 192.168.0.191 è configurato sul computer client.

Passaggio 1: installare MariaDB

Per impostazione predefinita, l'ultima versione di MariaDB non è disponibile nel repository Ubuntu 16.04; quindi dovrai aggiungere il repository MariaDB al tuo sistema.

Innanzitutto, scarica la chiave con il seguente comando:

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

Successivamente, aggiungi il repository MariaDB al /etc/apt/sources.listfile:

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

Aggiorna l'indice apt con il seguente comando:

sudo apt-get update -y

Dopo aver aggiornato l'indice apt, installare il server MariaDB con il seguente comando:

sudo apt-get install mariadb-server -y

Avviare il server MariaDB e abilitarlo per l'avvio all'avvio:

sudo systemctl start mysql
sudo systemctl enable mysql

Successivamente, dovrai eseguire lo mysql_secure_installationscript per proteggere l'installazione di MariaDB. Questo script consente di impostare la password di root, rimuovere utenti anonimi, impedire l'accesso remoto remoto e rimuovere il database di test:

sudo mysql_secure_installation

Passaggio 2: creare un certificato SSL e una chiave privata per il server

Innanzitutto, crea una directory per archiviare tutti i file di chiavi e certificati.

sudo mkdir /etc/mysql-ssl

Quindi, modificare la directory in /etc/mysql-ssle creare il certificato CA e la chiave privata con il comando seguente:

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

Rispondi a tutte le domande come mostrato di seguito:

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]

Quindi, crea una chiave privata per il server con il seguente comando:

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

Rispondi a tutte le domande come hai fatto nel comando precedente.

Successivamente, esporta la chiave privata del server in una chiave di tipo RSA con il seguente comando:

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

Infine, genera un certificato server utilizzando il certificato CA come segue:

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

Ora puoi vedere tutti i certificati e le chiavi con il seguente comando:

ls

Dovresti vedere il seguente output:

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

Una volta terminato, puoi procedere al passaggio successivo.

Passaggio 3: configurare il server MariaDB per l'utilizzo di SSL

Dovresti avere tutti i certificati e una chiave privata; e ora dovrai configurare MariaDB per usare la chiave e i certificati. Puoi farlo modificando il /etc/mysql/mariadb.conf.d/50-server.cnffile:

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

Aggiungi le seguenti righe nella [mysqld]sezione:

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 = *

Salvare il file, quindi riavviare il servizio MariaDB per applicare queste modifiche:

sudo systemctl restart mysql

Ora puoi verificare se la configurazione SSL funziona o meno con la seguente query:

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

Se la configurazione ha avuto esito positivo, dovresti vedere il seguente output:

+---------------+--------------------------------+
| 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  |
+---------------+--------------------------------+

Dovresti notare che i valori have_ssle have_opensslsono abilitati nell'output sopra.

Passaggio 4: creare un utente con privilegi SSL

Creare un utente remoto che ha il privilegio di accedere al server MariaDB su SSL. Fallo eseguendo il seguente comando:

Innanzitutto, accedi alla shell MySQL:

mysql -u root -p

Successivamente, crea l'utente remotee concedi il privilegio di accedere al server su SSL.

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

Quindi, svuota i privilegi con il seguente comando:

MariaDB [(none)]>FLUSH PRIVILEGES;

Infine, esci dalla shell MySQL con il seguente comando:

MariaDB [(none)]>exit;

Nota: 192.168.0.191 è l'indirizzo IP del computer dell'utente remoto (client).

Il server è ora pronto per consentire le connessioni all'utente remoto.

Passaggio 5: creare il certificato client

La configurazione lato server è completa. Successivamente, sarà necessario creare una nuova chiave e certificato per il client.

Sul computer server, creare la chiave client con il seguente comando:

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

Successivamente, elabora la chiave RSA del client con il seguente comando:

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

Infine, firmare il certificato client con il seguente 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

Passaggio 6: configurare il client MariaDB per l'utilizzo di SSL

Tutti i certificati e la chiave sono pronti per il client. Successivamente, sarà necessario copiare tutti i certificati client su qualsiasi macchina client su cui si desidera eseguire il client MariaDB.

Sarà necessario installare il client MariaDB sul computer client.

Innanzitutto, sul computer client, scarica la chiave per MariaDB con il seguente comando:

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

Quindi, aggiungi il repository MariaDB al /etc/apt/sources.listfile:

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

Quindi, aggiorna l'indice apt con il seguente comando:

sudo apt-get update -y

Una volta aggiornato l'indice apt, installare il client MariaDB sul computer client con il comando seguente:

sudo apt-get install mariadb-client -y

Ora crea una directory per archiviare tutti i certificati:

sudo mkdir /etc/mysql-ssl

Quindi, copiare tutti i certificati client dal computer server al computer client con il comando seguente:

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

Quindi, dovrai configurare il client MariaDB per utilizzare SSL. Puoi farlo creando un /etc/mysql/mariadb.conf.d/50-mysql-clients.cnffile:

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

Aggiungi le seguenti righe:

[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

Salva il file al termine.

Passaggio 7: verificare le connessioni remote

Ora che tutto è configurato, è tempo di verificare se è possibile connettersi correttamente al server MariaDB o meno.

Sul computer client, eseguire il comando seguente per connettersi al server MariaDB:

mysql -u remote -h 192.168.0.190 -p mysql

Ti verrà chiesto di inserire la remotepassword dell'utente. Dopo aver fornito la password, si accederà al server MariaDB remoto.

Verificare lo stato della connessione con il seguente comando:

MariaDB [mysql]> status

Dovresti vedere il seguente output:

--------------
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

Dovresti vedere SSL: Cipher in use is DHE-RSA-AES256-SHAnell'output sopra. Ciò significa che la tua connessione è ora sicura con SSL.

Conclusione

Congratulazioni! Hai configurato correttamente un server MariaDB con supporto SSL. Ora puoi concedere l'accesso ad altri client per accedere al server MariaDB su SSL.



Leave a Comment

Come installare Apache Cassandra 3.11.x su CentOS 7

Come installare Apache Cassandra 3.11.x su CentOS 7

Usi un sistema diverso? Apache Cassandra è un sistema di gestione di database NoSQL gratuito e open source progettato per fornire scalabilità, alta

Come installare MyCLI su Linux (CentOS, Debian, Fedora e Ubuntu)

Come installare MyCLI su Linux (CentOS, Debian, Fedora e Ubuntu)

Introduzione MyCLI è un client da riga di comando per MySQL e MariaDB che ti consente di completare automaticamente e ti aiuta con la sintassi dei tuoi comandi SQL. MyCL

Protezione di MongoDB

Protezione di MongoDB

MongoDB non è sicuro per impostazione predefinita. Se stai installando MongoDB e lo avvii senza configurarlo per lautenticazione, avrai dei brutti momenti

Come installare e utilizzare ArangoDB su Ubuntu 16.04

Come installare e utilizzare ArangoDB su Ubuntu 16.04

Usi un sistema diverso? Introduzione ArangoDB è un database NoSQL open source con un modello di dati flessibile per documenti, grafici e valori-chiave. È

Come configurare WordPress con Redis

Come configurare WordPress con Redis

Redis è un archivio di strutture dati. È popolare tra i siti WordPress perché offre grandi prestazioni grazie al suo approccio ottimizzato alla memorizzazione nella cache.

Backup dei database MySQL

Backup dei database MySQL

MySQL è il software più popolare al mondo utilizzato per i database. Accertarsi di disporre di backup del database è molto importante. Questa pratica lo consente

Backup automatico di più database MySQL o MariaDB

Backup automatico di più database MySQL o MariaDB

Introduzione In questo articolo, spiega come eseguire il backup di più database MySQL o MariaDB che si trovano sullo stesso computer utilizzando uno script bash personalizzato

Come installare Apache Cassandra 3.11.x su Ubuntu 16.04 LTS

Come installare Apache Cassandra 3.11.x su Ubuntu 16.04 LTS

Usi un sistema diverso? Apache Cassandra è un sistema di gestione di database NoSQL gratuito e open source progettato per fornire scalabilità, alta

Come installare Laravel GitScrum su CentOS 7

Come installare Laravel GitScrum su CentOS 7

Laravel GitScrum o GitScrum è uno strumento di produttività open source progettato per aiutare i team di sviluppo a implementare la metodologia Scrum in modo simile a

Come installare PostgreSQL 11.1 su Arch Linux

Come installare PostgreSQL 11.1 su Arch Linux

Prerequisiti Un server Vultr con Arch Linux aggiornato (vedere questo articolo.) Accesso Sudo. I comandi che devono essere eseguiti come root sono preceduti da # e uno

Distribuire un set di repliche con elevata disponibilità in MongoDB 3.4 utilizzando Keyfile per il controllo degli accessi su Ubuntu 16.04

Distribuire un set di repliche con elevata disponibilità in MongoDB 3.4 utilizzando Keyfile per il controllo degli accessi su Ubuntu 16.04

Fin dalla sua concezione nel 2009 MongoDB ha guidato lindustria NoSQL. Uno dei concetti chiave di MongoDB è il set di repliche, quindi prima di lavorare con i

Installa le versioni più recenti di MongoDB su Debian 7

Installa le versioni più recenti di MongoDB su Debian 7

MongoDB è un database NoSQL veloce e potente. Tuttavia, i repository Debian si aggiornano lentamente e spesso contengono versioni molto vecchie di pacchetti. Questa tutoria

Configura MariaDB su OpenBSD 6

Configura MariaDB su OpenBSD 6

In questo articolo, Ill ti mostra come installare MariaDB su OpenBSD 6 e configurarlo per essere accessibile a un server Web chroot (Apache o Nginx). Lo farai anche tu

Installazione Barnyard 2 con Snort

Installazione Barnyard 2 con Snort

Barnyard2 è un modo per archiviare ed elaborare gli output binari da Snort in un database MySQL. Prima di iniziare Si prega di notare che se non si ha russare

Come installare phpRedisAdmin su CentOS 7

Come installare phpRedisAdmin su CentOS 7

phpRedisAdmin è unapplicazione web che gestisce i database Redis con uninterfaccia utente grafica intuitiva. Questo tutorial spiegherà come installare

Installa RockMongo su CentOS 7

Installa RockMongo su CentOS 7

RockMongo è uno strumento di gestione MongoDB basato sul web simile allo strumento di gestione MySQL: phpMyAdmin. Questo tutorial coprirà il processo di installazione

Come installare e configurare ArangoDB su CentOS 7

Come installare e configurare ArangoDB su CentOS 7

Usando un sistema diverso? Introduzione ArangoDB è un database NoSQL open source con un modello di dati flessibile per documenti, grafici e valori-chiave. È

Come installare Redis su Ubuntu 15.10

Come installare Redis su Ubuntu 15.10

Redis è una soluzione di archiviazione dei dati chiave-valore, spesso definita come un database NoSQL. Può raggiungere velocità di lettura / scrittura molto elevate perché è un bu in memoria

Come eseguire il backup, ripristinare o trasferire i database MySQL / MariaDB su Ubuntu 16.04

Come eseguire il backup, ripristinare o trasferire i database MySQL / MariaDB su Ubuntu 16.04

Il backup è una parte importante della gestione dei database. Indipendentemente dal fatto che gestiate un sito aziendale, o semplicemente ospitate WordPress, è importante eseguire il backup

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane

ReactOS: è questo il futuro di Windows?

ReactOS: è questo il futuro di Windows?

ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.

Rimani connesso tramite lapp desktop WhatsApp 24*7

Rimani connesso tramite lapp desktop WhatsApp 24*7

Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per l'estrazione dei dati dai Big Data

Che cosè un file system di journaling e come funziona?

Che cosè un file system di journaling e come funziona?

Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true

Singolarità tecnologica: un lontano futuro della civiltà umana?

Singolarità tecnologica: un lontano futuro della civiltà umana?

Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Limpatto dellintelligenza artificiale nella sanità 2021

Limpatto dellintelligenza artificiale nella sanità 2021

L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.