Спонсор публикаций HOSTLAND.RU

Hostland.RU уже более 10 лет является профессионалом в сфере предоставления виртуального хостинга и целого ряда сопутствующих услуг. Мы отвечаем за качество нашей работы.

Как настроить MariaDB SSL и установить безопасные соединения с различных клиентовЯ собираюсь установить MariaDB SSL (Secure Sockets Layer) а также безопасные соединения от клиента MySQL и приложения PHP. Как включить SSL для сервера и клиента MariaDB, работающего в Linux или Unix-подобной системе?

MariaDB — сервер базы данных, который предлагает функциональные возможности вклинивания для сервера MySQL.

MariaDB был создан некоторыми из оригинальных авторов MySQL, с помощью более широкого штата разработчиков Free и другого программного обеспечения с открытым исходным кодом. В дополнение к основным функциям MySQL, MariaDB предлагает богатый набор улучшений функций, включая альтернативные механизмы хранения, оптимизацию серверов и другие исправления. В этом руководстве я собираюсь рассказать о том, как настроить сервер MariaDB с помощью SSL и как установить безопасные соединения с помощью консоли и PHP-скриптов.

Как настроить MariaDB SSL и установить безопасные соединения с различных клиентов

При создании сертификатов SSL важно использовать 192.168.1.100 в качестве стандартного имени.

Шаг 1 – Установка MariaDB

Введите команду в соответствии с вашим вариантом Linux или Unix.

Установка MariaDB сервера/клиента на Ubuntu/Debian Linux

Введите одну из следующих команд: apt-get command или apt command:

Установка MariaDB сервера/клиента на CentOS/RHEL/Fedora Linux

Введите следующую команду yum :

Для пользователей Fedora Linux необходимо ввести команду dnf :

Установка MariaDB сервера/клиента на Arch Linux

Введите следующую команду pacman:

Установка MariaDB сервера/клиента на FreeBSD unix

Для установки порта запустите:

Чтобы добавить бинарный пакет, введите:

Шаг 2 – Обеспечение безопасной установки MariaDB

Введите следующую команду:

Примеры возможных выводов данных:

Обеспечение безопасной установки MariaDB

Рисунок.01: Обезопасьте установку MariaDB

Шаг 3 – Создайте CA сертификат

Создайте директорию под названием ssl в /etc/mysql/ directory :

Значение: Стандартное значение имени (Common Name), используемое для сертификатов / ключей сервера и клиента, должно отличаться от стандартного значения имени (Common Name), используемого для сертификата CA. Чтобы избежать каких-либо проблем, я устанавливаю их следующим образом:

Стандартное имя CA: MariaDB admin
Стандартное имя сервера: MariaDB server
Стандартное имя клиента: MariaDB client

Введите следующую команду для создания нового CA ключа:

Примеры возможных выводов данных:

Создайте CA сертификат

Рисунок.02: Создание CA ключа

Введите следующую команду для создания сертификата с помощью этого ключа:

Создайте CA сертификат

Рисунок.03: Используя ключ CA, сгенерируйте сертификат CA для MariaDB

Примеры возможных выводов данных:

Теперь у вас должно быть два следующих файла::

  1. /etc/mysql/ssl/ca-cert.pem  – Файл сертификата для Центра сертификации (Certificate Authority (CA)).
  2. /etc/mysql/ssl/ca-key.pem  – Файл ключа для Центра сертификации (Certificate Authority (CA)).

Я собираюсь использовать оба файла для создания сертификатов сервера и клиента.

Шаг 4 – Создание сертификата сервера

Для создания ключа сервера, запустите:

Примеры возможных выводов данных:

Создание сертификата сервера

Рисунок 04: Создание ключа сервера для сервера MariaDB

Затем обработайте ключ RSA сервера, для этого введите:

Примеры возможных выводов данных:
Наконец, подпишите сертификат сервера, для этого запустите:

Примеры возможных выводов данных:

Теперь у вас должны появиться дополнительные файлы:

  1. /etc/mysql/ssl/server-cert.pem  – MariaDB файл сертификата сервера.
  2. /etc/mysql/ssl/server-key.pem  – MariaDB файл ключа сервера.

Вы должны использовать не менее двух файлов на сервере MariaDB и любых других узлах, которые вы собираетесь использовать для трафика кластера/репликации. Эти два файла будут защищать связь на стороне сервера.



Шаг 5 – Создание сертификата клиента

Клиент mysql, и приложение PHP/Python/Perl/Ruby будет использовать сертификат клиента для защиты соединяемости клиента. Вы должны установить следующие файлы на всех ваших клиентах, включая веб-сервер. Чтобы создать клиентский ключ, запустите:

Примеры возможных выводов данных:

Создание сертификата клиента

Рисунок.05: Создание ключа клиента для сервера MariaDB

Затем обработайте ключ клиента RSA, для этого введите

Наконец, подпишите сертификат клиента, для этого запустите:

Примеры возможных выводов данных:

Шаг 6 – Как проверить сертификаты?

Введите следующую команду, чтобы проверить сертификаты, чтобы убедиться, что все было создано правильно:

Примеры возможных выводов данных:

Не должно быть никаких ошибок, и вы должны получить ответ OK для сертификатов сервера и клиента.

Шаг 7 – Настройте сервер MariaDB для использования SSL

Отредактируйте файл vi /etc/mysql/mariadb.conf.d/50-server.cnf или /etc/mysql/mariadb.cnf следующим образом:

Добавьте [mysqld] следующим образом:

Сохраните и закройте файл. Вы можете перезапустить mariadb следующим образом:

Или

Шаг 8 – Настройте клиент MariaDB для использования SSL

Настройте MariaDB клиент как 192.168.1.200 для использования SSL (добавьте в /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf ):

Добавьте [mysql] в раздел:

Сохраните и закройте файл. Вы должны скопировать файлы /etc/mysql/ssl/ca-cert.pem , /etc/mysql/ssl/client-cert.pem и /etc/mysql/ssl/client-key.pem  для всех ваших клиентов. Например:

Шаг 9 – Проверка

Введите следующую команду:

Введите следующую SHOW VARIABLES LIKE ‘%ssl%’; команду в MariaDB [(none)]> строке:

ИЛИ выполните команду status:

Примеры возможных выводов данных:

Введите следующую SHOW VARIABLES LIKE

Рисунок 06: Установление безопасного соединения с консолью и ее проверка

Проверьте соединения SSL и TLS. Следующая команда должна завершиться неудачей, так как ssl 3 не поддерживается и, соответственно, она не настроена для использования:

Проверьте TLS v 1/1.1/1.2:

Примеры возможных выводов данных:

Как читать файл захвата пакета tcpdump для проверки защищенной связи

Наконец, вы можете использовать анализатор пакетов команд tcpdump, который запускается под командной строкой, чтобы посмотреть порт 3306:

Теперь подключитесь к вашему приложению PHP/Python/Perl/Ruby mysql или консольному приложению mysql:

Используйте tcpdump для проверки того, что никакая текстовая информация, включая пароли, не обменивается между сервером и клиентом. Это делается следующим образом:

Вы можете прочитать захваченный трафик с помощью tcpdump или других инструментов, таких как Wireshark.

Шаг 10 – Добавлениепользователя на MariaDB сервер

Введите следующую команду:

Создайте базу данных под названием foo:

Создайте пользователя с имение bar for  для базы данных под названием foo:

Предоставление доступа с веб-сервера, размещенного по адресу 192.168.1.200:

Создайте безопасное соединение из оболочки bash

Вы можете войти в систему с консоли следующим образом:

Создайте безопасное соединение из Python

Сначала установите интерфейс Python для MySQL:

ИЛИ для Python v3.x

Здесь приведен пример кода Python для безопасного соединения с использованием:

ИЛИ

Примеры возможных выводов данных:

<< Контент скрыт от гостей. Зарегистрируйтесь, чтобы снять ограничение ! >>

Это интересно:


Спонсор публикаций Cyber-512

Готовим специалиста в области ИБ  - Воспитаем специалиста в области ИБ с нуля до начального уровня. После обучения сможете оказывать услуги по проведению тестирования на проникновение ( легальный хакинг )

Похожие темы

Apple выпустила обновления безопасности для iOS и ... Apple выпустила обновления безопасности для iOS устройств и Apple TV направленное на множество уязвимостей, одна из которых может позволить атакующе...
Gufw – графический интерфейс для настройки файерво... Брандмауэр Gufw — графическая оболочка GUI , работающая на UFW (Uncomplicated Firewall). Установка Gufw в Debian и производные (Kali, Mint, Ubuntu и ...
Как установить NetBeans и Java на Linux... Казалось бы, что здесь обсуждать? Открыть менеджер программ и установить. Но в менеджере программ, на момент написания, версия 7.0.1, а официально д...
Введение в хранимые функции MySQL 5... Хранимые процедуры MySQL (часть 2) В этой части статьи допишем начатую в предыдущей статье хранимую процедуру и научимся создавать хранимые mysql фун...
Установка Apache, PHP, MySQL, phpMyAdmin Всё будет хорошо Митя Фомин Теперь доступна инструкция "Установка и настройка сервера Apache, PHP, MySQL, phpMyAdmin на Windows 10". Она заменяет ...