Sikre MariaDB med SSL-støtte på Ubuntu 16.04

MariaDB er en gratis åpen kildekode-database, og er den mest brukte drop-in-erstatningen for MySQL. Den er laget av utviklerne av MySQL og ment å forbli gratis under GNU GPL. Den er veldig rask, skalerbar og kommer med et rikt sett med funksjoner som gjør den veldig allsidig for en lang rekke brukstilfeller.

Denne opplæringen vil lede deg gjennom hvordan du installerer og konfigurerer MariaDB med SSL-støtte på Ubuntu 16.04.

Krav

  • En fersk Ubuntu 16.04 Vultr-forekomst.
  • En ikke-rootbruker med sudo-rettigheter.
  • En statisk IP-adresse 192.168.0.190 er konfigurert på serverforekomsten.
  • En statisk IP-adresse 192.168.0.191 er konfigurert på klientmaskinen.

Trinn 1: Installer MariaDB

Som standard er den nyeste versjonen av MariaDB ikke tilgjengelig i Ubuntu 16.04-depotet; så du må legge til MariaDB-depotet til systemet ditt.

Først laster du ned nøkkelen med følgende kommando:

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

Deretter legger du til 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

Oppdater apt-indeksen med følgende kommando:

sudo apt-get update -y

Når apt index har blitt oppdatert, installer MariaDB-serveren med følgende kommando:

sudo apt-get install mariadb-server -y

Start MariaDB-serveren og la den starte ved oppstartstid:

sudo systemctl start mysql
sudo systemctl enable mysql

Deretter må du kjøre mysql_secure_installationskript for å sikre MariaDB-installasjonen. Dette skriptet lar deg angi root-passordet, fjerne anonyme brukere, ikke tillate ekstern rotpålogging og fjerne testdatabasen:

sudo mysql_secure_installation

Trinn 2: Opprett et SSL-sertifikat og en privat nøkkel for serveren

Først oppretter du en katalog for å lagre alle nøkkel- og sertifikatfilene.

sudo mkdir /etc/mysql-ssl

Deretter endrer du katalogen til /etc/mysql-sslog oppretter CA-sertifikatet og den private nøkkelen 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

Svar på alle spørsmå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

Deretter oppretter du en privat nøkkel for serveren med følgende kommando:

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

Svar på alle spørsmålene som du gjorde i forrige kommando.

Deretter eksporterer du serverens private nøkkel til en RSA-type nøkkel med følgende kommando:

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

Til slutt genererer du et serversertifikat ved å bruke CA-sertifikatet 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 nå se alle sertifikatene og nøkkelen med følgende kommando:

ls

Du bør se følgende utgang:

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

Når du er ferdig, kan du gå videre til neste trinn.

Trinn 3: Konfigurer MariaDB Server til å bruke SSL

Du bør ha alle sertifikatene og en privat nøkkel; og nå må du konfigurere MariaDB til å bruke nøkkelen og sertifikatene. Du kan gjøre dette ved å redigere /etc/mysql/mariadb.conf.d/50-server.cnffilen:

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

Legg til følgende linjer under [mysqld]seksjonen:

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

Lagre filen, og start deretter MariaDB-tjenesten på nytt for å bruke disse endringene:

sudo systemctl restart mysql

Nå kan du sjekke om SSL-konfigurasjonen fungerer eller ikke med følgende spørring:

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

Hvis konfigurasjonen var vellykket, bør du se følgende utgang:

+---------------+--------------------------------+
| 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 legge merke til have_sslog have_opensslverdier er aktivert i over produksjonen.

Trinn 4: Opprett en bruker med SSL-rettigheter

Opprett en ekstern bruker som har rettigheter til å få tilgang til MariaDB-serveren over SSL. Gjør dette ved å kjøre følgende kommando:

Først, logg inn på MySQL-skallet:

mysql -u root -p

Deretter oppretter du bruker remoteog gir tilgang til serveren over SSL.

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

Tøm deretter privilegiene med følgende kommando:

MariaDB [(none)]>FLUSH PRIVILEGES;

Til slutt, gå ut av MySQL-skallet med følgende kommando:

MariaDB [(none)]>exit;

Merk: 192.168.0.191 er IP-adressen til den eksterne brukeren (klienten).

Serveren din er nå klar til å tillate tilkoblinger til ekstern bruker.

Trinn 5: Opprett klientsertifikatet

Konfigurasjonen på serversiden er fullført. Deretter må du opprette en ny nøkkel og sertifikat for klienten.

På servermaskinen oppretter du klientnøkkelen 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

Deretter behandler du klientens RSA-nøkkel med følgende kommando:

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

Til slutt signerer du klientsertifikatet 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

Trinn 6: Konfigurer MariaDB-klienten til å bruke SSL

Alle sertifikatene og nøkkelen er klare for klienten. Deretter må du kopiere alle klientsertifikatene til en hvilken som helst klientmaskin der du vil kjøre MariaDB-klienten.

Du må installere MariaDB-klienten på klientmaskinen.

Først, på klientmaskinen, last ned nøkkelen for MariaDB med følgende kommando:

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

Deretter legger du til 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

Deretter oppdaterer du apt-indeksen med følgende kommando:

sudo apt-get update -y

Når apt index er oppdatert, installer MariaDB-klienten på klientmaskinen med følgende kommando:

sudo apt-get install mariadb-client -y

Opprett nå en katalog for å lagre alle sertifikatene:

sudo mkdir /etc/mysql-ssl

Deretter kopierer du alle klientsertifikatene fra servermaskinen til klientmaskinen med følgende kommando:

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

Deretter må du konfigurere MariaDB-klienten til å bruke SSL. Du kan gjøre dette ved å lage en /etc/mysql/mariadb.conf.d/50-mysql-clients.cnffil:

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

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

Lagre filen når du er ferdig.

Trinn 7: Bekreft eksterne tilkoblinger

Nå som alt er konfigurert, er det på tide å bekrefte om du kan koble til MariaDB-serveren eller ikke.

På klientmaskinen, kjør følgende kommando for å koble til MariaDB-serveren:

mysql -u remote -h 192.168.0.190 -p mysql

Du vil bli bedt om å skrive inn remotebrukerpassordet. Etter å ha gitt passordet, vil du bli logget på den eksterne MariaDB-serveren.

Sjekk statusen til tilkoblingen med følgende kommando:

MariaDB [mysql]> status

Du bør se følgende utgang:

--------------
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 utgangen ovenfor. Det betyr at tilkoblingen din nå er sikker med SSL.

Konklusjon

Gratulerer! Du har konfigurert en MariaDB-server med SSL-støtte. Du kan nå gi tilgang til andre klienter for å få tilgang til MariaDB-serveren over SSL.

Legg igjen 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 akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer