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 []:[email protected]

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 [email protected]:/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:       [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

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.


Installation af InfluxDB på Ubuntu 14

Installation af InfluxDB på Ubuntu 14

Introduktion InfluxDB er en open source, distribueret tidsseriedatabase uden eksterne afhængigheder. Ja, du læser ingen eksterne afhængigheder par

Sådan installeres Apache Cassandra 3.11.x på Ubuntu 16.04 LTS

Sådan installeres Apache Cassandra 3.11.x på Ubuntu 16.04 LTS

Bruger du et andet system? Apache Cassandra er et gratis og open source NoSQL-databasestyringssystem, der er designet til at give skalerbarhed, høj

Sådan installeres Apache Cassandra 3.11.x på CentOS 7

Sådan installeres Apache Cassandra 3.11.x på CentOS 7

Bruger du et andet system? Apache Cassandra er et gratis og open source NoSQL-databasestyringssystem, der er designet til at give skalerbarhed, høj

Sådan installeres og konfigureres ArangoDB på CentOS 7

Sådan installeres og konfigureres ArangoDB på CentOS 7

Bruger du et andet system? Introduktion ArangoDB er en open source NoSQL-database med en fleksibel datamodel for dokumenter, grafer og nøgleværdier. det er

Sådan installeres Laravel GitScrum på CentOS 7

Sådan installeres Laravel GitScrum på CentOS 7

Laravel GitScrum eller GitScrum er et open source-produktivitetsværktøj designet til at hjælpe udviklingsteams med at implementere Scrum-metoden på en måde, der ligner t.

Sikkerhedskopier flere MySQL- eller MariaDB-databaser automatisk

Sikkerhedskopier flere MySQL- eller MariaDB-databaser automatisk

Introduktion I denne skrive-up, gå godt igennem, hvordan du sikkerhedskopierer flere MySQL- eller MariaDB-databaser, der sidder på den samme maskine ved hjælp af et brugerdefineret bash-script

Sådan installeres og konfigureres OrientDB Community Edition på CentOS 7

Sådan installeres og konfigureres OrientDB Community Edition på CentOS 7

OrientDB er en næste-gen multi-model open source NoSQL DBMS. Med understøttelse af flere datamodeller kan OrientDB give mere funktionalitet og fleksibilitet i

Sikring af MongoDB

Sikring af MongoDB

MongoDB er som standard ikke sikker. Hvis du installerer MongoDB og starter den uden at konfigurere den til godkendelse, vil du have en dårlig tid

Sikkerhedskopiering af MySQL-databaser

Sikkerhedskopiering af MySQL-databaser

MySQL er den mest populære software i verden, der bruges til databaser. Det er meget vigtigt at sikre, at du har sikkerhedskopier af din database. Denne praksis tillader

Sådan sikkerhedskopieres og gendannes PostgreSQL-databaser på Ubuntu 16.04

Sådan sikkerhedskopieres og gendannes PostgreSQL-databaser på Ubuntu 16.04

Introduktion PostgreSQL er et gratis og open source databasestyringssystem, der kan bruges til at gemme information relateret til websteder. Det kendes også en

Sådan installeres PostgreSQL 11.1 på Arch Linux

Sådan installeres PostgreSQL 11.1 på Arch Linux

Forudsætninger En Vultr-server, der kører up to date Arch Linux (se denne artikel.) Sudo-adgang. Kommandoer, der kræves for at blive kørt som root, har # og én foran

Implementer et replikasæt med høj tilgængelighed i MongoDB 3.4 ved hjælp af nøglefil til adgangskontrol på Ubuntu 16.04

Implementer et replikasæt med høj tilgængelighed i MongoDB 3.4 ved hjælp af nøglefil til adgangskontrol på Ubuntu 16.04

Siden sin idé i 2009 har MongoDB været førende i NoSQL-industrien. Et af kernekoncepterne i MongoDB er Replica Set, så før du arbejder med bl.a

Installer nyere versioner af MongoDB på Debian 7

Installer nyere versioner af MongoDB på Debian 7

MongoDB er en hurtig og kraftfuld NoSQL-database. Imidlertid opdaterer Debians arkiver langsomt og indeholder ofte meget gamle versioner af pakker. Denne tutoria

Opsætning af Barnyard 2 Med Snort

Opsætning af Barnyard 2 Med Snort

Barnyard2 er en måde at gemme og behandle de binære output fra Snort til en MySQL-database. Før vi begynder Bemærk venligst, at hvis du ikke har snorken

Sådan installeres Apache Cassandra 3.11.x på Debian 9

Sådan installeres Apache Cassandra 3.11.x på Debian 9

Bruger du et andet system? Apache Cassandra er et gratis og open source NoSQL-databasestyringssystem, der er designet til at give skalerbarhed, høj

Installer RockMongo på CentOS 7

Installer RockMongo på CentOS 7

RockMongo er et webbaseret MongoDB Management-værktøj, der ligner MySQL Management-værktøjet: phpMyAdmin. Denne tutorial vil dække installationsprocessen

Installer InfluxDB på Debian Jessie med Telegraf

Installer InfluxDB på Debian Jessie med Telegraf

Introduktion InfluxDB er en tidsseriebaseret database skrevet i Go. InfluxDB har mange praktiske anvendelser, hvoraf den ene er lagring af overvågningsdata på servere. jeg

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

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

Sådan installeres phpRedisAdmin på CentOS 7

Sådan installeres phpRedisAdmin på CentOS 7

phpRedisAdmin er en webapplikation, der administrerer Redis-databaser med en intuitiv grafisk brugergrænseflade. Denne vejledning vil forklare, hvordan du installerer

Sådan installeres og bruges ArangoDB på Ubuntu 16.04

Sådan installeres og bruges ArangoDB på Ubuntu 16.04

Bruger du et andet system? Introduktion ArangoDB er en open source NoSQL-database med en fleksibel datamodel for dokumenter, grafer og nøgleværdier. det er

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.

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.

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.

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