Для начинающих пользователей ПК

Mariadb настройка конфигурации. Установка MariaDB на Debian. Удаленные соединения пользователей

Сейчас расскажу как установить MariaDB на Debian. Так же расскажу как ею пользоваться в своей теме «Установка MariaDB на Debian» все это будет подробно описано.

MariaDB является лёгкой заменой MySQL. MariaDB является аналогом MySQL и она стремится быть лучшим выбором для специалистов по базам данных, которые ищут надежный, масштабируемый SQL Server. Это руководство поможет начинающим установить и понять суть работы MariaDB на Debian 7 и 6. Для достижения этой цели, MariaDB Foundation тесно сотрудничает и совместно работает с большим сообществом пользователей и разработчиков в истинном духе свободного и открытого программного обеспечения, и выпускает ПО таким образом, чтобы оно было с высокой надежностью.

Толчком к созданию стала необходимость обеспечения свободного статуса СУБД (под лицензией GPL), в противовес неопределенной политике лицензирования MySQL компанией Oracle. Ведущий разработчик - Майкл Видениус, автор оригинальной версии MySQL и основатель компании Monty Program AB.

В MariaDB произошел отказ от подсистемы хранения данных InnoDB и его замена на XtraDB. Также включены подсистемы Aria (en:Aria (storage engine)), PBXT и FederateX.

Для начала, обновим ОС (чтобы было все самое новое):

# apt-get update # apt-get upgrade

Устанавливаем дополнения к питону:

# sudo apt-get install python-software-properties

Установка MariaDB

Во-первых, нужно импортировать ключ GPG, для того что бы APT проверил целостность пакетов и загрузил все:

# apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db

Создаем собственный MariaDB файл sources.list чтобы добавить репозиторий в него:

# vim /etc/apt/sources.list

Установка MariaDB 5.5 для Debian 7 wheezy

# MariaDB 5.5 repository list - created 2014-11-15 17:08 UTC deb http://mirror.23media.de/mariadb/repo/5.5/debian wheezy main deb-src http://mirror.23media.de/mariadb/repo/5.5/debian wheezy main

Установка MariaDB 5.5 для Debian 6 squeeze

# MariaDB 5.5 repository list - created 2014-11-15 17:14 UTC deb http://mirror.23media.de/mariadb/repo/5.5/debian squeeze main deb-src http://mirror.23media.de/mariadb/repo/5.5/debian squeeze main

Установка MariaDB 10.0 для Debian 7 wheezy

# MariaDB 10.0 repository list - created 2014-11-15 17:21 UTC deb http://mirror.23media.de/mariadb/repo/10.0/debian wheezy main deb-src http://mirror.23media.de/mariadb/repo/10.0/debian wheezy main

Установка MariaDB 10.0 для Debian 6 squeeze

# MariaDB 10.0 repository list - created 2014-11-15 17:22 UTC deb http://mirror.23media.de/mariadb/repo/10.0/debian squeeze main deb-src http://mirror.23media.de/mariadb/repo/10.0/debian squeeze main

Установка MariaDB 10.1 для Debian 7 wheezy

# MariaDB 10.1 repository list - created 2014-11-15 17:23 UTC deb http://mirror.23media.de/mariadb/repo/10.1/debian wheezy main deb-src http://mirror.23media.de/mariadb/repo/10.1/debian wheezy main

Установка MariaDB 10.1 для Debian 6 squeeze

# MariaDB 10.1 repository list - created 2014-11-15 17:23 UTC deb http://mirror.23media.de/mariadb/repo/10.1/debian squeeze main deb-src http://mirror.23media.de/mariadb/repo/10.1/debian squeeze main

После этого, обновляем систему (список всех репозиторией) и устанавливаем сервер с MariaDB:

# sudo apt-get update # sudo apt-get install mariadb-server

После чего начнется установка сервера MariaDB. Я выбрал 10.0 версию и по этому, приведу пример установки. В ходе установки, вас попросят ввесли пароль для MariaDB пользователя — root.

Вводим пароль и нажимаем OK. Так же нужно ввести 2-й раз (подтверждение). Процесс установки займет пару минут.

Использование MariaDB

В этом разделе вы узнаете, как подключиться к MariaDB и как пользоваться основными командами SQL.

Стандартный инструмент для взаимодействия с MariaDB является программа-клиент MySQL. Для начала, выполните следующую команду для подключения к MariaDB в качестве пользователя root:

# mysql -u root -p

Вводим пароль, тот который Вы вводили (создали) при установке.

Давайте попробуем создать простую базу данных, которую мы позже будем заполнения данными. Введите следующие команды, чтобы создать базу данных с именем TEST_DB, владельцем которого будет являться новый пользователь Test_User, так же командой установим пароль secret_password для пользователя:

MariaDB [(none)]> CREATE DATABASE test_db; MariaDB [(none)]> GRANT ALL PRIVILEGES ON test_db.* TO [email protected] IDENTIFIED BY "secret_password"; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> quit

Последняя строка (команда) выходит из пользователя root на MariaDB. И сейчас войдем как пользователь test_user:

# mysql -u testuser -p

Введем команду для того чтобы использовать только что созданную БД (test_db):

MariaDB [(none)]> USE test_db;

Создайте новую таблицу и заполните ее некоторым данным:

MariaDB [(none)]> CREATE TABLE products (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), price DECIMAL(6,2)); MariaDB [(none)]> INSERT INTO products (name, price) VALUES ("MacBook_Pro", 3200.0); MariaDB [(none)]> INSERT INTO products (name, price) VALUES ("Asus", 340.0); MariaDB [(none)]> INSERT INTO products (name, price) VALUES ("HP", 745.0);

Убедитесь, что новые данные нормально вставлены:

MariaDB [(none)]> SELECT * FROM products;

Выйдите из клиента MariaDB выполнив:

MariaDB [(none)]> quit

Для получения дополнительной информации о командах SQL выполните:

MariaDB [(none)]> \h

Настройка MariaDB

Чтобы настроить MariaDB нужно отредактировать файл с конфигурацией. Этот файл контролирует большую часть системных переменных сервера, которые вы, как правило, оставлены по умолчанию.

# vim /etc/mysql/my.cnf

перезапустите сервер, выполнив следующую команду:

# service mysql restart

Безопастность MariaDB

# mysql_secure_installation

Вам будет предложено изменить пароль администратора, удалить анонимов, запретить вход за пределами локального хоста, удалить всех анонимов, и удалить тестовую базу данных. Рекомендуется, чтобы вы ответили «Y» на все вопросы.

Удаленные соединения пользователей

Давайте взглянем на то, как разрешить ранее созданному пользователю Test_User подключения к MariaDB удаленно (по умолчанию, MariaDB розрешает подключения только с локального хоста).

Открытие сервера MariaDB к Интернету делает его менее безопасным. Если вам необходимо подключить с другого сервера, то убедитесь, что вы применили правила брандмауэра, разрешающие соединения только с определенных IP-адресов.
Во-первых, мы должны предоставить пользовательские соединения с удаленными хостами для пользователя Test_user, для этого нужно войти в MariaDB как root:

# mysql -u root -p

Разрешаем пользователю Test_User подключения с удаленных хостов:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON test_db.* TO [email protected]"%" IDENTIFIED BY "secret_password"; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> quit

Настройка MariaDB слушать все сетевые интерфейсы. Откройте файл /etc/mysql/my.cnf:

# vim /etc/mysql/my.cnf

[…]
bind-address = 0.0.0.0
[…]

Перезапустите сервер:

# service mysql restart

Проверка соединения с локального компьютера на вашем MariaDB сервере, заменив Test_User с вашим именем пользователя, и test_domain.com с вашим доменом или IP-адресом:

# mysql -u test_user -h test_domain.com -p

Если вошли успешно, вы должны увидеть приветствие MariaDB и shell prompt.

Тюнинг MariaDB

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

Установите MySQL тюнер, выполнив следующую команду:

# apt-get install mysqltuner

Запустите MySQL тюнер с помощью следующей команды:

# mysqltuner

После чего он вам выдаст много весьма полезной информации. Обратите внимание рекомендации в конце. Это укажет вам, что необходимо изменить (какие переменные должны быть настроины) в разделе вашего /etc/mysql/my.cnf файла.

Как сбросить MariaDB root пароль?

Если вы забыли свой пароль суперпользователя (пароль от root), вы можете легко сбросить его, следуя приведенным ниже инструкциям.

Остановите сервер MariaDB:

# service mysql stop

Запустите сервер с skip-grant-tables, таким образом, вы можете войти на MariaDB без пароля:

# mysqld_safe --skip-grant-tables &

Теперь вы можете подключиться к серверу MariaDB как root без пароля:

# mysql -u root

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

MariaDB [(none)]> USE mysql MariaDB [(none)]> UPDATE user SET password=PASSWORD("yournewpassword") WHERE user="root"; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> quit

Перезапустите сервер MariaDB:

# service mysql restart

Подключитесь к серверу MariaDB, используя новый пароль:

# mysql -u root -p

Установка MariaDB на Debian завершена. Надеюсь было понятно.

2 января, 2017 12:16 пп 13 224 views | Комментариев нет

Требования

  • Сервер CentOS 7.
  • Пользователь с доступом к sudo.

Все необходимые инструкции можно найти в .

1: Установка MariaDB

Чтобы установить MariaDB, используйте репозиторий Yum. Запустите следующую команду и нажмите y, чтобы продолжить.

sudo yum install mariadb-server

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

sudo systemctl start mariadb

Команда systemctl не показывает вывод некоторых команд. Чтобы убедиться, что демон запущен, введите:

sudo systemctl status mariadb

Если демон MariaDB был запущен, в выводе команды будут строки:

Active: active (running)
[…]
Dec 01 19:06:20 centos-512mb-sfo2-01 systemd: Started MariaDB database server.

Теперь нужно настроить автозапуск MariaDB. Для этого введите:

sudo systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

После этого нужно обеспечить безопасность данных.

2: Безопасность MariaDB

После завершения установки нужно запустить встроенный сценарий безопасности MariaDB, который изменяет некоторые опции по умолчанию и блокирует удалённый root-логин. Чтобы запустить сценарий, введите:

sudo mysql_secure_installation

Сценарий предоставляет подробное описание каждого шага. Сначала он запросит root-пароль. Поскольку в новой установке такого пароля пока нет, просто нажмите Enter. После этого сценарий предложит вам создать такой пароль. Введите сложный пароль и подтвердите его.

После этого сценарий задаст вам ряд вопросов. Чтобы принять данные по умолчанию, можете просто нажать Y и Enter. Сценарий заблокирует анонимных пользователей и удалённый root логин, удалит тестовые таблицы и перезагрузит привилегии.

3: Тестирование MariaDB

Теперь нужно убедиться, что установка MariaDB прошла успешно.

Попробуйте подключиться к БД с помощью инструмента mysqladmin (это клиент для запуска команд администрирования). Чтобы подключиться к MariaDB как root (-u root), ввести пароль (-p) и запросить версию программы, введите команду:

mysqladmin -u root -p version

Команда выведет:

mysqladmin Ver 9.0 Distrib 5.5.50-MariaDB, for Linux on x86_64
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Server version 5.5.50-MariaDB
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/lib/mysql/mysql.sock
Uptime: 4 min 4 sec
Threads: 1 Questions: 42 Slow queries: 0 Opens: 1 Flush tables: 2 Open tables: 27 Queries per second avg: 0.172

Это значит, что установка СУБД MariaDB прошла успешно.

Заключение

Теперь вы умеете выполнять базовую установку и настройку MariaDB.

