Защитете MariaDB с поддръжка на SSL в Ubuntu 16.04

MariaDB е безплатна база данни с отворен код и е най-широко използваният заместител на MySQL. Той е направен от разработчиците на MySQL и е предназначен да остане безплатен под GNU GPL. Той е много бърз, мащабируем и се предлага с богат набор от функции, които го правят много гъвкав за голямо разнообразие от случаи на употреба.

Този урок ще ви преведе през това как да инсталирате и конфигурирате MariaDB с поддръжка на SSL в Ubuntu 16.04.

Изисквания

  • Нов екземпляр на Ubuntu 16.04 Vultr.
  • Потребител без root права с sudo привилегии.
  • На сървърния екземпляр е конфигуриран статичен IP адрес 192.168.0.190.
  • На клиентската машина е конфигуриран статичен IP адрес 192.168.0.191.

Стъпка 1: Инсталирайте MariaDB

По подразбиране последната версия на MariaDB не е налична в хранилището на Ubuntu 16.04; така че ще трябва да добавите хранилището на MariaDB към вашата система.

Първо изтеглете ключа със следната команда:

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

След това добавете хранилището на MariaDB към /etc/apt/sources.listфайла:

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

Актуализирайте индекса apt със следната команда:

sudo apt-get update -y

След като индексът на apt бъде актуализиран, инсталирайте сървъра MariaDB със следната команда:

sudo apt-get install mariadb-server -y

Стартирайте сървъра MariaDB и го активирайте да стартира при стартиране:

sudo systemctl start mysql
sudo systemctl enable mysql

След това ще трябва да стартирате mysql_secure_installationскрипт, за да защитите инсталацията на MariaDB. Този скрипт ви позволява да зададете root парола, да премахнете анонимни потребители, да забраните дистанционно влизане в root и да премахнете тестовата база данни:

sudo mysql_secure_installation

Стъпка 2: Създайте SSL сертификат и частен ключ за сървъра

Първо създайте директория за съхраняване на всички файлове с ключове и сертификати.

sudo mkdir /etc/mysql-ssl

След това променете директорията на /etc/mysql-sslи създайте CA сертификата и частния ключ със следната команда:

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

Отговорете на всички въпроси, както е показано по-долу:

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]

След това създайте частен ключ за сървъра със следната команда:

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

Отговорете на всички въпроси, както направихте в предишната команда.

След това експортирайте частния ключ на сървъра към ключ от тип RSA със следната команда:

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

Накрая генерирайте сървърен сертификат, използвайки сертификата на CA, както следва:

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

Вече можете да видите всички сертификати и ключове със следната команда:

ls

Трябва да видите следния изход:

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

След като сте готови, можете да продължите към следващата стъпка.

Стъпка 3: Конфигурирайте MariaDB сървър да използва SSL

Трябва да имате всички сертификати и частен ключ; и сега ще трябва да конфигурирате MariaDB да използва ключа и сертификатите. Можете да направите това, като редактирате /etc/mysql/mariadb.conf.d/50-server.cnfфайла:

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

Добавете следните редове под [mysqld]секцията:

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

Запазете файла, след което рестартирайте услугата MariaDB, за да приложите тези промени:

sudo systemctl restart mysql

Сега можете да проверите дали SSL конфигурацията работи или не със следната заявка:

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

Ако конфигурацията е била успешна, трябва да видите следния изход:

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

Трябва да забележите, че have_sslи have_opensslценности са активирани в горния изход.

Стъпка 4: Създайте потребител с SSL привилегии

Създайте отдалечен потребител, който има привилегия за достъп до сървъра на MariaDB през SSL. Направете това, като изпълните следната команда:

Първо, влезте в обвивката на MySQL:

mysql -u root -p

След това създайте потребител remoteи дайте привилегия за достъп до сървъра през SSL.

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

След това изчистете привилегиите със следната команда:

MariaDB [(none)]>FLUSH PRIVILEGES;

Накрая излезте от обвивката на MySQL със следната команда:

MariaDB [(none)]>exit;

Забележка: 192.168.0.191 е IP адресът на машината за отдалечен потребител (клиент).

Вашият сървър вече е готов да разреши връзки с отдалечен потребител.

Стъпка 5: Създайте клиентски сертификат

