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

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

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

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

Подготовка

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

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

Установка phpMyAdmin

Чтобы установить phpMyAdmin на свой сервер Ubuntu 18.04, выполните следующие действия:

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

     sudo apt update && sudo apt upgrade
  2. Установите пакет phpMyAdmin из репозиториев Ubuntu по умолчанию с помощью следующей команды:

     sudo apt install phpmyadmin

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

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

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

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

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

     sudo systemctl restart apache2

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

В системах Ubuntu под управлением MySQL 5.7 (и более поздних версий) пользователь 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 на свой сервер Ubuntu 18.04. Теперь вы можете начать создавать базы данных MySQL, пользователей и таблицы, а также выполнять различные запросы и операции MySQL.

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

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