Zabezpečte MariaDB s podporou SSL na Ubuntu 16.04

MariaDB je bezplatná databáza s otvoreným zdrojovým kódom a je najpoužívanejšou náhradou za MySQL. Je vytvorený vývojármi MySQL a je určený na to, aby zostal zadarmo pod GNU GPL. Je veľmi rýchly, škálovateľný a prichádza s bohatou sadou funkcií, vďaka ktorým je veľmi univerzálny pre širokú škálu prípadov použitia.

Tento tutoriál vás prevedie tým, ako nainštalovať a nakonfigurovať MariaDB s podporou SSL na Ubuntu 16.04.

Požiadavky

  • Nová inštancia Ubuntu 16.04 Vultr.
  • Používateľ bez oprávnenia root s oprávneniami sudo.
  • Na inštancii servera je nakonfigurovaná statická adresa IP 192.168.0.190.
  • Na klientskom počítači je nakonfigurovaná statická IP adresa 192.168.0.191.

Krok 1: Nainštalujte MariaDB

V predvolenom nastavení nie je najnovšia verzia MariaDB dostupná v úložisku Ubuntu 16.04; takže budete musieť pridať úložisko MariaDB do vášho systému.

Najprv si stiahnite kľúč pomocou nasledujúceho príkazu:

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

Potom do /etc/apt/sources.listsúboru pridajte úložisko MariaDB :

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

Aktualizujte index apt pomocou nasledujúceho príkazu:

sudo apt-get update -y

Po aktualizácii indexu apt nainštalujte server MariaDB pomocou nasledujúceho príkazu:

sudo apt-get install mariadb-server -y

Spustite server MariaDB a povoľte jeho spustenie pri spustení:

sudo systemctl start mysql
sudo systemctl enable mysql

Ďalej budete musieť spustiť mysql_secure_installationskript na zabezpečenie inštalácie MariaDB. Tento skript vám umožňuje nastaviť heslo používateľa root, odstrániť anonymných používateľov, zakázať vzdialené prihlásenie používateľa root a odstrániť testovaciu databázu:

sudo mysql_secure_installation

Krok 2: Vytvorte certifikát SSL a súkromný kľúč pre server

Najprv vytvorte adresár na uloženie všetkých súborov kľúčov a certifikátov.

sudo mkdir /etc/mysql-ssl

Potom zmeňte adresár na /etc/mysql-ssla vytvorte certifikát CA a súkromný kľúč pomocou nasledujúceho príkazu:

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

Odpovedzte na všetky otázky, ako je uvedené nižšie:

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

Potom vytvorte súkromný kľúč pre server pomocou nasledujúceho príkazu:

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

Odpovedzte na všetky otázky tak, ako ste to urobili v predchádzajúcom príkaze.

Potom exportujte súkromný kľúč servera do kľúča typu RSA pomocou nasledujúceho príkazu:

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

Nakoniec vygenerujte certifikát servera pomocou certifikátu CA takto:

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

Teraz môžete zobraziť všetky certifikáty a kľúč pomocou nasledujúceho príkazu:

ls

Mali by ste vidieť nasledujúci výstup:

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

Po dokončení môžete prejsť na ďalší krok.

Krok 3: Nakonfigurujte server MariaDB na používanie SSL

Mali by ste mať všetky certifikáty a súkromný kľúč; a teraz budete musieť nakonfigurovať MariaDB na používanie kľúča a certifikátov. Môžete to urobiť úpravou /etc/mysql/mariadb.conf.d/50-server.cnfsúboru:

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

Do [mysqld]sekcie pridajte nasledujúce riadky :

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

Uložte súbor a potom reštartujte službu MariaDB, aby ste použili tieto zmeny:

sudo systemctl restart mysql

Teraz môžete pomocou nasledujúceho dotazu skontrolovať, či konfigurácia SSL funguje alebo nie:

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

Ak bola konfigurácia úspešná, mali by ste vidieť nasledujúci výstup:

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

Mali by ste si všimnúť, že hodnoty have_ssla have_opensslsú vo vyššie uvedenom výstupe povolené.

Krok 4: Vytvorte používateľa s oprávneniami SSL

Vytvorte vzdialeného používateľa, ktorý má privilégium na prístup k serveru MariaDB cez SSL. Vykonajte to spustením nasledujúceho príkazu:

Najprv sa prihláste do shellu MySQL:

mysql -u root -p

Next, create user remote and grant privilege to access the server over SSL.

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

Then, flush the privileges with the following command:

MariaDB [(none)]>FLUSH PRIVILEGES;

Finally, exit from the MySQL shell with the following command:

MariaDB [(none)]>exit;

Note: 192.168.0.191 is the IP address of the remote user (Client) machine.

Your server is now ready to allow connections to remote user.

Step 5 : Create The Client Certificate

Your server side configuration is complete. Next, you will need to create a new key and certificate for the client.

On the server machine, create the client key with the following command:

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

Next, process the client RSA key with the following command:

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

