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

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


Installere InfluxDB på Ubuntu 14

Installere InfluxDB på Ubuntu 14

Introduksjon InfluxDB er en åpen kildekode, distribuert, tidsseriedatabase uten eksterne avhengigheter. Ja, du leser ingen eksterne avhengigheter par

Hvordan installere Apache Cassandra 3.11.x på Ubuntu 16.04 LTS

Hvordan installere Apache Cassandra 3.11.x på Ubuntu 16.04 LTS

Bruker du et annet system? Apache Cassandra er et gratis og åpen kildekode NoSQL-databasebehandlingssystem som er designet for å gi skalerbarhet, høy

Slik installerer du Apache Cassandra 3.11.x på CentOS 7

Slik installerer du Apache Cassandra 3.11.x på CentOS 7

Bruker du et annet system? Apache Cassandra er et gratis og åpen kildekode NoSQL-databasebehandlingssystem som er designet for å gi skalerbarhet, høy

Hvordan installere og konfigurere ArangoDB på CentOS 7

Hvordan installere og konfigurere ArangoDB på CentOS 7

Bruker du et annet system? Introduksjon ArangoDB er en åpen kildekode NoSQL-database med en fleksibel datamodell for dokumenter, grafer og nøkkelverdier. Det er

Hvordan installere Laravel GitScrum på CentOS 7

Hvordan installere Laravel GitScrum på CentOS 7

Laravel GitScrum, eller GitScrum er et produktivitetsverktøy med åpen kildekode designet for å hjelpe utviklingsteam med å implementere Scrum-metodikken på en lignende måte.

Sikkerhetskopier flere MySQL- eller MariaDB-databaser automatisk

Sikkerhetskopier flere MySQL- eller MariaDB-databaser automatisk

Introduksjon I denne artikkelen kan du gå gjennom hvordan du sikkerhetskopierer flere MySQL- eller MariaDB-databaser som sitter på samme maskin ved hjelp av et tilpasset bash-skript

Hvordan installere og konfigurere OrientDB Community Edition på CentOS 7

Hvordan installere og konfigurere OrientDB Community Edition på CentOS 7

OrientDB er en neste generasjons multi-modell åpen kildekode NoSQL DBMS. Med støtte for flere datamodeller kan OrientDB gi mer funksjonalitet og fleksibilitet i

Sikring av MongoDB

Sikring av MongoDB

MongoDB er ikke sikker som standard. Hvis du installerer MongoDB og starter den uten å konfigurere den for autentisering, kommer du til å ha dårlig tid

Sikkerhetskopiering av MySQL-databaser

Sikkerhetskopiering av MySQL-databaser

MySQL er den mest populære programvaren i verden som brukes til databaser. Å sørge for at du har sikkerhetskopier av databasen din er veldig viktig. Denne praksisen tillater

Hvordan sikkerhetskopiere og gjenopprette PostgreSQL-databaser på Ubuntu 16.04

Hvordan sikkerhetskopiere og gjenopprette PostgreSQL-databaser på Ubuntu 16.04

Introduksjon PostgreSQL er et gratis og åpen kildekode-databasebehandlingssystem som kan brukes til å lagre informasjon relatert til nettsteder. Det er også kjent en

Slik installerer du PostgreSQL 11.1 på Arch Linux

Slik installerer du PostgreSQL 11.1 på Arch Linux

Forutsetninger En Vultr-server som kjører oppdatert Arch Linux (se denne artikkelen.) Sudo-tilgang. Kommandoer som kreves for å kjøres som root er prefikset av #, og én

Distribuer et replikasett med høy tilgjengelighet i MongoDB 3.4 ved å bruke nøkkelfil for tilgangskontroll på Ubuntu 16.04

Distribuer et replikasett med høy tilgjengelighet i MongoDB 3.4 ved å bruke nøkkelfil for tilgangskontroll på Ubuntu 16.04

Siden unnfangelsen i 2009 har MongoDB vært ledende i NoSQL-industrien. Et av kjernekonseptene til MongoDB er replikasettet, så før du arbeider med i

Installer nyere versjoner av MongoDB på Debian 7

Installer nyere versjoner av MongoDB på Debian 7

MongoDB er en rask og kraftig NoSQL-database. Imidlertid oppdaterer Debian-depotene sakte og inneholder ofte svært gamle versjoner av pakker. Denne opplæringen

Oppsett Barnyard 2 Med Snort

Oppsett Barnyard 2 Med Snort

Barnyard2 er en måte å lagre og behandle binære utdata fra Snort til en MySQL-database. Før vi begynner Vær oppmerksom på at hvis du ikke har snork

Hvordan installere Apache Cassandra 3.11.x på Debian 9

Hvordan installere Apache Cassandra 3.11.x på Debian 9

Bruker du et annet system? Apache Cassandra er et gratis og åpen kildekode NoSQL-databasebehandlingssystem som er designet for å gi skalerbarhet, høy

Installer RockMongo på CentOS 7

Installer RockMongo på CentOS 7

RockMongo er et nettbasert MongoDB Management-verktøy som ligner på MySQL Management-verktøyet: phpMyAdmin. Denne opplæringen vil dekke installasjonsprosessen

Installer InfluxDB på Debian Jessie med Telegraf

Installer InfluxDB på Debian Jessie med Telegraf

Introduksjon InfluxDB er en tidsseriebasert database skrevet i Go. InfluxDB har mange praktiske bruksområder, en av dem er lagring av overvåkingsdata på servere. Jeg

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

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

Hvordan installere phpRedisAdmin på CentOS 7

Hvordan installere phpRedisAdmin på CentOS 7

phpRedisAdmin er en nettapplikasjon som administrerer Redis-databaser med et intuitivt grafisk brukergrensesnitt. Denne opplæringen vil forklare hvordan du installerer

Hvordan installere og bruke ArangoDB på Ubuntu 16.04

Hvordan installere og bruke ArangoDB på Ubuntu 16.04

Bruker du et annet system? Introduksjon ArangoDB er en åpen kildekode NoSQL-database med en fleksibel datamodell for dokumenter, grafer og nøkkelverdier. 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 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.

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.

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.

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