Linux

Как настроить BIND9 в качестве вторичного DNS-сервера в Ubuntu/Debian

Как настроить виртуальные хосты Nginx в Ubuntu/Debian

Как настроить BIND9 в качестве основного DNS-сервера в Ubuntu/Debian

Как установить OpenVPN Server на Ubuntu/Debian

Настройка OpenVPN в Ubuntu/Debian

Как установить сертификат SSL на Nginx для Ubuntu/Debian

Как настроить DNS-сервер BIND9 в Ubuntu/Debian

Как настроить HTTP / 2 в Nginx на Ubuntu/Debian

VPN-сервер с OpenVPN и Stunnel

Настройка веб-сервера

Установка статического IP на сервере

Как из серого IP сделать белый IP?

Переносим Armbian на внешний HDD на Orange Pi PC (Plus)

Настройка Медиа в Majordomo. Orange Pi PC (Plus). Armbian

Установка и настройка Windows терминала

Перенос сайта

Настройка сервера (Rev1)

Установка ssh сервера на Ubuntu/Debian

Установка MajorDoMo на OrangePi

Установка MajorDoMo

Установка phpMyAdmin Ubuntu 20.04

Настройка системы умного дома на базе ESP8266

Установка MAJORDOMO Rev1

Установка сервера MQTT

Установка и настройка сервера на Ubuntu/Debian

Настройка Linux на Orange Pi

Монтирование разделов в Linux

Репозитории Linux

Установка и настройка Orange_CNC

Установка и настройка Armbian и DLNA на Orange Pi PC в картинках

Простой VPN с WireGuard

Nagios – современный и популярный инструмент для мониторинга компьютерных систем и сетей.

Перенос системы на EMMC

Настройки Linux

Удаленный рабочий стол RDP в Linux Armbian

Установка Аndroid OS на Orange Pi Plus

Установка локального сервера BLYNK на любой другой одноплатник с OC Armbian

Установка phpMyAdmin Ubuntu 20.04

Вы можете использовать APT для установки phpMyAdmin из репозиториев Ubuntu по умолчанию.

Обновите индекс пакетов вашего сервера от имени пользователя без прав root с привилегиями sudo:

 

sudo apt-get update

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

php-mbstring: модуль для работы с строками, не поддерживающими кодировку ASCII, и конвертации таких строк в другие кодировки
php-zip: это расширение поддерживает загрузку файлов .zip в phpMyAdmin
php-gd: поддержка библиотеки GD Graphics
php-json: поддержка сериализации JSON для PHP
php-curl: позволяет PHP взаимодействовать с разными типами серверов, используя разные протоколы

Запустите следующую команду для установки этих пакетов в систему. Обратите внимание, что процесс установки требует, чтобы вы ответили на ряд вопросов для корректной настройки phpMyAdmin. 

  

sudo apt-get install phpmyadmin php-mbstring php-zip php-gd php-json php-curl

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

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

Для выбора сервера вы можете выбрать apache2

Предупреждение. При появлении запроса вариант «apache2» выделен, но не выбран.

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

Нажмите ПРОБЕЛ, затем TAB, а потом ENTER для выбора Apache.


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

Затем вам будет предложено выбрать и подтвердить пароль приложения MySQL для phpMyAdmin

Примечание. Если вы установили MySQL, следуя указаниям шага 2 с предварительными требования из руководства для стека LAMP, вы, возможно, активировали плагин Validate Password.

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

Для устранения этой проблемы выберите опцию abort для остановки процесса установки. Затем откройте командную строку MySQL: 

sudo mysql

 Либо, если вы активировали аутентификацию по паролю для пользователя с правами root MySQL, запустите эту команду, а затем введите пароль при запросе: 

mysql -u root -p

 Из командной строки запустите следующую команду для отключения компонента Validate Password. Обратите внимание, что в этом случае выполняется не удаление, а простая остановка загрузки компонента на ваш сервер MySQL:  


UNINSTALL COMPONENT "file://component_validate_password";

  После этого вы можете закрыть клиент MySQL: 

exit

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

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

sudo apt-get install phpmyadmin

 После установки phpMyAdmin вы можете открыть командную строку MySQL еще раз с помощью sudo mysql или mysql -u root -p, а затем запустить следующую команду для повторной активации компонента Validate Password: 

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

INSTALL COMPONENT "file://component_validate_password";

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

sudo phpenmod mbstring

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

sudo systemctl restart apache2

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

Настройка аутентификации и прав пользователя

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

Настройка доступа по паролю для учетной записи root в MySQL


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

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

sudo mysql

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

SELECT user,authentication_string,plugin,host FROM mysql.user;

   

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

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

  

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';

 

