MariaDB – это открытая система управления базами данных. Она часто используется как альтернатива MySQL в стеке LAMP (Linux, Apache, MySQL, PHP/Python/Perl).
Если вкратце, установить MariaDB можно в три этапа:
- Обновить индекс пакетов с помощью менеджера пакетов apt
- Установить пакет mariadb-server с помощью apt (в этот пакет включены все необходимые инструменты для взаимодействия с MariaDB).
- Запустить сценарий безопасности mysql_secure_installation, который ограничит доступ к серверу.
Все эти действия выполнят следующие команды:
sudo apt update
sudo apt install mariadb-server
sudo mysql_secure_installation
Этот мануал поможет вам установить MariaDB на сервер Ubuntu 20.04, проверить установку и выполнить настройку безопасности.
Требования
Для работы вам понадобится сервер Ubuntu 20.04 с пользователем sudo. Все инструкции можно найти в этом мануале.
1: Установка MariaDB
В Ubuntu 20.04 версия MariaDB 10.3 по умолчанию включена в репозиторий APT.
Чтобы установить ее, сначала обновите индекс пакетов с помощью менеджера apt:
sudo apt update
Затем установите пакет:
sudo apt install mariadb-server
Система MariaDB установлена на ваш сервер. Теперь вы должны самостоятельно установить пароль и внести изменения в конфигурацию. Поскольку стандартная конфигурация оставляет в установке MariaDB несколько уязвимостей, нам нужно запустить скрипт безопасности, который идет с пакетом mariadb-server по умолчанию. Он ограничит доступ к серверу и удалит неиспользуемые учетные записи.
2: Настройка MariaDB
Следующий шаг после установки MariaDB – запуск стандартного скрипта безопасности. Он изменяет некоторые рискованные параметры по умолчанию, блокирует удаленный вход в систему и удаляет неиспользуемые учетные записи.
Запустите скрипт:
sudo mysql_secure_installation
Скрипт задаст вам ряд вопросов, при помощи которых вы сможете внести некоторые изменения в параметры безопасности MariaDB. Первое диалоговое окно попросит вас ввести текущий 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 пароль. Введите N и нажмите клавишу Enter. В Ubuntu root пользователь MariaDB тесно связан с автоматическим обслуживанием системы, поэтому изменять настроенные методы аутентификации для этой учетной записи нельзя. Иначе при обновлении MariaDB пароль будет сброшен, и вы потеряете доступ к root.
. . .
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] N
Позже мы расскажем о том, как создать дополнительную учетную запись администратора и настроить парольный доступ (если аутентификация по сокету вам не подходит).
На все остальные запросы вы можете нажать Y, а затем Enter, чтобы принять ответы по умолчанию. Это удалит анонимных пользователей и тестовые базы данных, отключит удаленный root доступ и обновит параметры, чтобы MariaDB немедленно реализовала внесенные вами изменения.
3: Настройка аутентификации и привилегий (опционально)
В системе Ubuntu пользователь root по умолчанию поддерживает аутентификацию с помощью плагина unix_socket, а не парольную аутентификацию. Это во многих случаях повышает безопасность и удобство использования, но также может усложнить работу, если вам необходимо разрешить доступ внешней программе (например, phpMyAdmin).
Поскольку сервер использует root-пользователя для таких задач, как ротация логов, запуск и остановка сервера, метод аутентификации учетной записи root лучше не менять. Изменение учетных данных в файле /etc/mysql/debian.cnf может сработать на начальном этапе, но последующее обновление пакетов перезапишет все изменения. Вместо этого разработчики рекомендуют создать отдельную учетную запись администратора с парольной аутентификацией.
Итак, создайте аккаунт под названием admin с теми же правами, что и у root, но с поддержкой парольной аутентификации. Для этого откройте командную строку MariaDB:
sudo mariadb
Затем создайте нового пользователя с привилегиями root и поддержкой парольной аутентификации. Укажите в команде имя и пароль своего пользователя.
GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
Сбросьте привилегии, чтобы обновить настройки:
FLUSH PRIVILEGES;
Закройте оболочку MariaDB:
exit
4: Тестирование MariaDB
При установке из стандартного репозитория MariaDB запускается автоматически. Чтобы убедиться в этом, проверьте состояние сервиса:
sudo systemctl status mariadb
Вы получите подобный вывод:
mariadb.service - MariaDB 10.3.22 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-05-12 13:38:18 UTC; 3min 55s ago
Docs: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 25914 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 31 (limit: 2345)
Memory: 65.6M
CGroup: /system.slice/mariadb.service
└─25914 /usr/sbin/mysqld
. . .
Если MariaDB по какой-то причине не запустилась, введите:
sudo systemctl start mariadb
Для дополнительной проверки можно подключиться к базе данных с помощью mysqladmin (это клиент, который позволяет запускать административные команды). Например, эта команда подключится к MariaDB как root и выведет версию с помощью Unix-сокета:
sudo mysqladmin version
Вы получите такой вывод:
mysqladmin Ver 9.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2018, 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: 4 min 49 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
Теперь СУБД MariaDB запущена и работает должным образом.
Заключение
Вы успешно создали базовую установку MariaDB и научились создавать дополнительных пользователей с поддержкой парольной аутентификации.
Теперь вы можете добавить в СУБД свои данные или обеспечить более надежную защиту своему серверу. Также можно установить другие программы из стека LEMP или LАMP.
Читайте также: