Sigur MariaDB Cu suport SSL pe Ubuntu 16.04

MariaDB este o bază de date open source gratuită și este cel mai des utilizat înlocuitor pentru MySQL. Este realizat de dezvoltatorii MySQL și este menit să rămână liber în cadrul GNU GPL. Este foarte rapid, scalabil și vine cu un set bogat de caracteristici care îl fac foarte versatil pentru o mare varietate de cazuri de utilizare.

Acest tutorial vă va descoperi cum să instalați și configurați MariaDB cu suport SSL pe Ubuntu 16.04.

cerinţe

  • O nouă instanță Ubult 16.04 Vultr.
  • Un utilizator non-root cu privilegii sudo.
  • O adresă IP statică 192.168.0.190 este configurată pe instanța serverului.
  • O adresă IP statică 192.168.0.191 este configurată pe mașina client.

Pasul 1: Instalați MariaDB

În mod implicit, cea mai recentă versiune a MariaDB nu este disponibilă în depozitul Ubuntu 16.04; deci va trebui să adăugați depozitul MariaDB la sistemul dvs.

Mai întâi, descărcați cheia cu următoarea comandă:

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

Apoi, adăugați depozitul MariaDB la /etc/apt/sources.listfișier:

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

Actualizați indexul apt cu următoarea comandă:

sudo apt-get update -y

După actualizarea indexului apt, instalați serverul MariaDB cu următoarea comandă:

sudo apt-get install mariadb-server -y

Porniți serverul MariaDB și permiteți-l să pornească la momentul de pornire:

sudo systemctl start mysql
sudo systemctl enable mysql

Apoi, va trebui să rulați mysql_secure_installationscriptul pentru a securiza instalarea MariaDB. Acest script vă permite să setați parola rădăcină, să eliminați utilizatorii anonimi, să nu permiteți autentificarea la distanță root și să eliminați baza de date de testare:

sudo mysql_secure_installation

Pasul 2: Creați un certificat SSL și o cheie privată pentru server

Mai întâi, creați un director pentru a stoca toate fișierele cheie și certificate.

sudo mkdir /etc/mysql-ssl

Apoi, schimbați directorul în /etc/mysql-sslși creați certificatul CA și cheia privată cu următoarea comandă:

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

Răspundeți la toate întrebările așa cum se arată mai jos:

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]

Apoi, creați o cheie privată pentru server cu următoarea comandă:

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

Răspundeți la toate întrebările așa cum ați făcut în comanda anterioară.

În continuare, exportați cheia privată a serverului către o cheie de tip RSA cu următoarea comandă:

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

În cele din urmă, generați un certificat server folosind certificatul CA după cum urmează:

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

Acum puteți vedea toate certificatele și cheia cu următoarea comandă:

ls

Ar trebui să vedeți următoarea ieșire:

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

După ce ați terminat, puteți trece la pasul următor.

Pasul 3: Configurați MariaDB Server pentru a utiliza SSL

Ar trebui să aveți toate certificatele și o cheie privată; iar acum va trebui să configurați MariaDB pentru a utiliza cheia și certificatele. Puteți face acest lucru prin editarea /etc/mysql/mariadb.conf.d/50-server.cnffișierului:

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

Adăugați următoarele linii sub [mysqld]secțiune:

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

Salvați fișierul, apoi reporniți serviciul MariaDB pentru a aplica aceste modificări:

sudo systemctl restart mysql

Acum, puteți verifica dacă configurația SSL funcționează sau nu cu următoarea întrebare:

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

Dacă configurația a avut succes, ar trebui să vedeți următoarea ieșire:

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

Ar trebui să observați have_sslși have_opensslvalorile sunt activate în ieșirea de mai sus.

Pasul 4: Creați un utilizator cu privilegii SSL

Creați un utilizator la distanță care are privilegiul de a accesa serverul MariaDB prin SSL. Faceți acest lucru rulând următoarea comandă:

În primul rând, conectați-vă la shell-ul MySQL:

mysql -u root -p

Apoi, creați un utilizator remoteși acordați privilegiul pentru a accesa serverul prin SSL.

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

Apoi, spălați privilegiile cu următoarea comandă:

MariaDB [(none)]>FLUSH PRIVILEGES;

În final, ieșiți din shell-ul MySQL cu următoarea comandă:

MariaDB [(none)]>exit;

Notă: 192.168.0.191 este adresa IP a mașinii de utilizator la distanță (Client).

Serverul dvs. este acum gata să permită conexiunile către utilizatorii de la distanță.

Pasul 5: Creează certificatul de client

Configurația dvs. pe partea de server este completă. În continuare, va trebui să creați o cheie nouă și un certificat pentru client.

Pe mașina serverului, creați cheia client cu următoarea comandă:

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

Apoi, procesați cheia RSA client cu următoarea comandă:

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

În cele din urmă, semnați certificatul de client cu următoarea comandă:

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

Pasul 6: Configurați MariaDB Client pentru a utiliza SSL

Toate certificatele și cheia sunt gata pentru client. În continuare, va trebui să copiați toate certificatele client pe orice mașină client unde doriți să rulați clientul MariaDB.

Va trebui să instalați clientul MariaDB pe mașina client.

În primul rând, pe mașina client, descărcați cheia pentru MariaDB cu următoarea comandă:

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

Apoi, adăugați depozitul MariaDB la /etc/apt/sources.listfișier:

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

Apoi, actualizați indexul apt cu următoarea comandă:

sudo apt-get update -y

După actualizarea indexului apt, instalați clientul MariaDB pe mașina client cu următoarea comandă:

sudo apt-get install mariadb-client -y

Acum creați un director pentru a stoca toate certificatele:

sudo mkdir /etc/mysql-ssl

Apoi, copiați toate certificatele client de la mașina server pe mașina client cu următoarea comandă:

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

Apoi, va trebui să configurați clientul MariaDB pentru a utiliza SSL. Puteți face acest lucru creând un /etc/mysql/mariadb.conf.d/50-mysql-clients.cnffișier:

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

Adăugați următoarele linii:

[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ți fișierul când ați terminat.

Pasul 7: Verificați conexiunile la distanță

Acum că totul este configurat, este timpul să verificați dacă vă puteți conecta cu succes la serverul MariaDB sau nu.

Pe aparatul client, executați următoarea comandă pentru a vă conecta la serverul MariaDB:

mysql -u remote -h 192.168.0.190 -p mysql

Vi se va cere să introduceți remoteparola utilizatorului. După ce dați parola, veți fi conectat la serverul MariaDB de la distanță.

Verificați starea conexiunii cu următoarea comandă:

MariaDB [mysql]> status

Ar trebui să vedeți următoarea ieșire:

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

Ar trebui să vedeți SSL: Cipher in use is DHE-RSA-AES256-SHAîn rezultatul de mai sus. Asta înseamnă că conexiunea dvs. este acum sigură cu SSL.

Concluzie

Felicitări! Ați configurat cu succes un server MariaDB cu suport SSL. Acum puteți acorda acces altor clienți pentru a accesa serverul MariaDB prin SSL.



Leave a Comment

Cum să faceți backup și să restaurați bazele de date PostgreSQL pe Ubuntu 16.04

Cum să faceți backup și să restaurați bazele de date PostgreSQL pe Ubuntu 16.04

Introducere PostgreSQL este un sistem gratuit de gestionare a bazelor de date open source, care poate fi utilizat pentru a stoca informații legate de site-uri web. Este cunoscut și a

Configurare Barnyard 2 cu Snort

Configurare Barnyard 2 cu Snort

Barnyard2 este o modalitate de stocare și procesare a ieșirilor binare de la Snort într-o bază de date MySQL. Înainte de a începe Vă rugăm să rețineți că, dacă nu aveți sforăit

Securizarea MongoDB

Securizarea MongoDB

MongoDB nu este securizat implicit. Dacă instalați MongoDB și îl lansați fără a-l configura pentru autentificare, veți avea parte de un moment rău

Backup de baze de date MySQL

Backup de baze de date MySQL

MySQL este cel mai popular software din lume folosit pentru baze de date. Este foarte important să vă asigurați că aveți copii de rezervă ale bazei de date. Această practică permite

Cum se instalează și se configurează OrientDB Community Edition pe CentOS 7

Cum se instalează și se configurează OrientDB Community Edition pe CentOS 7

OrientDB este un SGBD multi-model open source NoSQL DBMS. Cu suport pentru mai multe modele de date, OrientDB poate oferi mai multă funcționalitate și flexibilitate

Cum se instalează Apache Cassandra 3.11.x pe Debian 9

Cum se instalează Apache Cassandra 3.11.x pe Debian 9

Folosind un sistem diferit? Apache Cassandra este un sistem de gestionare a bazelor de date NoSQL gratuit și open source conceput pentru a oferi scalabilitate

Cum se instalează Apache Cassandra 3.11.x pe CentOS 7

Cum se instalează Apache Cassandra 3.11.x pe CentOS 7

Folosind un sistem diferit? Apache Cassandra este un sistem de gestionare a bazelor de date NoSQL gratuit și open source conceput pentru a oferi scalabilitate

Instalați versiuni mai noi de MongoDB pe Debian 7

Instalați versiuni mai noi de MongoDB pe Debian 7

MongoDB este o bază de date NoSQL rapidă și puternică. Cu toate acestea, depozitele Debian se actualizează lent și adesea conțin versiuni foarte vechi de pachete. Această tutorie

Cum se instalează Laravel GitScrum pe CentOS 7

Cum se instalează Laravel GitScrum pe CentOS 7

Laravel GitScrum sau GitScrum este un instrument de productivitate open source conceput pentru a ajuta echipele de dezvoltare să implementeze metodologia Scrum într-un mod similar

Cum se instalează PostgreSQL 11.1 pe Arch Linux

Cum se instalează PostgreSQL 11.1 pe Arch Linux

Cerințe preliminare Un server Vultr care funcționează actualizat Arch Linux (vezi acest articol.) Acces Sudo. Comenzile care trebuie rulate ca root sunt prefixate de # și unu

Cum se instalează MongoDB 4.0 pe Arch Linux

Cum se instalează MongoDB 4.0 pe Arch Linux

Cerințe preliminare Un server Vultr care funcționează actualizat Arch Linux (vezi acest articol) Acces Sudo: Comenzile care trebuie rulate ca root sunt prefixate de #, și una

Cum se instalează și se configurează ArangoDB pe CentOS 7

Cum se instalează și se configurează ArangoDB pe CentOS 7

Folosind un sistem diferit? Introducere ArangoDB este o bază de date NoSQL open source cu un model de date flexibil pentru documente, grafice și valori cheie. Este

Instalați RockMongo pe CentOS 7

Instalați RockMongo pe CentOS 7

RockMongo este un instrument de management MongoDB bazat pe web, care este similar instrumentului de gestionare MySQL: phpMyAdmin. Acest tutorial va acoperi procesul de instalare

Cum se instalează Apache Cassandra 3.11.x pe Ubuntu 16.04 LTS

Cum se instalează Apache Cassandra 3.11.x pe Ubuntu 16.04 LTS

Folosind un sistem diferit? Apache Cassandra este un sistem de gestionare a bazelor de date NoSQL gratuit și open source conceput pentru a oferi scalabilitate

Instalați InfluxDB pe Debian Jessie cu Telegraf

Instalați InfluxDB pe Debian Jessie cu Telegraf

Introducere InfluxDB este o bază de date bazată pe serii de timp, scrisă în Go. InfluxDB are multe utilizări practice, dintre care una este stocarea datelor de monitorizare pe servere. eu

Implementați un set de replici cu disponibilitate ridicată în MongoDB 3.4 Utilizând fișierul cheie pentru controlul accesului pe Ubuntu 16.04

Implementați un set de replici cu disponibilitate ridicată în MongoDB 3.4 Utilizând fișierul cheie pentru controlul accesului pe Ubuntu 16.04

De la concepția sa în 2009, MongoDB a condus industria NoSQL. Unul dintre conceptele de bază ale MongoDB este Replica Set, deci înainte de a lucra cu i

Cum se instalează phpRedisAdmin pe CentOS 7

Cum se instalează phpRedisAdmin pe CentOS 7

phpRedisAdmin este o aplicație web care gestionează bazele de date Redis cu o interfață intuitivă de utilizator grafic. Acest tutorial vă va explica cum să instalați

Backup multiple baze de date MySQL sau MariaDB

Backup multiple baze de date MySQL sau MariaDB

Introducere În această scriere, parcurgeți cum să faceți backup la mai multe baze de date MySQL sau MariaDB care stau pe aceeași mașină folosind un script bash personalizat

Cum se instalează Redis pe Ubuntu 15.10

Cum se instalează Redis pe Ubuntu 15.10

Redis este o soluție de stocare a datelor cu valoare cheie, denumită adesea o bază de date NoSQL. Poate atinge viteze de citire / scriere foarte mari, deoarece este o memorie în memorie

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

6 lucruri extrem de nebunești despre Nintendo Switch

6 lucruri extrem de nebunești despre Nintendo Switch

Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.

Promisiuni tehnologice care sunt încă nelivrate

Promisiuni tehnologice care sunt încă nelivrate

Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!

Te-ai întrebat vreodată cum câștigă hackerii bani?

Te-ai întrebat vreodată cum câștigă hackerii bani?

Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe