Sikker MariaDB med SSL-understøttelse på Ubuntu 16.04

MariaDB er en gratis open source-database og er den mest udbredte drop-in-erstatning for MySQL. Det er lavet af udviklerne af MySQL og beregnet til at forblive gratis under GNU GPL. Det er meget hurtigt, skalerbart og kommer med et rigt sæt funktioner, der gør det meget alsidigt til en lang række anvendelsestilfælde.

Denne vejledning vil lede dig gennem, hvordan du installerer og konfigurerer MariaDB med SSL-understøttelse på Ubuntu 16.04.

Krav

  • En frisk Ubuntu 16.04 Vultr-instans.
  • En ikke-root-bruger med sudo-rettigheder.
  • En statisk IP-adresse 192.168.0.190 er konfigureret på serverforekomsten.
  • En statisk IP-adresse 192.168.0.191 er konfigureret på klientmaskinen.

Trin 1: Installer MariaDB

Som standard er den seneste version af MariaDB ikke tilgængelig i Ubuntu 16.04-lageret; så du bliver nødt til at tilføje MariaDB-lageret til dit system.

Først skal du downloade nøglen med følgende kommando:

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

Tilføj derefter MariaDB-lageret til /etc/apt/sources.listfilen:

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

Opdater apt-indekset med følgende kommando:

sudo apt-get update -y

Når apt index er blevet opdateret, skal du installere MariaDB-serveren med følgende kommando:

sudo apt-get install mariadb-server -y

Start MariaDB-serveren og aktiver den til at starte ved opstartstid:

sudo systemctl start mysql
sudo systemctl enable mysql

Dernæst skal du køre mysql_secure_installationscript for at sikre MariaDB-installationen. Dette script giver dig mulighed for at indstille root-adgangskoden, fjerne anonyme brugere, forbyde ekstern root-login og fjerne testdatabasen:

sudo mysql_secure_installation

Trin 2: Opret et SSL-certifikat og en privat nøgle til serveren

Først skal du oprette en mappe til at gemme alle nøgle- og certifikatfiler.

sudo mkdir /etc/mysql-ssl

Skift derefter mappen til /etc/mysql-sslog opret CA-certifikatet og den private nøgle med følgende kommando:

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

Besvar alle spørgsmålene som vist nedenfor:

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

Opret derefter en privat nøgle til serveren med følgende kommando:

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

Besvar alle spørgsmålene, som du gjorde i den forrige kommando.

Eksporter derefter serverens private nøgle til en nøgle af RSA-typen med følgende kommando:

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

Til sidst skal du generere et servercertifikat ved hjælp af CA-certifikatet som følger:

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

Du kan nu se alle certifikater og nøgle med følgende kommando:

ls

Du bør se følgende output:

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

Når du er færdig, kan du fortsætte til næste trin.

Trin 3: Konfigurer MariaDB Server til at bruge SSL

Du bør have alle certifikater og en privat nøgle; og nu skal du konfigurere MariaDB til at bruge nøglen og certifikaterne. Du kan gøre dette ved at redigere /etc/mysql/mariadb.conf.d/50-server.cnffilen:

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

Tilføj følgende linjer under [mysqld]afsnittet:

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

Gem filen, og genstart derefter MariaDB-tjenesten for at anvende disse ændringer:

sudo systemctl restart mysql

Nu kan du kontrollere, om SSL-konfigurationen fungerer eller ej med følgende forespørgsel:

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

Hvis konfigurationen lykkedes, bør du se følgende 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  |
+---------------+--------------------------------+

Du bør bemærke den have_sslog have_opensslværdier er aktiveret i ovenstående output.

Trin 4: Opret en bruger med SSL-rettigheder

Opret en fjernbruger, der har privilegium til at få adgang til MariaDB-serveren over SSL. Gør dette ved at køre følgende kommando:

Først skal du logge ind på MySQL-skallen:

mysql -u root -p

Opret derefter bruger remoteog giv privilegium til at få adgang til serveren over SSL.

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

Fjern derefter rettighederne med følgende kommando:

MariaDB [(none)]>FLUSH PRIVILEGES;

Afslut endelig MySQL-skallen med følgende kommando:

MariaDB [(none)]>exit;

Bemærk: 192.168.0.191 er IP-adressen på fjernbrugerens (klient) maskine.

Din server er nu klar til at tillade forbindelser til fjernbrugere.

Trin 5: Opret klientcertifikatet

Konfigurationen på serversiden er fuldført. Dernæst skal du oprette en ny nøgle og certifikat til klienten.

På servermaskinen skal du oprette klientnøglen med følgende kommando:

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

Derefter skal du behandle klient-RSA-nøglen med følgende kommando:

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

Til sidst skal du underskrive klientcertifikatet med følgende kommando:

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

Trin 6: Konfigurer MariaDB Client til at bruge SSL

Alle certifikater og nøglen er klar til klienten. Dernæst skal du kopiere alle klientcertifikater til enhver klientmaskine, hvor du vil køre MariaDB-klienten.

Du skal installere MariaDB-klienten på klientmaskinen.

Først, på klientmaskinen, download nøglen til MariaDB med følgende kommando:

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

Tilføj derefter MariaDB-depotet til /etc/apt/sources.listfilen:

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

Opdater derefter apt-indekset med følgende kommando:

sudo apt-get update -y

Når apt index er opdateret, skal du installere MariaDB-klienten på klientmaskinen med følgende kommando:

sudo apt-get install mariadb-client -y

Opret nu en mappe til at gemme alle certifikaterne:

sudo mkdir /etc/mysql-ssl

Kopier derefter alle klientcertifikater fra servermaskinen til klientmaskinen med følgende kommando:

sudo scp root@192.168.0.190:/etc/mysql-ssl/client-* /etc/mysql-ssl/

Derefter skal du konfigurere MariaDB-klienten til at bruge SSL. Du kan gøre dette ved at oprette en /etc/mysql/mariadb.conf.d/50-mysql-clients.cnffil:

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

Tilføj følgende linjer:

[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

Gem filen, når du er færdig.

Trin 7: Bekræft fjernforbindelser

Nu hvor alt er konfigureret, er det tid til at kontrollere, om du kan oprette forbindelse til MariaDB-serveren med succes eller ej.

På klientmaskinen skal du køre følgende kommando for at oprette forbindelse til MariaDB-serveren:

mysql -u remote -h 192.168.0.190 -p mysql

Du bliver bedt om at indtaste remotebrugeradgangskoden. Efter at have givet adgangskoden, bliver du logget på den eksterne MariaDB-server.

Kontroller status for forbindelsen med følgende kommando:

MariaDB [mysql]> status

Du bør se følgende 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:       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

Du bør se SSL: Cipher in use is DHE-RSA-AES256-SHAi ovenstående output. Det betyder, at din forbindelse nu er sikker med SSL.

Konklusion

Tillykke! Du har konfigureret en MariaDB-server med SSL-understøttelse. Du kan nu give adgang til andre klienter for at få adgang til MariaDB-serveren over SSL.

Efterlad en kommentar

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere