Как установить и защитить phpMyAdmin с помощью Apache в Debian 9

phpMyAdmin — это бесплатное приложение на основе PHP с открытым исходным кодом, предназначенное для упрощения администрирования серверов MySQL и MariaDB через веб-интерфейс.

phpMyAdmin позволяет управлять базами данных MySQL, учетными записями и привилегиями пользователей, выполнять SQL-запросы, импортировать и экспортировать данные в самых разных форматах данных и многое другое.

В этом руководстве описаны шаги, необходимые для установки и защиты phpMyAdmin в Debian 9 с помощью веб-сервера Apache.

Подготовка

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

Хотя это необязательно, рекомендуется получить доступ к вашей установке phpMyAdmin через HTTPS. Если ваш домен еще не защищен SSL, вы можете следовать этому руководству и защитить свой Apache с помощью Let's Encrypt в Debian 9 .

Установка phpMyAdmin

Выполните следующие шаги для установки phpMyAdmin в Debian 9:

  1. Обновите индекс пакета и обновите системные пакеты до последних версий:

     sudo apt update && sudo apt upgrade
  2. Установите пакет phpMyAdmin из репозиториев Debian по умолчанию, набрав:

     sudo apt install phpmyadmin

    Установщик попросит вас выбрать веб-сервер, который должен быть автоматически настроен для запуска phpMyAdmin, выберите apache, нажав Space и затем Enter .

    Затем вас спросят, использовать ли dbconfig-common для настройки базы данных, выберите « Yes и нажмите Enter .

    Введите пароль для регистрации phpMyAdmin в базе данных, выберите OK и нажмите Enter .

    Подтвердите пароль, выберите OK и нажмите Enter .

  3. После завершения процесса установки перезапустите Apache, чтобы изменения вступили в силу:

     sudo systemctl restart apache2

Создание администратора MySQL

В системах Debian под управлением MariaDB 10.1 (и более поздних версий) пользователь root по умолчанию настроен на использование auth_socket аутентификации auth_socket .

Плагин auth_socket аутентифицирует пользователей, которые подключаются с локального хоста через файл сокета Unix. Это означает, что вы не можете пройти аутентификацию как root, указав пароль.

Вместо изменения метода аутентификации для корневого пользователя MySQL мы создадим нового административного пользователя MySQL. Этот пользователь будет иметь те же привилегии, что и пользователь root, и будет настроен на использование mysql_native_password аутентификации mysql_native_password .

Мы будем использовать этого пользователя для входа в панель управления phpMyAdmin и выполнения административных задач на нашем сервере MySQL или MariaDB.

Начните с входа на сервер MySQL в качестве пользователя root:

sudo mysql

Из оболочки MySQL выполните следующие команды, которые создадут нового пользователя-администратора и предоставят соответствующие разрешения:

CREATE USER 'padmin'@'localhost' IDENTIFIED BY 'super-strong-password';GRANT ALL PRIVILEGES ON *.* TO 'padmin'@'localhost' WITH GRANT OPTION;
Мы назвали администратора padmin . Вы можете использовать любое имя, только не забудьте установить надежный пароль.

Доступ к phpMyAdmin

Чтобы получить доступ к интерфейсу phpMyAdmin, откройте свой любимый браузер и введите доменное имя вашего сервера или общедоступный IP-адрес, а затем /phpmyadmin :

https://your_domain_or_ip_address/phpmyadmin

Введите учетные данные пользователя с правами администратора, которые вы создали ранее, и нажмите « Go .

После входа в систему вы увидите панель управления phpMyAdmin, которая будет выглядеть примерно так:

Защита phpMyAdmin

Чтобы добавить дополнительный уровень безопасности, мы защитим паролем каталог phpMyAdmin, настроив базовую аутентификацию.

Сначала мы создадим файл паролей с пользователями, используя инструмент htpasswd , который поставляется с пакетом Apache. Мы будем хранить файл .htpasswd каталоге /etc/phpmyadmin :

sudo htpasswd -c /etc/phpmyadmin/.htpasswd padmin

В этом примере мы создаем пользователя с именем padmin . Вы можете выбрать любое имя пользователя, оно не обязательно должно совпадать с именем администратора MySQL.

Приведенная выше команда предложит вам ввести и подтвердить пароль пользователя.

New password:
Re-type new password:
Adding password for user padmin

Если вы хотите добавить дополнительного пользователя, вы можете использовать ту же команду без флага -c :

sudo htpasswd /etc/phpmyadmin/.htpasswd padmin2

Следующим шагом является настройка Apache для защиты паролем каталога phpMyAdmin и использования файла .htpasswd .

Для этого откройте файл phpmyadmin.conf который был автоматически создан во время установки phpMyAdmin:

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

И отредактируйте / вставьте следующие строки, выделенные желтым:

/etc/apache2/conf-available/phpmyadmin.conf
<Directory /usr/share/phpmyadmin>
    Options  +FollowSymLinks +Multiviews +Indexes  # edit this line
    DirectoryIndex index.php

    AllowOverride None
    AuthType basic
    AuthName "Authentication Required"
    AuthUserFile /etc/phpmyadmin/.htpasswd
    Require valid-user

    <IfModule mod_php5.c>
    ...

Сохраните и закройте файл и перезапустите Apache, чтобы изменения вступили в силу:

sudo systemctl restart apache2

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

https://your_domain_or_ip_address/phpmyadmin

После входа в базовую аутентификацию вы попадете на страницу входа phpMyAdmin, где вам нужно будет ввести учетные данные администратора MySQL.

Также рекомендуется изменить псевдоним /phpmyadmin на более уникальный и безопасный.

Выводы

Поздравляем, вы успешно установили phpMyAdmin на свой сервер Debian 9. Теперь вы можете начать создавать базы данных MySQL, пользователей и таблицы, а также выполнять различные запросы и операции MySQL.

Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

Оставьте комментарий