Вашата конфигурация от страна на сървъра е завършена. След това ще трябва да създадете нов ключ и сертификат за клиента.

На сървърната машина създайте клиентския ключ със следната команда:

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

След това обработете клиентския RSA ключ със следната команда:

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

Накрая подпишете клиентския сертификат със следната команда:

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

Стъпка 6: Конфигурирайте MariaDB Client да използва SSL

Всички сертификати и ключ са готови за клиента. След това ще трябва да копирате всички клиентски сертификати на всяка клиентска машина, където искате да стартирате клиента MariaDB.

Ще трябва да инсталирате клиента MariaDB на клиентската машина.

Първо, на клиентската машина, изтеглете ключа за MariaDB със следната команда:

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

След това добавете хра��илището на MariaDB към /etc/apt/sources.listфайла:

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

След това актуализирайте индекса apt със следната команда:

sudo apt-get update -y

След като индексът на apt се актуализира, инсталирайте клиента MariaDB на клиентската машина със следната команда:

sudo apt-get install mariadb-client -y

Сега създайте директория за съхраняване на всички сертификати:

sudo mkdir /etc/mysql-ssl

След това копирайте всички клиентски сертификати от сървърната машина на клиентската машина със следната команда:

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

След това ще трябва да конфигурирате клиента MariaDB да използва SSL. Можете да направите това, като създадете /etc/mysql/mariadb.conf.d/50-mysql-clients.cnfфайл:

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

Добавете следните редове:

