Базы данных AlterOffice-cloud

Материал из Wiki AlterOS
Версия от 13:48, 19 сентября 2023; Parkhomenko.av (обсуждение | вклад) (Как проверить сертификаты?)

Перейти к: навигация, поиск

SQLite

SQLite в основном поддерживается для тестовых установок и не рекомендуется для производственных серверов.

MariaDB

MariaDB/MySQL — канонический выбор для AlterOffice-cloud

Установка MariaDB

Установка в общем виде:

   sudo yum install mariadb-server mariadb

Установка инсталлятором для AlterOffice-cloud:

   sudo yum install  MariaDB-server MariaDB-client

Безопасное соединение с MariaDB

Для настроек необходимо, чтобы администрир баз данных был sudoers, т. е. в группе wheel. Чтобы добавить пользователя в группу:

   usermod -aG wheel username

Чтобы удалить пользователя из группы, используйте команду gpasswd с опцией -d следующим образом:

   gpasswd -d wheel username

Улучшение безопасности установки

   mysql_secure_installation

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

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

Сертификаты

Создайте каталог для сертификатов:

   sudo -i mkdir -p /etc/my.cnf.d/ssl/{private,certs}
   cd /etc/my.cnf.d/ssl

При создании сертификатов необходимо корректно заполнить поля, в часности поле CN/Common Name/Общее имя:

  • имя корневого сертификата: MariaDB_CA
  • имя сервера сертификата: MariaDB_server
  • имя клиента сертификата: MariaDB_client

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

   # MariaDB_CA
   sudo -i /usr/bin/openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/my.cnf.d/ssl/private/MariaDB_CA.key -out /etc/my.cnf.d/ssl/certs/MariaDB_CA.crt

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

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

   # MariaDB_server
   sudo -i /usr/bin/openssl  req -newkey rsa:4096 -days 365 -nodes -keyout /etc/my.cnf.d/ssl/private/MariaDB_server.key -out /etc/my.cnf.d/ssl/private/MariaDB_server_req.key

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

   sudo -i openssl rsa -in /etc/my.cnf.d/ssl/private/MariaDB_server.key -out /etc/my.cnf.d/ssl/private/MariaDB_server.key
   # Вывод: writing RSA key

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

   sudo -i openssl x509 -req -in /etc/my.cnf.d/ssl/private/MariaDB_server_req.key -days 365 -CA /etc/my.cnf.d/ssl/certs/MariaDB_CA.crt -CAkey /etc/my.cnf.d/ssl/private/MariaDB_CA.key -set_serial 01 -out /etc/my.cnf.d/ssl/certs/MariaDB_server.crt

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

  • /etc/my.cnf.d/ssl/certs/MariaDB_server.crt – MariaDB файл сертификата сервера.
  • /etc/my.cnf.d/ssl/private/MariaDB_server.key – MariaDB файл ключа сервера.

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

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

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

   # MariaDB_client
   sudo -i /usr/bin/openssl req -newkey rsa:4096 -days 365 -nodes -keyout /etc/my.cnf.d/ssl/private/MariaDB_client.key -out /etc/my.cnf.d/ssl/private/MariaDB_client_req.key

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

   sudo -i openssl rsa -in /etc/my.cnf.d/ssl/private/MariaDB_client.key -out /etc/my.cnf.d/ssl/private/MariaDB_client.key
   # Вывод: writing RSA key

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

   sudo -i openssl x509 -req -in /etc/my.cnf.d/ssl/private/MariaDB_client_req.key -days 365 -CA /etc/my.cnf.d/ssl/certs/MariaDB_CA.crt -CAkey /etc/my.cnf.d/ssl/private/MariaDB_CA.key -set_serial 01 -out /etc/my.cnf.d/ssl/certs/MariaDB_client.crt

Как проверить сертификаты?

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

   openssl verify -CAfile /etc/my.cnf.d/ssl/certs/MariaDB_CA.crt /etc/my.cnf.d/ssl/certs/MariaDB_server.crt /etc/my.cnf.d/ssl/certs/MariaDB_client.crt
   # Примеры возможных выводов данных, когда нет ошибок:
   # /etc/my.cnf.d/ssl/certs/MariaDB_server.crt: OK
   # /etc/my.cnf.d/ssl/certs/MariaDB_client.crt: OK

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

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

Проверка

PostgreSQL

PostgreSQL обеспечивает более высокую производительность и в целом имеет меньше особенностей по сравнению с MariaDB/MySQL.

Oracle

В списке поддерживаемых баз данных также есть база данных Oracle. Этот продукт здесь не будет рассмотрен.