MySQL Установка и обеспечение безопасности phpMyAdmin в Ubuntu

GOLO

Administrator
Администратор
Premium
Регистрация
31.07.2017
Сообщения
61
Реакции
24
Баллы
8
Страна
Sweden
Native language | Родной язык
Русский


Во-первых, мы установим phpMyAdmin из репозиториев Ubuntu по умолчанию.


Это делается с помощью обновления индекса пакета вашего сервера, после чего с помощью системы управления пакетами APT загружаются файлы и устанавливаются в вашей системе.

Код:
sudo apt update
sudo apt install phpmyadmin php-mbstring php-gettext

На этом этапе вам потребуется ответить на несколько вопросов для корректной настройки установки.


Предупреждение. При появлении первого диалогового окна вариант «apache2» выделен, но не выбран. Если вы не нажмете ПРОБЕЛ для выбора Apache, установщик не будет перемещать необходимые файлы при установке. Нажмите ПРОБЕЛ, затем TAB, а потом ENTER для выбора Apache.

  • Для выбора сервера нажмите apache2
  • Выберите Да при ответе на вопрос о том, необходимо ли использовать dbconfig-common для настройки базы данных.
  • Затем вам будет предложено выбрать и подтвердить пароль приложения MySQL для phpMyAdmin

В процессе установки будет добавлен файл конфигурации phpMyAdmin в каталог /etc/apache2/-enabled/, где он будет считываться автоматически. От вас потребуется только явным образом активировать PHP расширение mbstring, что можно сделать с помощью следующей команды:

Код:
sudo phpenmod mbstring

Перезапустите Apache для вступления изменений в силу.

Код:
sudo systemctl restart apache2

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



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



В системах Ubuntu при запуске MySQL 5.7 (и более поздние версии) для root пользователя MySQL по умолчанию устанавливается аутентификация с помощью плагина auth_socket, а не пароля. Это позволяет обеспечить большую безопасность и удобство во многих случаях, однако это также может осложнить ситуацию, когда вам нужно предоставить внешней программе, например, phpMyAdmin, доступ к пользователю.


Чтобы войти в phpMyAdmin с root пользователем MySQL, вам нужно переключить метод аутентификации с auth_socket на mysql_native_password, если вы еще не сделали этого. Для этого откройте командную строку MySQL через терминал:

Код:
sudo mysql

Затем проверьте, какой метод аутентификации используют ваши аккаунты пользователей MySQL с помощью следующей команды:

Код:
Output
+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | mysql_native_password | localhost |
| phpmyadmin       | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
5 rows in set (0.00 sec)

В этом примере вы можете видеть, что root пользователь действительно использует метод аутентификации с помощью плагина auth_socket. Чтобы настроить для учетной записи root аутентификацию с помощью пароля, выполните следующую команду ALTER USER. Обязательно измените значение password на надежный пароль по вашему выбору:
Код:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Затем выполните команду FLUSH PRIVILEGES, которая просит сервер перезагрузить предоставленные таблицы и ввести в действие изменения:
Код:
FLUSH PRIVILEGES;

Проверьте методы аутентификации, применяемые для каждого из ваших пользователей, чтобы подтвердить, что root пользователь больше не использует для аутентификации плагин auth_socket:
Код:
SELECT user,authentication_string,plugin,host FROM mysql.user;
Код:
Output
+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *DE06E242B88EFB1FE4B5083587C260BACB2A6158 | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | mysql_native_password | localhost |
| phpmyadmin       | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
5 rows in set (0.00 sec)

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



Некоторые могут посчитать, что для их рабочего процесса лучше подходит подключение к phpMyAdmin с помощью специально выделенного пользователя. Чтобы сделать это, снова откройте командную строку MySQL:
Код:
sudo mysql

Примечание. Если вы активировали аутентификацию по паролю, как указано в предыдущем разделе, вам потребуются другие команды для доступа к командной строке MySQL. Следующая команда будет запускать ваш клиент MySQL с обычными правами пользователя, и вы получите права администратора внутри базы данных только с помощью аутентификации:
Код:
mysql -u root -p

Создайте нового пользователя и придумайте для него надежный пароль:

Код:
CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';

Затем предоставьте вашему новому пользователю соответствующие права. Например, вы можете предоставить пользователю права доступа ко всем таблицам в базе данных, а также можете добавлять, изменять и удалять права пользователя с помощью этой команды:

Код:
GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION;

После этого закройте командную строку MySQL:
Код:
exit
Теперь вы можете получить доступ к веб-интерфейсу, набрав доменное имя или открытый IP-адрес вашего сервера и добавив /phpmyadmin:
 
198 098Темы
635 069Сообщения
3 618 396Пользователи
TwixOnFire69Новый пользователь
Верх