Поиск по сайту:

Установите phpMyAdmin со стеком LEMP в Ubuntu 20.04 LTS

Мы уже знаем, как установить phpMyAdmin со стеком LAMP в Ubuntu 20.04. Сегодня давайте посмотрим, как установить phpMyAdmin со стеком LEMP в версии Ubuntu 20.04 LTS. А затем мы также обсудим несколько мер безопасности, которые помогут защитить phpmyadmin от распространенных угроз. Сначала убедитесь, что у вас настроен стек LEMP в Ubuntu 20.04, как описано в следующей ссылке.

  • Установить Nginx, MySQL, PHP (стек LEMP) в Ubuntu 20.04 LTS

После установки стека LEMP установите и защитите phpMyAdmin, как описано в следующих разделах.

Установите phpMyAdmin со стеком LEMP в Ubuntu 20.04 LTS

Запустите следующую команду, чтобы установить phpMyAdmin из терминала:

sudo apt install phpmyadmin

В следующем окне вам будет предложено выбрать веб-сервер, который должен быть автоматически настроен для запуска phpMyAdmin. Как вы можете видеть на снимке экрана ниже, Nginx недоступен в списке веб-серверов. Здесь перечислены только Apache и Lighthttpd. Поэтому не выбирайте какой-либо веб-сервер и просто оставьте его пустым. Выберите «ОК» и нажмите «ENTER», чтобы продолжить:

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

PhpMyAdmin требует, чтобы база данных была установлена и настроена, прежде чем ее можно будет использовать. Вы можете сделать это с помощью команды dbconfig.

Выберите Да, чтобы настроить базу данных для phpmyadmin с помощью dbconfig-common:

Настройте базу данных для phpmyadmin с помощью dbconfig-common

Вам необходимо предоставить пароль для phpmyadmin для регистрации на сервере базы данных MySQL. Если пароль не указан, будет сгенерирован случайный пароль.

Введите надежный пароль и нажмите ENTER, чтобы продолжить:

Введите пароль приложения MySQL для phpmyadmin

Повторно введите пароль:

Повторно введите пароль приложения MySQL для phpmyadmin.

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

 An error occurred while installing the database:
mysql said: ERROR 1819 (HY000) at line 1: Your password does not satisfy
 the current policy requirements . Your options are:                                  
* abort - Causes the operation to fail; you will need to downgrade,             
reinstall, reconfigure this package, or otherwise manually intervene          
to continue using it. This will usually also impact your ability to           
install other packages until the installation failure is resolved.            
* retry - Prompts once more with all the configuration questions                
(including ones you may have missed due to the debconf priority               
setting) and makes another attempt at performing the operation.               
* retry (skip questions) - Immediately attempts the operation again,            
skipping all questions. This is normally useful only if you have 
solved the underlying problem since the time the error occurred.              
* ignore - Continues the operation ignoring dbconfig-common errors.             
This will usually leave this package without a functional database.

mysql сказал: ОШИБКА 1819 (HY000) в строке 1: ваш пароль не соответствует текущим требованиям политики.

Эта ошибка возникает из-за того, что мы включили компонент ПОДТВЕРДИТЬ ПАРОЛЬ, как описано в разделе "2.2 Изменение метода аутентификации для root-пользователя MySQL" в прилагаемом выше руководстве по установке стека LEMP.

Чтобы решить эту проблему, вам необходимо временно отключить компонент «Проверка пароля» и снова включить его после установки пароля для phymyadmin. Нажмите «ОК», чтобы закрыть приведенное выше сообщение об ошибке, и выберите «Прервать», чтобы отменить установку phpmyadmin.

Отмените установку phpmyadmin

Теперь войдите в командную строку Mysql, выполнив следующую команду:

mysql -u root -p

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

mysql> UNINSTALL COMPONENT "file://component_validate_password";

Обратите внимание, что приведенная выше команда только отключит плагин, но не удалит его. Вы можете включить его позже. Затем введите «exit», чтобы выйти из командной строки Mysql.

mysql> exit

Отключите плагин проверки пароля в MySQL.

Теперь попробуйте снова установить phpmyadmin, используя команду:

sudo apt install phpmyadmin

Выберите «Да» и нажмите ENTER, чтобы настроить базу данных для phpmyadmin с помощью dbconfig-common. На этот раз установка phpmyadmin пройдет без проблем.

После установки phpmyadmin повторно включите плагин проверки пароля. Для этого войдите в командную строку Mysql:

mysql -u root -p

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

mysql> INSTALL COMPONENT "file://component_validate_password";

Введите exit, чтобы выйти из командной строки MySQL.

mysql> exit

Включите плагин проверки пароля в MySQL

Теперь создайте символическую ссылку для настройки веб-сервера Nginx для запуска phpmyadmin с помощью команды:

sudo ln -s /usr/share/phpmyadmin/ /var/www/html/phpmyadmin

Эта команда создаст символическую ссылку с именем «phpmyadmin» в корневом каталоге Nginx. Эта символическая ссылка фактически указывает на каталог /usr/share/phpmyadmin, где хранятся файлы.

Сделанный! Мы успешно установили PhpMyAdmin со стеком LEMP.

Доступ к панели управления phpMyAdmin

Откройте веб-браузер и перейдите по адресу "http://IP-Address/phpmyadmin" в адресной строке.

Вы должны увидеть страницу входа в phpmyadmin. Введите пользователя базы данных и его пароль:

Страница входа в Phpmyadmin

Вы будете довольны панелью управления phpMyAdmin.

Панель управления phpMyAdmin

Отсюда вы можете создавать, удалять базы данных и управлять ими.

Создайте выделенного пользователя для доступа к панели управления phpMyAdmin.

После установки phpMyAdmin будет автоматически создан пользователь базы данных с именем 'phpmyadmin' и паролем администратора, который вы установили во время установки. Вы можете войти в панель управления phpmyAdmin, используя пользователя «phpmyadmin» или пользователя root mysql, как показано выше. Однако рекомендуется создать выделенного пользователя для управления базами данных через веб-интерфейс phpMyAdmin.

Для этого войдите в оболочку MySQL с помощью команды:

mysql -u root -p

Введите свой root-пароль MySQL. Теперь вы будете в оболочке MySQL.

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

mysql> CREATE USER 'phpmyadminuser'@'localhost' IDENTIFIED BY 'Password123#@!';

Здесь phpmyadmin — новый пользователь для доступа к панели управления phpmyadmin. Пароль для phpmyadminuser: Password123#@!. Замените эти значения своими.

Затем дайте соответствующие привилегии пользователю «phpmyadminuser», используя команду:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadminuser'@'localhost' WITH GRANT OPTION;

Наконец выйдите из оболочки MySQL:

mysql> exit

Создать нового пользователя для phpmyadmin

Теперь мы создали выделенного пользователя для управления базами данных через веб-интерфейс phpmyadmin. Давайте продолжим и получим доступ к панели управления phpmyadmin.

Откройте веб-браузер и перейдите по адресу «http://IP-адрес/phpayadmin». Введите вновь созданного пользователя базы данных и его пароль. Поздравляем! Вы вошли в систему как выделенный пользователь на веб-панели phpMyAdmin.

Выделенный пользователь для доступа к панели управления phpMyAdmin.

Безопасный phpMyAdmin

В этом разделе приведены несколько советов по обеспечению безопасности установки PhpMyAdmin. Обратите внимание, что следующие шаги сами по себе не смогут защитить phpMyAdmin на 100%. Однако они, по крайней мере, замедлят любые попытки злоумышленника проникнуть в вашу панель управления phpmyadmin.

Отключить root-вход MySQL на панель управления phpmyadmin

Разрешение пользователю root mysql доступа к панели управления phpMyAdmin небезопасно, особенно при управлении базами данных по сети. Вот почему в предыдущем разделе мы создали выделенного пользователя. Поскольку у нас уже есть выделенный пользователь, мы можем безопасно отключить root-вход в MySQL для доступа к панели управления phpmyadmin, чтобы минимизировать атаки.

Обычно phpmyadmin устанавливается в каталог /usr/share/phpmyadmin/, а его файлы конфигурации хранятся в каталоге /etc/phpmyadmin.

Отредактируйте файл конфигурации phpmyadmin:

sudo nano /etc/phpmyadmin/config.inc.php

Добавьте/измените следующие параметры:

[...]
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['AllowRoot'] = FALSE;
[...]

Отредактируйте файл конфигурации phpmyadmin

Сохраните и закройте файл.

Перезапустите веб-сервер Nginx с помощью команды:

sudo systemctl restart nginx

Теперь попробуйте войти в phpmyadmin как пользователь root. Вы получите сообщение об ошибке Доступ запрещен:

Отключить root-вход MySQL на панель управления phpmyadmin

Изменить URL-адрес веб-интерфейса phpmyadmin

Это наиболее распространенная тактика, которую используют боты для получения доступа к phpmyadmin. Вы можете предотвратить это, изменив URL-адрес на что-то, что трудно угадать. Изменение URL-адреса phpmyadmin позволит избежать использования ботов или автоматических сценариев для сканирования URL-адресов и атак методом перебора.

Помните, мы создали символическую ссылку под названием «phpmyadmin» в корневом каталоге Nginx?

$ ls -l /var/www/html/
total 8
-rw-r--r-- 1 root root 612 Jun  2 07:15 index.nginx-debian.html
-rw-r--r-- 1 root root  20 Jun  2 07:35 info.php
lrwxrwxrwx 1 root root  22 Jun  2 08:14 phpmyadmin -> /usr/share/phpmyadmin/

Здесь phpmyadmin — это символическая ссылка, указывающая на каталог /usr/share/phpmyadmin.

Мы собираемся изменить имя символической ссылки с помощью команды:

sudo mv /var/www/html/phpmyadmin /var/www/html/ostechnix

Убедитесь, что имя содержит случайные символы и его очень сложно угадать.

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

Изменить URL-адрес веб-интерфейса phpmyadmin

Потому что мы изменили URL. Новый URL-адрес phpmyadmin — http://IP-адрес/ostechnix.

Защитите phpmyadmin, изменив URL-адрес веб-интерфейса phpmyadmin по умолчанию.

Защищенная паролем страница входа в phpMyAdmin

Мы можем добавить дополнительный уровень безопасности, ограничив доступ к странице входа в phpmyadmin с помощью базового метода аутентификации HTTP. Это означает, что мы включаем защиту паролем для страницы входа в phpmyadmin, поэтому пользователям придется вводить дополнительное имя пользователя/пароль перед доступом к фактической странице входа в phpMyAdmin.

Сначала нам нужно сгенерировать файл паролей с помощью утилиты htpasswd. Утилита htpasswd является частью пакета apache2-utils. Итак, давайте установим его с помощью команды:

sudo apt install apache2-utils

Теперь создайте зашифрованный файл паролей с помощью команды:

sudo htpasswd -c /etc/nginx/.htpasswd ostechnix

Замените «ostechnix» на имя пользователя по вашему выбору. Введите надежный пароль дважды, чтобы создать файл паролей.

Чтобы просмотреть содержимое вновь созданного файла, введите команду «cat», как показано ниже:

cat /etc/nginx/.htpasswd

Вы увидите результат, как показано ниже:

ostechnix:$apr1$Us9YABHL$CMPDIuHaOB2lK/DVIzA2C/

Далее нам нужно указать путь к указанному выше файлу паролей в нашем файле конфигурации Nginx по умолчанию. Если вы следовали нашему руководству по установке LEMP, приложенному выше, конфигурация Nginx по умолчанию должна быть /etc/nginx/sites-available/default.

Отредактируйте файл конфигурации Nginx по умолчанию:

sudo nano /etc/nginx/sites-available/default

Добавьте следующие строки под блоком location»:

[...]
location /ostechnix {
                auth_basic "Restricted Zone";
                auth_basic_user_file /etc/nginx/.htpasswd;
        }
[...]

Настройка Nginx для базовой аутентификации HTTP

Помните, мы изменили URL-адрес phpMyAdmin (http://IP-адрес/ostechnix) на предыдущем шаге? Вот почему я упомянул имя блока «ostechnix» в приведенном выше блоке. Замените его на свой. Сохраните и закройте файл.

Проверьте файл конфигурации Nginx на наличие синтаксических ошибок с помощью команды:

sudo nginx -t

Пример вывода:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Если вы не видите ошибок, перезапустите службу nginx, чтобы изменения вступили в силу.

sudo systemctl restart nginx

Теперь попробуйте получить доступ к URL-адресу phpMyAdmin из браузера. Вам будет предложено ввести имя пользователя и пароль:

Защищенная паролем страница входа в phpMyAdmin

Введите правильное имя пользователя и пароль, которые будут созданы ранее с помощью утилиты «htpasword». Теперь вы будете перенаправлены на фактическую страницу входа в phpMyAdmin, где вы можете ввести пользователя базы данных и его пароль для входа в веб-панель phpMyAdmin.

Статьи по данной тематике