Захист 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

Далі додайте до /etc/apt/sources.listфайлу репозиторій MariaDB :

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та створіть сертифікат ЦС та закритий ключ за допомогою такої команди:

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

Нарешті, згенеруйте сертифікат сервера, використовуючи сертифікат ЦС, як показано нижче:

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 на використання SSL

Усі сертифікати та ключ готові для клієнта. Далі вам потрібно буде скопіювати всі клієнтські сертифікати на будь-яку клієнтську машину, де ви хочете запустити клієнт MariaDB.

Вам потрібно буде встановити клієнт MariaDB на клієнтську машину.

Спочатку на клієнтській машині завантажте ключ для MariaDB за допомогою такої команди:

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

Потім додайте до /etc/apt/sources.listфайлу репозиторій MariaDB :

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.

Як встановити та налаштувати 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 з гнучкою моделлю даних для документів, графіків і ключів-значень. це є

Повстання машин: застосування ШІ в реальному світі

Повстання машин: застосування ШІ в реальному світі

Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.

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. Прочитайте цю статтю, щоб дізнатися більше