Kërkesat
Hapi 1: Instaloni MariaDB
Hapi 2: Krijoni një certifikatë SSL dhe një çelës privat për serverin
Hapi 3: Konfiguro serverin MariaDB për të përdorur SSL
Hapi 4: Krijoni një përdorues me privilegje SSL
Hapi 5: Krijoni Certifikatën e Klientit
Hapi 6: Konfiguro Klientin MariaDB për të përdorur SSL
Hapi 7: Verifikoni lidhjet në distancë
konkluzioni
MariaDB është një bazë të dhënash pa burim të hapur dhe është zëvendësimi më i përdorur për MySQL. Është krijuar nga zhvilluesit e MySQL dhe synohet të mbetet i lirë nën GNU GPL. Është shumë i shpejtë, i shkallëzueshëm dhe vjen me një grup të pasur karakteristikash që e bëjnë atë shumë të gjithanshëm për një shumëllojshmëri të gjerë rastesh përdorimi.
Ky tutorial do t'ju tregojë se si të instaloni dhe konfiguroni MariaDB me mbështetje SSL në Ubuntu 16.04.
Kërkesat
- Një shembull i ri i Ubuntu 16.04 Vultr.
- Një përdorues jo-root me privilegje sudo.
- Një adresë IP statike 192.168.0.190 është konfiguruar në shembullin e serverit.
- Një adresë IP statike 192.168.0.191 është konfiguruar në makinën e klientit.
Hapi 1: Instaloni MariaDB
Si parazgjedhje, versioni më i fundit i MariaDB nuk është i disponueshëm në depon e Ubuntu 16.04; kështu që do t'ju duhet të shtoni depon e MariaDB në sistemin tuaj.
Së pari, shkarkoni çelësin me komandën e mëposhtme:
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
Më pas, shtoni depon e MariaDB në /etc/apt/sources.listskedar:
sudo echo "deb [arch=amd64,i386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main" >> /etc/apt/sources.list
Përditësoni indeksin apt me komandën e mëposhtme:
sudo apt-get update -y
Pasi të jetë përditësuar indeksi apt, instaloni serverin MariaDB me komandën e mëposhtme:
sudo apt-get install mariadb-server -y
Nisni serverin MariaDB dhe aktivizoni atë të fillojë në kohën e nisjes:
sudo systemctl start mysql
sudo systemctl enable mysql
Më pas, do t'ju duhet të ekzekutoni mysql_secure_installationskriptin për të siguruar instalimin e MariaDB. Ky skript ju lejon të vendosni fjalëkalimin rrënjë, të hiqni përdoruesit anonimë, të mos lejoni hyrjen në distancë të rrënjës dhe të hiqni bazën e të dhënave të testimit:
sudo mysql_secure_installation
Hapi 2: Krijoni një certifikatë SSL dhe një çelës privat për serverin
Së pari, krijoni një direktori për të ruajtur të gjithë skedarët e çelësave dhe certifikatave.
sudo mkdir /etc/mysql-ssl
Më pas, ndryshoni drejtorinë në /etc/mysql-ssldhe krijoni certifikatën CA dhe çelësin privat me komandën e mëposhtme:
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
Përgjigjuni të gjitha pyetjeve siç tregohet më poshtë:
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
Më pas, krijoni një çelës privat për serverin me komandën e mëposhtme:
sudo openssl req -newkey rsa:2048 -days 365 -nodes -keyout server-key.pem -out server-req.pem
Përgjigjuni të gjitha pyetjeve siç bëtë në komandën e mëparshme.
Më pas, eksportoni çelësin privat të serverit në një çelës të tipit RSA me komandën e mëposhtme:
sudo sudo openssl rsa -in server-key.pem -out server-key.pem
Së fundi, gjeneroni një certifikatë serveri duke përdorur certifikatën CA si më poshtë:
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
Tani mund të shihni të gjitha certifikatat dhe çelësat me komandën e mëposhtme:
ls
Ju duhet të shihni daljen e mëposhtme:
ca-cert.pem ca-key.pem server-cert.pem server-key.pem server-req.pem
Pasi të keni mbaruar, mund të vazhdoni në hapin tjetër.
Ju duhet të keni të gjitha certifikatat dhe një çelës privat; dhe tani do t'ju duhet të konfiguroni MariaDB për të përdorur çelësin dhe certifikatat. Ju mund ta bëni këtë duke redaktuar /etc/mysql/mariadb.conf.d/50-server.cnfskedarin:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Shtoni rreshtat e mëposhtëm nën [mysqld]seksion:
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 = *
Ruani skedarin, më pas rinisni shërbimin MariaDB për të aplikuar këto ndryshime:
sudo systemctl restart mysql
Tani, mund të kontrolloni nëse konfigurimi SSL po funksionon apo jo me pyetjen e mëposhtme:
mysql -u root -p
MariaDB [(none)]> SHOW VARIABLES LIKE '%ssl%';
Nëse konfigurimi ishte i suksesshëm, duhet të shihni daljen e mëposhtme:
+---------------+--------------------------------+
| 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 |
+---------------+--------------------------------+
Duhet të vini re se vlerat have_ssldhe have_openssljanë aktivizuar në daljen e mësipërme.
Hapi 4: Krijoni një përdorues me privilegje SSL
Krijoni një përdorues të largët që ka privilegjin të aksesojë serverin MariaDB përmes SSL. Bëni këtë duke ekzekutuar komandën e mëposhtme:
Së pari, identifikohuni në guaskën MySQL:
mysql -u root -p
Më pas, krijoni përdorues remotedhe jepni privilegjin për të hyrë në server përmes SSL.
MariaDB [(none)]>GRANT ALL PRIVILEGES ON *.* TO 'remote'@'192.168.0.191' IDENTIFIED BY 'password' REQUIRE SSL;
Pastaj, lani privilegjet me komandën e mëposhtme:
MariaDB [(none)]>FLUSH PRIVILEGES;
Më në fund, dilni nga guaska MySQL me komandën e mëposhtme:
MariaDB [(none)]>exit;
Shënim: 192.168.0.191 është adresa IP e makinës së përdoruesit në distancë (Klienti).
Serveri juaj tani është gati të lejojë lidhjet me përdoruesin në distancë.
Hapi 5: Krijoni Certifikatën e Klientit
Konfigurimi i serverit tuaj ka përfunduar. Më pas, do t'ju duhet të krijoni një çelës dhe certifikatë të re për klientin.
Në makinën e serverit, krijoni çelësin e klientit me komandën e mëposhtme:
sudo cd /etc/mysql-ssl
sudo sudo openssl req -newkey rsa:2048 -days 365 -nodes -keyout client-key.pem -out client-req.pem
Më pas, përpunoni çelësin RSA të klientit me komandën e mëposhtme:
sudo openssl rsa -in client-key.pem -out client-key.pem
Së fundi, nënshkruani certifikatën e klientit me komandën e mëposhtme:
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
Të gjitha certifikatat dhe çelësi janë gati për klientin. Më pas, do t'ju duhet të kopjoni të gjitha certifikatat e klientit në çdo makinë klienti ku dëshironi të ekzekutoni klientin MariaDB.
Ju do të duhet të instaloni klientin MariaDB në makinën e klientit.
Së pari, në makinën e klientit, shkarkoni çelësin për MariaDB me komandën e mëposhtme:
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
Pastaj, shtoni depon e MariaDB në /etc/apt/sources.listskedar:
sudo echo "deb [arch=amd64,i386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main" >> /etc/apt/sources.list
Tjetra, përditësoni indeksin e apt me komandën e mëposhtme:
sudo apt-get update -y
Pasi të përditësohet indeksi apt, instaloni klientin MariaDB në makinën e klientit me komandën e mëposhtme:
sudo apt-get install mariadb-client -y
Tani krijoni një direktori për të ruajtur të gjitha certifikatat:
sudo mkdir /etc/mysql-ssl
Më pas, kopjoni të gjitha certifikatat e klientit nga makina server në makinën e klientit me komandën e mëposhtme:
sudo scp root@192.168.0.190:/etc/mysql-ssl/client-* /etc/mysql-ssl/
Pastaj, do t'ju duhet të konfiguroni klientin MariaDB për të përdorur SSL. Ju mund ta bëni këtë duke krijuar një /etc/mysql/mariadb.conf.d/50-mysql-clients.cnfskedar:
sudo nano /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf
Shtoni rreshtat e mëposhtëm:
[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
Ruani skedarin kur të keni mbaruar.
Hapi 7: Verifikoni lidhjet në distancë
Tani që gjithçka është konfiguruar, është koha për të verifikuar nëse mund të lidheni me serverin MariaDB me sukses apo jo.
Në makinën e klientit, ekzekutoni komandën e mëposhtme për t'u lidhur me serverin MariaDB:
mysql -u remote -h 192.168.0.190 -p mysql
Do t'ju kërkohet të vendosni remotefjalëkalimin e përdoruesit. Pas dhënies së fjalëkalimit, do të identifikoheni në serverin e largët MariaDB.
Kontrolloni statusin e lidhjes me komandën e mëposhtme:
MariaDB [mysql]> status
Ju duhet të shihni daljen e mëposhtme:
--------------
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
Ju duhet të shihni SSL: Cipher in use is DHE-RSA-AES256-SHAnë daljen e mësipërme. Kjo do të thotë se lidhja juaj tani është e sigurt me SSL.
konkluzioni
urime! Ju keni konfiguruar me sukses një server MariaDB me mbështetje SSL. Tani mund t'u jepni akses klientëve të tjerë për të hyrë në serverin MariaDB përmes SSL.