MariaDB - это система управления реляционными базами данных с открытым исходным кодом, обычно используемая в качестве альтернативы MySQL как часть базы данных популярного стека LAMP (Linux, Apache, MySQL, PHP/Python/Perl). Она предназначена для замены MySQL.
Вступление
Для выполнения этого руководства вам понадобится сервер под управлением Ubuntu. На этом сервере должен быть административный пользователь без права root и брандмауэр, настроенный на UFW.
Краткая версия этого руководства по установке состоит из следующих трех шагов:
- Обновите индекс пакетов с помощью apt
- Установите пакет mariadb-server с помощью apt. Пакет также содержит сопутствующие инструменты для взаимодействия с MariaDB.
- Запустите прилагаемый скрипт безопасности mysql_secure_installation, чтобы ограничить доступ к серверу
1 2 3 | sudo apt update sudo apt install mariadb-server sudo mysql_secure_installation |
В этом руководстве мы объясним, как установить MariaDB на сервер Ubuntu 22.04 и проверить, что он работает и имеет безопасную начальную конфигурацию.
Установка MariaDB в Ubuntu Linux
Шаг 1 - Установка MariaDB
На момент написания этой статьи в APT-репозитории Ubuntu 22.04 по умолчанию установлена MariaDB версии 10.6.11.
Чтобы установить ее, обновите индекс пакетов на вашем сервере с помощью apt:
1 | sudo apt update |
Затем установите пакет:
1 | sudo apt install mariadb-server |
Эти команды установят MariaDB, но не попросят вас установить пароль или внести какие-либо другие изменения в конфигурацию. Поскольку конфигурация по умолчанию оставляет вашу установку MariaDB незащищенной, вы будете использовать сценарий, который предоставляет пакет mariadb-server, чтобы ограничить доступ к серверу и удалить неиспользуемые учетные записи.
Шаг 2 - Настройка MariaDB
Для новых установок MariaDB следующим шагом будет запуск прилагаемого скрипта безопасности. Этот сценарий изменяет некоторые менее безопасные параметры по умолчанию для таких вещей, как удаленный вход в систему с правами root и образцы пользователей.
Запустите сценарий безопасности:
1 | sudo mysql_secure_installation |
Это приведет вас к серии подсказок, в которых вы сможете внести некоторые изменения в параметры безопасности вашей установки MariaDB. Первое приглашение попросит вас ввести текущий пароль корня базы данных. Поскольку вы его еще не установили, нажмите ENTER, чтобы указать "none".
Вас спросят, хотите ли вы перейти на аутентификацию через сокеты unix. Поскольку у вас уже есть защищенная учетная запись root, вы можете пропустить этот шаг. Введите n и нажмите ENTER.
Установка пароля root или использование unix_socket гарантирует, что никто не сможет не сможет войти в систему под пользователем MariaDB root без соответствующей авторизации.
Ваша учетная запись root уже защищена, поэтому вы можете смело ответить 'n'.
Следующее приглашение спросит вас, хотите ли вы установить пароль root пользователя базы данных. В Ubuntu учетная запись root для MariaDB тесно связана с автоматическим обслуживанием системы, поэтому не следует изменять настроенные методы аутентификации для этой учетной записи.
Это приведет к тому, что обновление пакета может сломать систему баз данных, удалив доступ к административной учетной записи. Введите n и нажмите ENTER.
Позже вы узнаете, как настроить дополнительную административную учетную запись для доступа по паролю, если аутентификация по сокету не подходит для вашего случая использования.
После этого вы можете нажать Y, а затем ENTER, чтобы принять значения по умолчанию для всех последующих вопросов. В результате будут удалены некоторые анонимные пользователи и тестовая база данных, отключены удаленные логины root, а также загружены новые правила, так что MariaDB немедленно применит сделанные вами изменения.
На этом вы закончили начальную настройку безопасности MariaDB. Следующий шаг является необязательным, хотя вам следует выполнить его, если вы предпочитаете аутентифицироваться на сервере MariaDB с помощью пароля.
Шаг 3 - (Необязательно) Создание пользователя с правами администратора, использующего аутентификацию по паролю
На системах Ubuntu, работающих с MariaDB 10.6, root пользователь MariaDB по умолчанию аутентифицируется с помощью плагина unix_socket, а не с помощью пароля. Это позволяет повысить безопасность и удобство использования во многих случаях, но это также может усложнить ситуацию, когда вам нужно предоставить административные права внешней программе (например, phpMyAdmin).
Поскольку сервер использует учетную запись root для таких задач, как ротация журналов, запуск и остановка сервера, лучше не изменять данные аутентификации учетной записи root. Изменение учетных данных в конфигурационном файле /etc/mysql/debian.cnf может сработать на начальном этапе, но обновления пакетов могут перезаписать эти изменения. Вместо модификации учетной записи root сопровождающие пакета рекомендуют создать отдельную административную учетную запись для доступа по паролю.
Для этого мы создадим новую учетную запись под названием admin с теми же возможностями, что и учетная запись root, но настроенную на аутентификацию по паролю. Откройте приглашение MariaDB из терминала:
1 | sudo mariadb |
Затем создайте нового пользователя с привилегиями root и доступом по паролю. Не забудьте изменить имя пользователя и пароль в соответствии с вашими предпочтениями:
1 | GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION; |
Замените password на ваш пароль
Промойте привилегии, чтобы убедиться, что они сохранены и доступны в текущей сессии:
1 | FLUSH PRIVILEGES; |
После этого выйдите из оболочки MariaDB:
1 | exit |
Наконец, давайте протестируем установку MariaDB.
Шаг 4 - Тестирование MariaDB
После установки из репозиториев по умолчанию, MariaDB начнет работать автоматически. Чтобы проверить это, проверьте ее статус.
1 | sudo systemctl status mariadb |
Вы получите вывод, похожий на следующий:
Если MariaDB не запущена, вы можете запустить ее командой sudo systemctl start mariadb.
Для дополнительной проверки можно попробовать подключиться к базе данных с помощью инструмента mysqladmin, который представляет собой клиент, позволяющий выполнять административные команды. Например, эта команда предлагает подключиться к MariaDB от имени root, используя сокет Unix, и вернуть версию:
1 | sudo mysqladmin version |
Вы получите вывод, подобный этому:
Заключение
В этом руководстве вы установили систему управления реляционными базами данных MariaDB и обеспечили ее безопасность с помощью скрипта mysql_secure_installation, с которым она поставляется. У вас также была возможность создать нового административного пользователя, использующего аутентификацию по паролю, прежде чем тестировать функциональность сервера MariaDB.