[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

Запазете файла, когато приключите.

Стъпка 7: Проверете отдалечените връзки

Сега, когато всичко е конфигурирано, е време да проверите дали можете да се свържете успешно със сървъра на MariaDB или не.

На клиентската машина изпълнете следната команда, за да се свържете със сървъра на MariaDB:

mysql -u remote -h 192.168.0.190 -p mysql

Ще бъдете помолени да въведете remoteпотребителската парола. След като въведете паролата, ще влезете в отдалечения сървър на MariaDB.

Проверете състоянието на връзката със следната команда:

MariaDB [mysql]> status

Трябва да видите следния изход:

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

Трябва да видите SSL: Cipher in use is DHE-RSA-AES256-SHAв горния изход. Това означава, че връзката ви вече е защитена със SSL.

Заключение

Честито! Успешно сте конфигурирали MariaDB сървър с поддръжка на SSL. Вече можете да предоставите достъп на други клиенти за достъп до сървъра на MariaDB през SSL.


Инсталиране на InfluxDB на Ubuntu 14

Инсталиране на InfluxDB на Ubuntu 14

Въведение InfluxDB е с отворен код, разпределена база данни от времеви серии без външни зависимости. Да, вие четете без външни зависимости пар

Как да инсталирате Apache Cassandra 3.11.x на Ubuntu 16.04 LTS

Как да инсталирате Apache Cassandra 3.11.x на Ubuntu 16.04 LTS

Използване на различна система? Apache Cassandra е безплатна система за управление на база данни NoSQL с отворен код, която е проектирана да осигури мащабируемост, висока

Как да инсталирате Apache Cassandra 3.11.x на CentOS 7

Как да инсталирате Apache Cassandra 3.11.x на CentOS 7

Използване на различна система? Apache Cassandra е безплатна система за управление на база данни NoSQL с отворен код, която е проектирана да осигури мащабируемост, висока

Как да инсталирате и конфигурирате ArangoDB на CentOS 7

Как да инсталирате и конфигурирате ArangoDB на CentOS 7

Използване на различна система? Въведение ArangoDB е NoSQL база данни с отворен код с гъвкав модел на данни за документи, графики и ключ-стойности. то е

Как да инсталирате Laravel GitScrum на CentOS 7

Как да инсталирате Laravel GitScrum на CentOS 7

Laravel GitScrum или GitScrum е инструмент за производителност с отворен код, предназначен да помогне на екипите за разработка да внедрят методологията на Scrum по подобен начин.

Автоматично архивиране на множество MySQL или MariaDB бази данни

Автоматично архивиране на множество MySQL или MariaDB бази данни

Въведение В тази статия, разгледайте как да архивирате множество MySQL или MariaDB бази данни, които се намират на една и съща машина с помощта на персонализиран bash scrip

Как да инсталирате и конфигурирате OrientDB Community Edition на CentOS 7

Как да инсталирате и конфигурирате OrientDB Community Edition на CentOS 7

OrientDB е следващо поколение мултимоделна СУБД с отворен код NoSQL. С поддръжка на множество модели на данни, OrientDB може да осигури повече функционалност и гъвкавост в

Защита на MongoDB

Защита на MongoDB

MongoDB не е защитен по подразбиране. Ако инсталирате MongoDB и го стартирате, без да го конфигурирате за удостоверяване, ще прекарате лошо време

Архивиране на MySQL бази данни

Архивиране на MySQL бази данни

MySQL е най-популярният софтуер в света, използван за бази данни. Много е важно да се уверите, че имате резервни копия на вашата база данни. Тази практика позволява

Как да архивирате и възстановите PostgreSQL бази данни в Ubuntu 16.04

Как да архивирате и възстановите PostgreSQL бази данни в Ubuntu 16.04

Въведение PostgreSQL е безплатна система за управление на база данни с отворен код, която може да се използва за съхраняване на информация, свързана с уебсайтове. Известно е също а

Как да инсталирате PostgreSQL 11.1 на Arch Linux

Как да инсталирате PostgreSQL 11.1 на Arch Linux

Предварителни условия Сървър Vultr, работещ с актуална версия на Arch Linux (вижте тази статия.) Достъп до Sudo. Командите, които се изискват да се изпълняват като root, са с префикс # и един

Разгръщане на набор от реплики с висока наличност в MongoDB 3.4 с помощта на ключов файл за контрол на достъпа в Ubuntu 16.04

Разгръщане на набор от реплики с висока наличност в MongoDB 3.4 с помощта на ключов файл за контрол на достъпа в Ubuntu 16.04

От създаването си през 2009 г. MongoDB е водеща в NoSQL индустрията. Една от основните концепции на MongoDB е наборът реплики, така че преди да работите с i

Инсталирайте по-нови версии на MongoDB на Debian 7

Инсталирайте по-нови версии на MongoDB на Debian 7

MongoDB е бърза и мощна NoSQL база данни. Въпреки това, хранилищата на Debian се актуализират бавно и често съдържат много стари версии на пакети. Този урок

Настройте Barnyard 2 с Snort

Настройте Barnyard 2 с Snort

Barnyard2 е начин за съхранение и обработка на двоичните изходи от Snort в MySQL база данни. Преди да започнем Моля, имайте предвид, че ако нямате хъркане

Как да инсталирате Apache Cassandra 3.11.x на Debian 9

Как да инсталирате Apache Cassandra 3.11.x на Debian 9

Използване на различна система? Apache Cassandra е безплатна система за управление на база данни NoSQL с отворен код, която е проектирана да осигури мащабируемост, висока

Инсталирайте RockMongo на CentOS 7

Инсталирайте RockMongo на CentOS 7

RockMongo е уеб-базиран инструмент за управление на MongoDB, който е подобен на инструмента за управление на MySQL: phpMyAdmin. Този урок ще обхване процеса на инсталиране

Инсталирайте InfluxDB на Debian Jessie с Telegraf

Инсталирайте InfluxDB на Debian Jessie с Telegraf

Въведение InfluxDB е базирана на времеви серии база данни, написана на Go. InfluxDB има много практически приложения, една от които е съхраняване на данни за наблюдение на сървъри. аз

Защитете MariaDB с поддръжка на SSL в Ubuntu 16.04

Защитете MariaDB с поддръжка на SSL в Ubuntu 16.04

MariaDB е безплатна база данни с отворен код и е най-широко използваният заместител на MySQL. Той е направен от разработчиците на MySQL и е предназначен да бъде оставен

Как да инсталирате phpRedisAdmin на CentOS 7

Как да инсталирате phpRedisAdmin на CentOS 7

phpRedisAdmin е уеб приложение, което управлява Redis бази данни с интуитивен графичен потребителски интерфейс. Този урок ще обясни как да инсталирате

Как да инсталирате и използвате ArangoDB на Ubuntu 16.04

Как да инсталирате и използвате ArangoDB на Ubuntu 16.04

Използване на различна система? Въведение ArangoDB е NoSQL база данни с отворен код с гъвкав модел на данни за документи, графики и ключ-стойности. то е

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече