Követelmények
1. lépés: Telepítse a MariaDB-t
2. lépés: Hozzon létre egy SSL-tanúsítványt és egy privát kulcsot a szerverhez
3. lépés: Konfigurálja a MariaDB szervert SSL használatára
4. lépés: Hozzon létre egy felhasználót SSL jogosultságokkal
5. lépés: Hozza létre az ügyféltanúsítványt
6. lépés: Konfigurálja a MariaDB-klienst az SSL használatára
7. lépés: Ellenőrizze a távoli kapcsolatokat
Következtetés
A MariaDB egy ingyenes nyílt forráskódú adatbázis, és a MySQL legszélesebb körben használt beépülő modulja. A MySQL fejlesztői készítették, és a tervek szerint ingyenes marad a GNU GPL alatt. Nagyon gyors, méretezhető, és olyan funkciók gazdag készletével érkezik, amelyek nagyon sokoldalúvá teszik a legkülönfélébb használati esetekben.
Ez az oktatóanyag végigvezeti Önt, hogyan telepítheti és konfigurálja a MariaDB-t SSL-támogatással az Ubuntu 16.04 rendszeren.
Követelmények
- Egy friss Ubuntu 16.04 Vultr példány.
- Nem root felhasználó sudo jogosultságokkal.
- A kiszolgálópéldányon 192.168.0.190 statikus IP-cím van konfigurálva.
- A 192.168.0.191 statikus IP-cím van konfigurálva az ügyfélgépen.
1. lépés: Telepítse a MariaDB-t
Alapértelmezés szerint a MariaDB legfrissebb verziója nem érhető el az Ubuntu 16.04 lerakatában; így hozzá kell adnia a MariaDB tárolót a rendszeréhez.
Először töltse le a kulcsot a következő paranccsal:
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
Ezután adja hozzá a MariaDB-tárat a /etc/apt/sources.listfájlhoz:
sudo echo "deb [arch=amd64,i386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main" >> /etc/apt/sources.list
Frissítse az apt indexet a következő paranccsal:
sudo apt-get update -y
Az apt index frissítése után telepítse a MariaDB szervert a következő paranccsal:
sudo apt-get install mariadb-server -y
Indítsa el a MariaDB szervert, és engedélyezze az indulást a rendszerindításkor:
sudo systemctl start mysql
sudo systemctl enable mysql
Ezután le kell futtatnia a mysql_secure_installationszkriptet a MariaDB telepítésének biztosításához. Ez a szkript lehetővé teszi a root jelszó beállítását, az anonim felhasználók eltávolítását, a távoli root bejelentkezés letiltását és a tesztadatbázis eltávolítását:
sudo mysql_secure_installation
2. lépés: Hozzon létre egy SSL-tanúsítványt és egy privát kulcsot a szerverhez
Először hozzon létre egy könyvtárat az összes kulcs- és tanúsítványfájl tárolására.
sudo mkdir /etc/mysql-ssl
Ezután módosítsa a könyvtárat, /etc/mysql-sslés hozza létre a CA-tanúsítványt és a privát kulcsot a következő paranccsal:
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
Válaszoljon az összes kérdésre az alábbiak szerint:
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
Ezután hozzon létre egy privát kulcsot a szerverhez a következő paranccsal:
sudo openssl req -newkey rsa:2048 -days 365 -nodes -keyout server-key.pem -out server-req.pem
Válaszoljon az összes kérdésre, ahogy az előző parancsban tette.
Ezután exportálja a kiszolgáló privát kulcsát RSA-típusú kulcsba a következő paranccsal:
sudo sudo openssl rsa -in server-key.pem -out server-key.pem
Végül hozzon létre egy szervertanúsítványt a CA-tanúsítvány használatával az alábbiak szerint:
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
Most már láthatja az összes tanúsítványt és kulcsot a következő paranccsal:
ls
A következő kimenetet kell látnod:
ca-cert.pem ca-key.pem server-cert.pem server-key.pem server-req.pem
Ha elkészült, folytathatja a következő lépéssel.
Rendelkeznie kell az összes tanúsítvánnyal és egy privát kulccsal; és most be kell állítania a MariaDB-t a kulcs és a tanúsítványok használatához. Ezt a /etc/mysql/mariadb.conf.d/50-server.cnffájl szerkesztésével teheti meg :
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Adja hozzá a következő sorokat a [mysqld]szakaszhoz:
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 = *
Mentse el a fájlt, majd indítsa újra a MariaDB szolgáltatást a módosítások alkalmazásához:
sudo systemctl restart mysql
Most a következő lekérdezéssel ellenőrizheti, hogy az SSL konfiguráció működik-e vagy sem:
mysql -u root -p
MariaDB [(none)]> SHOW VARIABLES LIKE '%ssl%';
Ha a konfiguráció sikeres volt, a következő kimenetet kell látnia:
+---------------+--------------------------------+
| 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 |
+---------------+--------------------------------+
Észre kell vennie, hogy a have_sslés have_opensslértékek engedélyezve vannak a fenti kimenetben.
4. lépés: Hozzon létre egy felhasználót SSL jogosultságokkal
Hozzon létre egy távoli felhasználót, aki jogosult SSL-en keresztül elérni a MariaDB-kiszolgálót. Ezt a következő parancs futtatásával teheti meg:
Először jelentkezzen be a MySQL shellbe:
mysql -u root -p
Ezután hozzon létre felhasználót, remoteés adjon jogosultságot a szerver SSL-en keresztüli elérésére.
MariaDB [(none)]>GRANT ALL PRIVILEGES ON *.* TO 'remote'@'192.168.0.191' IDENTIFIED BY 'password' REQUIRE SSL;
Ezután öblítse ki a jogosultságokat a következő paranccsal:
MariaDB [(none)]>FLUSH PRIVILEGES;
Végül lépjen ki a MySQL shellből a következő paranccsal:
MariaDB [(none)]>exit;
Megjegyzés: A 192.168.0.191 a távoli felhasználói (kliens) gép IP-címe.
A kiszolgáló készen áll a távoli felhasználókkal való kapcsolatok engedélyezésére.
5. lépés: Hozza létre az ügyféltanúsítványt
A szerveroldali konfiguráció kész. Ezután új kulcsot és tanúsítványt kell létrehoznia az ügyfél számára.
A szervergépen hozza létre az ügyfélkulcsot a következő paranccsal:
sudo cd /etc/mysql-ssl
sudo sudo openssl req -newkey rsa:2048 -days 365 -nodes -keyout client-key.pem -out client-req.pem
Ezután dolgozza fel az ügyfél RSA kulcsát a következő paranccsal:
sudo openssl rsa -in client-key.pem -out client-key.pem
Végül írja alá az ügyféltanúsítványt a következő paranccsal:
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
Az összes tanúsítvány és a kulcs készen áll az ügyfél számára. Ezután át kell másolnia az összes ügyféltanúsítványt bármely olyan ügyfélgépre, amelyen futtatni kívánja a MariaDB-ügyfelet.
Telepítenie kell a MariaDB klienst az ügyfélgépen.
Először az ügyfélgépen töltse le a MariaDB kulcsát a következő paranccsal:
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
Ezután adja hozzá a MariaDB tárat a /etc/apt/sources.listfájlhoz:
sudo echo "deb [arch=amd64,i386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main" >> /etc/apt/sources.list
Ezután frissítse az apt indexet a következő paranccsal:
sudo apt-get update -y
Az apt index frissítése után telepítse a MariaDB klienst az ügyfélgépre a következő paranccsal:
sudo apt-get install mariadb-client -y
Most hozzon létre egy könyvtárat az összes tanúsítvány tárolására:
sudo mkdir /etc/mysql-ssl
Ezután másolja át az összes ügyféltanúsítványt a kiszolgáló gépről az ügyfélgépre a következő paranccsal:
sudo scp root@192.168.0.190:/etc/mysql-ssl/client-* /etc/mysql-ssl/
Ezután be kell állítania a MariaDB klienst az SSL használatára. Ezt megteheti egy /etc/mysql/mariadb.conf.d/50-mysql-clients.cnffájl létrehozásával :
sudo nano /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf
Adja hozzá a következő sorokat:
[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
Mentse el a fájlt, ha végzett.
7. lépés: Ellenőrizze a távoli kapcsolatokat
Most, hogy minden be van állítva, ideje ellenőrizni, hogy sikeresen tud-e csatlakozni a MariaDB szerverhez vagy sem.
Az ügyfélgépen futtassa a következő parancsot a MariaDB kiszolgálóhoz való csatlakozáshoz:
mysql -u remote -h 192.168.0.190 -p mysql
Meg kell adnia a remotefelhasználói jelszót. A jelszó megadása után bejelentkezik a távoli MariaDB szerverre.
Ellenőrizze a kapcsolat állapotát a következő paranccsal:
MariaDB [mysql]> status
A következő kimenetet kell látnod:
--------------
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
Látnia kell SSL: Cipher in use is DHE-RSA-AES256-SHAa fenti kimenetben. Ez azt jelenti, hogy kapcsolata immár biztonságos az SSL segítségével.
Következtetés
Gratulálunk! Sikeresen konfigurált egy SSL-támogatással rendelkező MariaDB-kiszolgálót. Mostantól hozzáférést biztosíthat más ügyfeleknek a MariaDB-kiszolgáló eléréséhez SSL-en keresztül.