Zabezpečte MariaDB s podporou SSL na Ubuntu 16.04

MariaDB je bezplatná databáze s otevřeným zdrojovým kódem a je nejrozšířenější náhradou za MySQL. Je vytvořen vývojáři MySQL a má zůstat zdarma pod GNU GPL. Je velmi rychlý, škálovatelný a přichází s bohatou sadou funkcí, díky kterým je velmi univerzální pro širokou škálu případů použití.

Tento tutoriál vás provede instalací a konfigurací MariaDB s podporou SSL na Ubuntu 16.04.

Požadavky

  • Nová instance Ubuntu 16.04 Vultr.
  • Uživatel bez oprávnění root s právy sudo.
  • Na instanci serveru je nakonfigurována statická IP adresa 192.168.0.190.
  • Na klientském počítači je nakonfigurována statická IP adresa 192.168.0.191.

Krok 1: Nainstalujte MariaDB

Ve výchozím nastavení není nejnovější verze MariaDB k dispozici v úložišti Ubuntu 16.04; takže budete muset do svého systému přidat úložiště MariaDB.

Nejprve si stáhněte klíč pomocí následujícího příkazu:

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

Dále do /etc/apt/sources.listsouboru přidejte úložiště 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 pomocí následujícího příkazu:

sudo apt-get update -y

Po aktualizaci indexu apt nainstalujte server MariaDB pomocí následujícího příkazu:

sudo apt-get install mariadb-server -y

Spusťte server MariaDB a povolte jeho spuštění při spouštění:

sudo systemctl start mysql
sudo systemctl enable mysql

Dále budete muset spustit mysql_secure_installationskript pro zabezpečení instalace MariaDB. Tento skript vám umožňuje nastavit heslo uživatele root, odebrat anonymní uživatele, zakázat vzdálené přihlášení uživatele root a odstranit testovací databázi:

sudo mysql_secure_installation

Krok 2: Vytvořte certifikát SSL a soukromý klíč pro server

Nejprve vytvořte adresář pro uložení všech souborů klíčů a certifikátů.

sudo mkdir /etc/mysql-ssl

Dále změňte adresář na /etc/mysql-ssla vytvořte certifikát CA a soukromý klíč pomocí následujícího pří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

Odpovězte na všechny otázky, jak je uvedeno níže:

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

Dále vytvořte soukromý klíč pro server pomocí následujícího příkazu:

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

Odpovězte na všechny otázky stejně jako v předchozím příkazu.

Dále exportujte soukromý klíč serveru na klíč typu RSA pomocí následujícího příkazu:

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

Nakonec vygenerujte certifikát serveru pomocí 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

Nyní můžete zobrazit všechny certifikáty a klíč pomocí následujícího příkazu:

ls

Měli byste vidět následující výstup:

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

Jakmile budete hotovi, můžete přejít k dalšímu kroku.

Krok 3: Nakonfigurujte server MariaDB pro použití SSL

Měli byste mít všechny certifikáty a soukromý klíč; a nyní budete muset nakonfigurovat MariaDB, aby používala klíč a certifikáty. Můžete to udělat úpravou /etc/mysql/mariadb.conf.d/50-server.cnfsouboru:

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

Do [mysqld]sekce přidejte následující řádky :

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 soubor a poté restartujte službu MariaDB, abyste použili tyto změny:

sudo systemctl restart mysql

Nyní můžete zkontrolovat, zda konfigurace SSL funguje nebo ne, pomocí následujícího dotazu:

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

Pokud byla konfigurace úspěšná, měli byste vidět následující 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  |
+---------------+--------------------------------+

Měli byste si všimnout, že hodnoty have_ssla have_openssljsou ve výše uvedeném výstupu povoleny.

Krok 4: Vytvořte uživatele s oprávněními SSL

Vytvořte vzdáleného uživatele, který má oprávnění přistupovat k serveru MariaDB přes SSL. To provedete spuštěním následujícího příkazu:

Nejprve se přihlaste do prostředí MySQL:

mysql -u root -p

Dále vytvořte uživatele remotea udělte oprávnění pro přístup k serveru přes SSL.

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

Poté vyprázdněte oprávnění pomocí následujícího příkazu:

MariaDB [(none)]>FLUSH PRIVILEGES;

Nakonec ukončete prostředí MySQL pomocí následujícího příkazu:

MariaDB [(none)]>exit;

Poznámka: 192.168.0.191 je IP adresa počítače vzdáleného uživatele (klienta).

Váš server je nyní připraven povolit připojení ke vzdálenému uživateli.

Krok 5: Vytvořte klientský certifikát

Konfigurace na straně serveru je dokončena. Dále budete muset vytvořit nový klíč a certifikát pro klienta.

Na počítači serveru vytvořte klíč klienta pomocí následujícího příkazu:

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

Dále zpracujte klíč RSA klienta pomocí následujícího příkazu:

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

