Требуются разработчики и тестеры для проекта codebyOS

Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

Как настроить 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 и любых других узлах, которые вы собираетесь использовать для трафика кластера/репликации. Эти два файла будут защищать связь на стороне сервера.


Набираем команду codeby webinar

Набираем команду для организации и проведения вебинаров Подробнее ...

Шаг 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 для безопасного соединения с использованием:

ИЛИ

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

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

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



Похожие темы

Выгрузка данных из базы данных Mysql в XML на c#... Как выгрузить данные из базы данных Mysql в XML? В этой статье рассмотрим на простом примере, как выполняется выгрузка данных из базы данных Mysql в ...
Как скрыть все ошибки PHP с помощью .htaccess... Источники: https://perishablepress.com/advanced-php-error-handling-via-htaccess/ и https://perishablepress.com/how-to-enable-php-error-logging-via-h...
goSecure — портативная виртуальная частная с... Перевод: Анна Давыдова Источник: n0where.net Переносная виртуальная частная сеть goSecure goSecure является простой в использовании и порта...
Сканирование уязвимостей с Nexpose... Перейти к содержанию полного руководства пользователя Metasploit на русском языке. Терминология Nexpose Загрузка и настройка Nexpose Добавление...
Как настроить кросс-платформенный сервер резервног... В этом сообщение я представлю вам BackupPC, программный кросс-платформенный бэкап сервер, который через сеть может вытянуть резервное копирование клие...