Finally, sign the client certificate with the following command:

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

Step 6 : Configure MariaDB Client to Use SSL

Všetky certifikáty a kľúč sú pripravené pre klienta. Ďalej budete musieť skopírovať všetky klientske certifikáty na ľubovoľný klientsky počítač, na ktorom chcete spustiť klienta MariaDB.

Na klientskom počítači budete musieť nainštalovať klienta MariaDB.

Najprv si na klientskom počítači stiahnite kľúč pre MariaDB pomocou nasledujúceho príkazu:

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

Potom do /etc/apt/sources.listsúboru pridajte úložisko MariaDB :

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

Potom aktualizujte index apt pomocou nasledujúceho príkazu:

sudo apt-get update -y

Po aktualizácii indexu apt nainštalujte klienta MariaDB na klientsky počítač pomocou nasledujúceho príkazu:

sudo apt-get install mariadb-client -y

Teraz vytvorte adresár na uloženie všetkých certifikátov:

sudo mkdir /etc/mysql-ssl

Potom skopírujte všetky klientske certifikáty zo servera na klientsky počítač pomocou nasledujúceho príkazu:

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

Potom budete musieť nakonfigurovať klienta MariaDB na používanie SSL. Môžete to urobiť vytvorením /etc/mysql/mariadb.conf.d/50-mysql-clients.cnfsúboru:

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

Pridajte nasledujúce riadky:

[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

Po dokončení uložte súbor.

Krok 7: Overte vzdialené pripojenia

Teraz, keď je všetko nakonfigurované, je čas overiť, či sa môžete úspešne pripojiť k serveru MariaDB alebo nie.

Na klientskom počítači spustite nasledujúci príkaz na pripojenie k serveru MariaDB:

mysql -u remote -h 192.168.0.190 -p mysql

Budete vyzvaní na zadanie remotehesla používateľa. Po zadaní hesla budete prihlásení na vzdialený server MariaDB.

Skontrolujte stav pripojenia pomocou nasledujúceho príkazu:

MariaDB [mysql]> status

Mali by ste vidieť nasledujúci výstup:

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

Mali by ste vidieť SSL: Cipher in use is DHE-RSA-AES256-SHAvo vyššie uvedenom výstupe. To znamená, že vaše pripojenie je teraz zabezpečené pomocou SSL.

Záver

Gratulujem! Úspešne ste nakonfigurovali server MariaDB s podporou SSL. Teraz môžete udeliť prístup iným klientom na prístup k serveru MariaDB cez SSL.

Zanechať komentár

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umelá inteligencia nie je v budúcnosti, je tu priamo v súčasnosti V tomto blogu si prečítajte, ako aplikácie umelej inteligencie ovplyvnili rôzne sektory.

Útoky DDOS: Stručný prehľad

Útoky DDOS: Stručný prehľad

Ste aj vy obeťou DDOS útokov a máte zmätok ohľadom metód prevencie? Ak chcete vyriešiť svoje otázky, prečítajte si tento článok.

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Možno ste už počuli, že hackeri zarábajú veľa peňazí, ale premýšľali ste niekedy nad tým, ako môžu zarábať také peniaze? poďme diskutovať.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Chcete vidieť revolučné vynálezy od Google a ako tieto vynálezy zmenili život každého dnešného človeka? Potom si prečítajte na blogu a pozrite si vynálezy spoločnosti Google.

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Koncept samoriadených áut vyraziť na cesty s pomocou umelej inteligencie je snom, ktorý máme už nejaký čas. Ale napriek niekoľkým prísľubom ich nikde nevidno. Prečítajte si tento blog a dozviete sa viac…

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Ako sa veda vyvíja rýchlym tempom a preberá veľa nášho úsilia, zvyšuje sa aj riziko, že sa vystavíme nevysvetliteľnej singularite. Prečítajte si, čo pre nás môže znamenať singularita.

Funkcionality vrstiev referenčnej architektúry veľkých dát

Funkcionality vrstiev referenčnej architektúry veľkých dát

Prečítajte si blog, aby ste čo najjednoduchším spôsobom spoznali rôzne vrstvy architektúry veľkých dát a ich funkcie.

Vývoj ukladania dát – Infografika

Vývoj ukladania dát – Infografika

Spôsoby ukladania údajov sa môžu vyvíjať už od zrodu údajov. Tento blog sa zaoberá vývojom ukladania údajov na základe infografiky.

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

V tomto digitálnom svete sa inteligentné domáce zariadenia stali kľúčovou súčasťou života. Tu je niekoľko úžasných výhod inteligentných domácich zariadení o tom, ako robia náš život, ktorý stojí za to žiť, a ktorý zjednodušujú.

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Spoločnosť Apple nedávno vydala doplnkovú aktualizáciu macOS Catalina 10.15.4 na opravu problémov, ale zdá sa, že táto aktualizácia spôsobuje ďalšie problémy, ktoré vedú k blokovaniu počítačov Mac. Prečítajte si tento článok a dozviete sa viac