В данной статье мы рассмотрим как установить и настроить Linux, Apache, MariaDB, PHP на Centos7 /RHEL 7. В новой версии Centos7 /RHEL 7 много изменений.

Что такое LAMP?

LAMP — комплект программного обеспечения на ОС, состоящей из операционной системы Linux, веб-сервера Apache, сервера базы данных MySQL и языка программирования PHP (или Perl / Python) . LAMP используется для работы тяжелых динамических веб-сайтов полностью состоящий из свободного программного обеспечения с открытым исходным кодом. В этой статье я собираюсь объяснить, как Linux, Apache, MySQL / MariaDB (замена для MySQL), PHP (LAMP) устанавливаются на CentOS 7 или RHEL 7.

  • Устанавливаем RHEL 7 или CentOS 7 сервер. Открываем терминал к серверу по ssh, у Вас должны быть права суперпользователя root.
  • Вам также понадобятся знания команд yum
  • Вам понадобится IP адрес вашего сервера, используйте следующую комманду, что бы определить IP адрес для интерфейса eth0
ifconfig eth0 или ip a show eth0 или ip addr list eth0 | awk "/inet /{sub(/\/+/,"",$2); print $2}" или ifconfig eth0 | awk "/inet /{print $2}" 10.180.10.10
  • Полученный IP 10.180.10.10 адрес будем использовать для тестирования установки

Итак приступим

Установка Apache on a CentOS 7 /RHEL 7 сервер

Для установки веб сервера используем команду

Yum install httpd

Включите службу HTTPd в автозагрузки

systemctl enable httpd.service ln -s "/usr/lib/systemd/system/httpd.service" "/etc/systemd/system/multi-user.target.wants/httpd.service"

Чтобы отключить, автоматическую загрузку

Systemctl disable httpd.service rm "/etc/systemd/system/multi-user.target.wants/httpd.service"

Запустите HTTPd службу на CentOS 7 / RHEL 7

systemctl start httpd.service

На данном этапе вы можете указать в веб-браузере IP-адрес вашего сервера, http://10.180.10.10. Вы увидите стартовую страницу apache:

Остановка HTTPd службы на CentOS 7 / RHEL 7

systemctl stop httpd.service

Перезапуск HTTPd службы на CentOS 7 / RHEL 7

Просмотр статуса apache службы на CentOS 7 / RHEL 7

Убедитесь что веб сервер запущен

Systemctl status httpd.service

Также перезапуск веб сервера может быть выполнен следующей командой

Apachectl graceful

Проверка apache / httpd на наличие ошибок конфигурации в Centos 7/ RHEL 7

Apachectl configtest

Конфигурация по умолчанию HTTPD сервера:

  1. По умолчанию конфигурационный файл: /etc/httpd/conf/httpd.conf
  2. Файлы конфигурации, загружаемых модулей: /etc/httpd/conf.modules.d/ (например, PHP)
  3. Выберите MPMs как загружаемые модули и события: / etc/httpd/conf.modules.d/00-mpm.conf
  4. Стандартные порты: 80 и 443 (SSL)
  5. Файлы журналов по умолчанию: /var/log/httpd/{access_log,error_log}

Установка MariaDB на сервере CentOS 7 / RHEL

MariaDB — обновленная замена для сервера MySQL. На RHEL / CentOS 7 вместо MySQL используется система управления базами данных MariaDB. Введите следующую yum команду для установки MariaDB сервера:

Yum install mariadb-server mariadb

Для запуска MariaDB, используйте команду:

Systemctl start mariadb.service

Чтобы убедиться, что сервис MariaDB запускается автоматически во время загрузки, введите:

Systemctl enable mariadb.service

Вывод команды

Ln -s "/usr/lib/systemd/system/mariadb.service" "/etc/systemd/system/multi-user.target.wants/mariadb.service"

Чтобы остановить / перезапуск и отключить MariaDB используйте следующие команды:

Sudo systemctl stop mariadb.service #-- Остановить mariadb сервер sudo systemctl restart mariadb.service #-- Перзапусить mariadb сервер sudo systemctl disable mariadb.service #-- Отключить автозагрузку mariadb сервер sudo systemctl is-active mariadb.service #-- Проверка запущен ли сервер?

Первый запуск MariaDB

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

/usr/bin/mysql_secure_installation

Отвечая на вопросы Вы сможете настроить первоначальную безопасность БД

Проверка установки MariaDB

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

Mysql -u root -p

Пример вывода:

Установка PHP на CentOS 7 / RHEL 7

Для установки PHP и модулей, такие как GD / mysql введите следующую комманду

Yum install php php-mysql php-gd php-pear

Необходимо перезагрузить HTTPD (Apache) сервер, введите:

Systemctl restart httpd.service

Для поиска всех других PHP модулей:

Yum search php-

Чтобы получить более подробную информацию о модуле:

Yum info php-pgsql

Проверка PHP на сервере

Создайте файл с именем /var/www/html/test.php следующим образом:

Vi /var/www/html/test.php

Добавьте следующий код:

LAMP сервер установлен, если у вас есть проблемы с настройкой сервера, мы производим разовые работы по установке и настройке web сервера LAMP .

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

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

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

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

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

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

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

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

$ sudo apt-get install mariadb-server mariadb-client

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

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

$ sudo yum install mariadb-server mariadb

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

$ sudo dnf install mariadb-server mariadb

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

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

$ sudo pacman -S mariadb

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

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

# cd /usr/ports/databases/mariadb100-server/ && make install clean # cd /usr/ports/databases/mariadb100-client/ && make install clean

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

# pkg install mariadb100-server mariadb100-client

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

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

$ mysql_secure_installation

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

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

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

$ cd /etc/mysql $ sudo mkdir ssl $ cd ssl

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

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

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

$ sudo openssl genrsa 2048 > ca-key.pem

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


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

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

$ sudo openssl req -new -x509 -nodes -days 365000 -key ca-key.pem -out ca-cert.pem
Рисунок.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 – Создание сертификата сервера

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

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

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


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

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

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

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

Writing RSA key

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

$ sudo openssl x509 -req -in server-req.pem -days 365000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem

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

Signature ok subject=/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=MariaDB server Getting CA Private Key

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

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

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

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

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

$ sudo openssl req -newkey rsa:2048 -days 365000 -nodes -keyout client-key.pem -out client-req.pem

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


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

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

$ sudo openssl rsa -in client-key.pem -out client-key.pem writing RSA key

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

$ sudo openssl x509 -req -in client-req.pem -days 365000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem

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

Signature ok subject=/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=MariaDB client Getting CA Private Key

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

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

$ openssl verify -CAfile ca-cert.pem server-cert.pem client-cert.pem

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

Server-cert.pem: OK client-cert.pem: OK

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

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

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

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

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

### MySQL Server ### ## Securing the Database with ssl option and certificates ## ## There is no control over the protocol level used. ## ## mariadb will use TLSv1.0 or better. ## ssl ssl-ca=/etc/mysql/ssl/ca-cert.pem ssl-cert=/etc/mysql/ssl/server-cert.pem ssl-key=/etc/mysql/ssl/server-key.pem

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

$ sudo /etc/init.d/mysql restart

$ sudo systemctl restart mysql

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

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

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

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

## MySQL Client Configuration ## ssl-ca=/etc/mysql/ssl/ca-cert.pem ssl-cert=/etc/mysql/ssl/client-cert.pem ssl-key=/etc/mysql/ssl/client-key.pem ### This option is disabled by default ### ### ssl-verify-server-cert ###

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

{[email protected]}: rsync /etc/mysql/ssl/ca-cert.pem /etc/mysql/ssl/client-cert.pem /etc/mysql/ssl/client-key.pem \ [email protected]:/etc/mysql/ssl

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

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

$ mysql -u {User-Name-Here} -h {Server-IP-here} -p {DB-Name-Here} $ mysql -u root -h 192.168.1.100 -p mysql $ mysql -u root -h 127.0.0.1 -p mysql

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

MariaDB [(none)]> SHOW VARIABLES LIKE "%ssl%";

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

MariaDB [(none)]> status;

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

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

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

$ openssl s_client -connect 192.168.1.100:3306 -ssl3 140510572795544:error:140A90C4:SSL routines:SSL_CTX_new:null ssl method passed:ssl_lib.c:1878:

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

$ openssl s_client -connect 192.168.1.100:3306 -tls1 $ openssl s_client -connect 192.168.1.100:3306 -tls1_1 $ openssl s_client -connect 192.168.1.100:3306 -tls1_2

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

CONNECTED(00000003) --- no peer certificate available --- No client certificate CA names sent --- SSL handshake has read 5 bytes and written 7 bytes --- New, (NONE), Cipher is (NONE) Secure Renegotiation IS NOT supported Compression: NONE Expansion: NONE No ALPN negotiated SSL-Session: Protocol: TLSv1 Cipher: 0000 Session-ID: Session-ID-ctx: Master-Key: Key-Arg: None PSK identity: None PSK identity hint: None SRP username: None Start Time: 1485335036 Timeout: 7200 (sec) Verify return code: 0 (ok) ---

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

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

$ sudo tcpdump -i eth0 -s 65535 port 3306 -w /tmp/mysql.pcap

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

$ mysql -u bar -h 192.168.1.100 -p foo

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

$ tcpdump -r /tmp/mysql.pcap | less

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

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

$ mysql -u root –p

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

CREATE DATABASE foo;

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

GRANT ALL ON foo.* TO [email protected] IDENTIFIED BY "mypassword" REQUIRE SSL;

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

GRANT ALL ON foo.* TO [email protected] IDENTIFIED BY "mypassword" REQUIRE SSL;

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

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

$ mysql -u bar -p -h 192.168.1.100 foo

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

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

$ sudo apt-get install python-mysql.connector

ИЛИ для Python v3.x

$ sudo apt-get install python3-mysql.connector

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

#!/usr/bin/python import MySQLdb ssl = {"cert": "/etc/mysql/ssl/client-cert.pem", "key": "/etc/mysql/ssl/client-key.pem"} conn = MySQLdb.connect(host="192.168.1.100", user="bar", passwd="mypassword", ssl=ssl) cursor = conn.cursor() cursor.execute("SHOW STATUS LIKE "Ssl_cipher"") print cursor.fetchone()

#!/usr/bin/python # Note (Example is valid for Python v2 and v3) from __future__ import print_function import sys import mysql.connector from mysql.connector.constants import ClientFlag config = { "user": "bar", "password": "mypassword", "host": "192.168.1.100", "client_flags": , "ssl_ca": "/etc/mysql/ssl/ca-cert.pem", "ssl_cert": "/etc/mysql/ssl/client-cert.pem", "ssl_key": "/etc/mysql/ssl/client-key.pem", } cnx = mysql.connector.connect(**config) cur = cnx.cursor(buffered=True) cur.execute("SHOW STATUS LIKE "Ssl_cipher"") print(cur.fetchone()) cur.close() cnx.close()

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

("Ssl_cipher", "DHE-RSA-AES256-SHA")

Эта статья «Установка MariaDB 10 на CentOS 7» покажет вам, как установить и настроить MariaDB 10 на CentOS 7. Как вы вероятно уже знаете, сервер базы данных MariaDB теперь по умолчанию на CentOS т.к из-за Oracle (MySQL материнская компания) и вопросов GPL лицензирования. MariaDB с открытым исходным кодом и сообщество постепенно отходит от MySQL и переходит на MariaDB.

Если вы не знаете историю, вот краткое резюме. До Oracle владеющий MySQL, она была основана на GPL (GNU General Public License), которая говорит, что вы можете использовать программное обеспечение бесплатно, но вы не можете изменять и продавать его, если вы не отдаете исходный код. Это означает, что вы можете использовать его в вашем проекте с закрытым исходным кодоме.

Когда Oracle изменила лицензионное соглашение от модели GPL, в основном в с открытым исходным кодом сообщества восстали и некоторые начали группу из MySQL и создали MariaDB.

Поэтому в основном, сервер базы данных MariaDB такой же как и MySQL, но с моделью лицензирования GPL.

Теперь, когда вы знаете немного больше о том, почему и как MariaDB была основана, давайте будем учиться, как установить ее на CentOS 7.

Установка MariaDB на CentOS 7

Теперь, MariaDB является сервер базы данных по умолчанию для CentOS, все что вам нужно сделать, это запустить следующие команды, чтобы установить ее.Проблема в том, что centos загружает и устанавливает более старую, но стабильную версию MariaDB.

Если вы хотите, чтобы установить последнюю версию MariaDB, необходимо добавить его репозиторий программного обеспечения на ваш компьютер и установить. Чтобы сделать это, выполните следующие команды, чтобы создать файл из хранилища.

$ sudo vim /etc/yum.repos.d/MariaDB.repo

Затем скопируйте и вставьте строки что ниже в файл и сохранить его.

Name = MariaDB baseurl = http://yum.mariadb.org/10.0/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1

Наконец, выполните команды ниже, чтобы установить MariaDB 10 на ваш сервер:

$ sudo yum install MariaDB-server MariaDB-client

Если у вас возникли проблемы с ошибками и MariaDB не может быть установлена из-за конфликта с mariadb-libs-xxxx, выполните команду что ниже, чтобы удалить конфликтующие библиотеки, и после чего повторно запустите установку команды что выше:

$ sudo yum remove mariadb-libs*

Следует также удалить пакет Postfix. Повторно запустите команду что выше, чтобы установить MariaDB.

После завершения установки, выполните команду что ниже, чтобы запустить сервер с MariaDB:

$ sudo /etc/init.d/mysql start

Затем выполните следующую команду, чтобы защитить сервер базы данных.

$ sudo mysql_secure_installation

Затем выберите «Y» (Да) для остальных подсказок, пока вы не закончите.

Enter current password for root (enter for none): press Enter Set root password? Y New password: Type new root password Re-enter new password: Confirm the password Remove anonymous users? Y Disallow root login remotely? Y Remove test database and access to it? Y Reload privilege tables now? Y

Последнее, необходимо заменить cnf.ini файл по умолчанию в /etc/ для MariaDB. Но для начала нужно перейти в:

$ cd /usr/share/mysql

И использовать один из предопределенных cnf.ini конфигураций которые доступны (Huge, Medium и Small) в данной папке.

Сделаем резервное копирование cnf.ini файла:

$ sudo mv /etc/cnf.ini /etc/cnf.ini.bak

Затем скопируйте один из предварительных конфигураций в MariaDB:

$ sudo cp /usr/share/mysql/my-huge.cnf /etc/cnf.ini

Перезапуск MaraiDB:

$ systemctl restart mysql

Можно проверить статус:

$ systemctl status mariadb

Можно добавить MariaBD в автозагрузку ОС:

$ systemctl enable mariadb

Мне нужно создать пользователя и чтобы он мог подключатся из любого компьютера, для этого:

$ mysql -uroot -u >GRANT ALL PRIVILEGES ON *.* TO "captain"@"%" IDENTIFIED BY "my_password" WITH GRANT OPTION; > exit

Проверим какой порт прослушивает MariaDB с помощью команды SS:

# ss -tnlp | grep 3306 LISTEN 0 0 127.0.0.1:3306 *:* users:(("mysqld",1159,14))

Мой выглядит вот так (я разрешил удаленное подключение к серверу БД):

LISTEN 0 50 *:3306 *:* users:(("mysqld",10884,13))

Установка MariaDB 10 на CentOS 7 завершена.