Примечание. Предыдущее выражение ALTER USER устанавливает аутентификацию пользователя root MySQL с помощью плагина caching_sha2_password​​. Согласно официальной документации MySQL, caching_sha2_password​​​ считается предпочтительным плагином аутентификации MySQL, так как он обеспечивает более защищенное шифрование пароля, чем более старая, но все еще широко используемая версия mysql_native_password.

Однако некоторые версии PHP работают ненадежно с caching_sha2_password. Как сообщается, эта проблема была устранена в версии PHP 7.4​​​, но если вы получите ошибку при попытке выполнить вход в phpMyAdmin позднее, вы можете задать для root аутентификацию с помощью mysql_native_password:

  

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

 Затем проверьте методы аутентификации, применяемые для каждого из ваших пользователей, чтобы подтвердить, что пользователь root больше не использует для аутентификации плагин auth_socket:

SELECT user,authentication_string,plugin,host FROM mysql.user;

   

Output
+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *DE06E242B88EFB1FE4B5083587C260BACB2A6158 | caching_sha2_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost |
| debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | caching_sha2_password | localhost |
| phpmyadmin       | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | caching_sha2_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
5 rows in set (0.00 sec)

 

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

 Настройка доступа по паролю для выделенного пользователя MySQL

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

sudo mysql

Если вы активировали аутентификацию по паролю для вашего пользователя root, как описано в предыдущем разделе, вам нужно запустить следующую команду и ввести пароль при запросе для подключения:


mysql -u root -p

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

CREATE USER 'sammy'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';

 Примечание. В зависимости от версии PHP, которую вы установили, вы можете задать для вашего нового пользователя аутентификацию с помощью mysql_native_password вместо caching_sha2_password:  

ALTER USER 'sammy'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

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

GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION;

 mysql

 После этого закройте командную строку MySQL:

exit

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

https://your_domain_or_IP/phpmyadmin 

 Обеспечение безопасности phpMyAdmin

Из-за своей вездесущности phpMyAdmin часто становится мишенью для атак, поэтому вам нужно дополнительно позаботиться о предотвращении несанкционированного доступа. Один из способов — это размещение шлюза перед всем приложением с помощью встроенного в Apache функционала авторизации и аутентификации через .htaccess.

Чтобы сделать это, вы должны сначала активировать перезапись файла .htaccess, изменив файл конфигурации Apache вашей установки phpMyAdmin.

Воспользуйтесь предпочитаемым текстовым редактором для редактирования файла phpmyadmin.conf, который находится в каталоге конфигурации Apache. Мы будем использовать nano:

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

 Добавьте директиву AllowOverride All в раздел файла конфигурации <Directory /usr/share/phpmyadmin>, например:

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

    Options FollowSymLinks
    DirectoryIndex index.php
    AllowOverride All
    . . .

 После добавления этой строки сохраните и закройте файл. Если вы использовали nano для редактирования файла, нажмите CTRL + X, Y, а затем ENTER.

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

sudo systemctl restart apache2

 Теперь, когда вы активировали использование файлов .htaccess для вашего приложения, вам нужно создать этот файл для реализации этого уровня защиты.

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

sudo nano /usr/share/phpmyadmin/.htaccess

В этом файле введите следующую информацию:

/usr/share/phpmyadmin/.htaccess

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user


Вот что означает каждая из этих строк:

AuthType Basic: эта строка указывает тип аутентификации, используемый вами. Данный тип подразумевает использование аутентификации по паролю с помощью файла пароля.
AuthName: данная строка устанавливает сообщение для диалогового окна аутентификации. Вы должны указывать только общую информацию, чтобы неавторизованные пользователи не получили никакой информации о том, что вы защищаете.
AuthUserFile: указывает местоположение файла пароля, который будет использоваться для аутентификации. Он должен находиться вне обслуживаемых каталогов. Скоро мы создадим этот файл.
Require valid-user: указывает, что только выполнившие аутентификацию пользователи должны иметь доступ к этому ресурсу. Благодаря этому параметру неавторизованные пользователи не смогут выполнить вход.
После завершения редактирования сохраните и закройте файл.

Вы использовали следующее местонахождение для вашего файла пароля /etc/phpmyadmin/.htpasswd. Теперь вы можете создать этот файл и передать его для первоначального пользователя с помощью утилиты htpasswd:

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

Вам будет предложено выбрать и подтвердить пароль для пользователя, которого вы создаете. В результате будет создан файл с хэшированным паролем, который вы добавили.

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

sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser

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

https://domain_name_or_IP/phpmyadmin 

 


После выполнения аутентификации в Apache вы перейдете на стандартную страницу аутентификации phpMyAdmin для ввода ваших учетных данных MySQL. Добавив дополнительный набор учетных данных, не используемый MySQL, вы обеспечиваете для вашей базы данных дополнительный слой защиты. Это желательно, поскольку в прошлом phpMyAdmin часто становился объектом использующих уязвимости атак.

 

 

 

 

Вверх