Nakonec podepište klientský certifikát pomocí následujícího příkazu:

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

Krok 6: Nakonfigurujte klienta MariaDB tak, aby používal SSL

Všechny certifikáty a klíč jsou připraveny pro klienta. Dále budete muset zkopírovat všechny klientské certifikáty na jakýkoli klientský počítač, kde chcete spustit klienta MariaDB.

Na klientský počítač budete muset nainstalovat klienta MariaDB.

Nejprve si na klientském počítači stáhněte klíč pro MariaDB pomocí následujícího příkazu:

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

Poté do /etc/apt/sources.listsouboru přidejte úložiště MariaDB :

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

Dále aktualizujte index apt pomocí následujícího příkazu:

sudo apt-get update -y

Jakmile je apt index aktualizován, nainstalujte klienta MariaDB na klientský počítač pomocí následujícího příkazu:

sudo apt-get install mariadb-client -y

Nyní vytvořte adresář pro uložení všech certifikátů:

sudo mkdir /etc/mysql-ssl

Dále zkopírujte všechny klientské certifikáty ze serverového počítače do klientského počítače pomocí následujícího příkazu:

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

Poté budete muset nakonfigurovat klienta MariaDB tak, aby používal SSL. Můžete to udělat vytvořením /etc/mysql/mariadb.conf.d/50-mysql-clients.cnfsouboru:

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

Přidejte následující řádky:

[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í soubor uložte.

Krok 7: Ověřte vzdálená připojení

Nyní, když je vše nakonfigurováno, je čas ověřit, zda se můžete úspěšně připojit k serveru MariaDB nebo ne.

Na klientském počítači spusťte následující příkaz pro připojení k serveru MariaDB:

mysql -u remote -h 192.168.0.190 -p mysql

Budete požádáni o zadání remoteuživatelského hesla. Po zadání hesla budete přihlášeni ke vzdálenému serveru MariaDB.

Zkontrolujte stav připojení pomocí následujícího příkazu:

MariaDB [mysql]> status

Měli byste vidět následující 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

Měli byste vidět SSL: Cipher in use is DHE-RSA-AES256-SHAve výše uvedeném výstupu. To znamená, že vaše připojení je nyní zabezpečené pomocí SSL.

Závěr

Gratulujeme! Úspěšně jste nakonfigurovali server MariaDB s podporou SSL. Nyní můžete udělit přístup dalším klientům pro přístup k serveru MariaDB přes SSL.

Zanechat komentář

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umělá inteligence není v budoucnosti, je zde přímo v současnosti V tomto blogu si přečtěte, jak aplikace umělé inteligence ovlivnily různé sektory.

Útoky DDOS: Stručný přehled

Útoky DDOS: Stručný přehled

Jste také obětí DDOS útoků a nemáte jasno v metodách prevence? Chcete-li vyřešit své dotazy, přečtěte si tento článek.

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Možná jste slyšeli, že hackeři vydělávají spoustu peněz, ale napadlo vás někdy, jak takové peníze vydělávají? Pojďme diskutovat.

Revoluční vynálezy od Googlu, které vám usnadní život.

Revoluční vynálezy od Googlu, které vám usnadní život.

Chcete vidět revoluční vynálezy Google a jak tyto vynálezy změnily život každého dnešního člověka? Pak si přečtěte na blogu a podívejte se na vynálezy od Googlu.

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Koncept aut s vlastním pohonem, která vyrazí na silnice s pomocí umělé inteligence, je snem, který už nějakou dobu máme. Ale přes několik slibů nejsou nikde vidět. Přečtěte si tento blog a dozvíte se více…

Technologická singularita: vzdálená budoucnost lidské civilizace?

Technologická singularita: vzdálená budoucnost lidské civilizace?

Jak se věda vyvíjí rychlým tempem a přebírá mnoho našeho úsilí, stoupá také riziko, že se vystavíme nevysvětlitelné singularitě. Přečtěte si, co pro nás může znamenat singularita.

Funkcionality vrstev referenční architektury velkých dat

Funkcionality vrstev referenční architektury velkých dat

Přečtěte si blog, abyste co nejjednodušším způsobem poznali různé vrstvy v architektuře velkých dat a jejich funkce.

Evoluce ukládání dat – Infografika

Evoluce ukládání dat – Infografika

Způsoby ukládání dat se mohou vyvíjet od narození dat. Tento blog se zabývá vývojem ukládání dat na základě infografiky.

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

V tomto digitálním světě se chytrá domácí zařízení stala klíčovou součástí života. Zde je několik úžasných výhod chytrých domácích zařízení o tom, jak náš život stojí za to žít a zjednodušit jej.

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Apple nedávno vydal doplňkovou aktualizaci macOS Catalina 10.15.4, která opravuje problémy, ale zdá se, že aktualizace způsobuje další problémy, které vedou k zablokování počítačů mac. Přečtěte si tento článek a dozvíte se více