Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.
Этап 1. Инсталлируем MariaDB
Репозитории регулярно обновляют, в них размещают стабильные версии утилит. Дистрибутивы же включают устаревшие релизы, актуальные на момент сборки, поэтому их необходимо обновлять, чтобы избежать несовместимости. Выполняется процедура командой:
Теперь можно устанавливать нужный нам пакет:
sudo apt install mariadb-serverИнсталляция проходит без запроса пароля, без внесения иных изменений в конфигурацию. В таком виде использовать MariaDB на сервере нежелательно, потому что она будет работать в небезопасном режиме. Чтобы исправить ситуацию применим скрипт mysql_secure_installation, поставляемый в комплекте с программным обеспечением. Он блокирует доступ к серверу, исключит учетки.
Скрипт безопасности изменяет незащищенные опции, устанавливаемые по умолчанию. Например, создаются тестовые аккаунты, возможность удаленного подключения под учеткой root. Это потенциально создает опасность взлома, несанкционированного доступа к информации, хранящейся в созданной базе данных.
Запуск скрипта следующей командой:
sudo mysql_secure_installationОна запускает цепочку открытия диалогов, позволяющих изменить параметры безопасности БД. Первый запрос относится к аккаунту root, система запросит пароль для активной базы данных. Если он еще не настроен, достаточно нажать Enter. Это укажет, что защита пока отсутствует.
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):Следующий диалог предлагает ввести пароль пользователя root в MariaDB. Это стоит сделать сразу, если используется метод аутентификации, отличный от unix socket, иначе любой желающий сможет зайти в систему с пустым или вообще любым паролем. Поэтому отвечаем на запрос Y (Yes) и нажимаем Enter.
. . .
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] YТеперь взаимодействие с MariaDB будет возможно только после ввода правильного пароля. Завершим настройку – на все последующие вопросы можно ответить утвердительно нажатием клавиши Y (Yes) и подтверждением кнопкой Enter.
Система самостоятельно удалит тестовую БД, анонимные учетки, отключит доступ через аккаунт root, загрузит обновленные правила. Установка и настройка пакета MariaDB завершена, можно приступать к эксплуатации. Или пройти необязательный этап по созданию администратора для активации доступа по паролю.
Этап 3. Создадим аккаунт с администраторскими правами
По умолчанию в Ubuntu**** установка MariaDB осуществляется при помощи плагина unix_socket, поэтому запрос пароля не применяется. В большинстве случаев такой подход дает высокий уровень безопасности. Но одновременно усложняет администрирование, например, через phpMyAdmin. При старте-остановке сервера, управлении журналами используется учетка root.
Именно поэтому мы не стали менять ее данные. Но при обновлении пакета они могут измениться «самостоятельно», поэтому лучше сразу включить работу по паролю. В качестве примера создадим учетку с названием admin и зададим ей те же права, что и у root. Сначала откройте командную строку MariaDB:
И уже в ней создайте нового пользователя:
GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;Вместо admin и password задайте любые предпочитаемые комбинации. Так, имя часто задают «нестандартное», чтобы усложнить взлом путем подбора пароля. После создания аккаунта сделаем очистку привилегий с сохранением настроек в текущем сеансе.
Теперь можно закрывать оболочку:
Остается провести**** тестирование MariaDB, чтобы убедиться в корректности настроек.
При инсталляции системы СУБД из официального репозитория устанавливает настройки, чтобы модуль MariaDB запускался автоматом. Но все равно лучше вручную проверить его статус:
sudo systemctl status mariadbВывод на экран будет выглядеть так:
Если утилита не запущена, это нужно сделать вручную, заодно следует запустить службу:
sudo systemctl enable mariadb
sudo systemctl start mariadbПосле принудительного запуска можно сделать пробное подключение к базе данных при помощи mysqladmin. Эта утилита позволяет обращаться к БД с правами администратора, запускать команды и изменять настройки. Приведем пример подключения с выводом номера версии:
Вывод на экран будет выглядеть так:
mysqladmin Ver 9.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2019, Oracle, MariaDB Corporation Ab and others.
Server version 10.3.22-MariaDB-1ubuntu1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 5 min 39 sec
Threads: 7 Questions: 467 Slow queries: 0 Opens: 177 Flush tables: 1 Open tables: 31 Queries per second avg: 1.615Если был настроен доступ при помощи пароля администратора, подойдет команда:
mysqladmin -u admin -p versionВывод текущей версии подтверждает, что база данных запущена и функционирует, а пользователь имеет доступ к ее содержимому.
Нужен сервер для практики? Арендуйте VPS/VDS в России — root-доступ, NVMe, DDoS-защита и поддержка 24/7.