Установка и защита phpMyAdmin в Debian 9
Для корректной работы многих веб-проектов нужны системы управления базами данных (СУБД), например, MySQL. Однако взаимодействовать с системой исключительно с помощью командной строки MySQL не всегда удобно.
Благодаря phpMyAdmin пользователи могут управлять системой MySQL через веб-интерфейс. Данный мануал содержит пошаговые инструкции по установке и защите веб-интерфейса phpMyAdmin в Debian 9.
Требования
- Сервер Debian 9,настроенный по этому мануалу (с пользователем sudo и настроенным ufw).
- Стек LAMP (его можно установить с помощью этого мануала).
- Сертификат Let’s Encrypt для Apache 9. Его можно бесплатно получить с помощью мануала Создание сертификата Let’s Encrypt для Apache в Debian 9.
При использовании программ вроде phpMyAdmin следует учитывать, что она:
- Взаимодействует с MySQL напрямую;
- Выполняет аутентификацию при помощи учётных данных MySQL;
- Обрабатывает и возвращает результаты для произвольных запросов SQL.
По этим причинам (а также из-за своей популярности и распространённости) данное приложение PHP часто подвергается атакам злоумышленников. Потому ни при каких обстоятельствах его нельзя запускать в удалённой системе по HTTP-соединению. Без SSL/TLS-сертификата для веб-сервера Apache использовать phpMyAdmin очень опасно.
1: Установка phpMyAdmin
Пакеты phpMyAdmin доступны в стандартном репозитории Debian.
Обновите индекс пакетов и установите phpMyAdmin:
sudo apt update
sudo apt install phpmyadmin php-mbstring php-gettext
Чтобы настроить экземпляр, нужно ответить на ряд вопросов.
Примечание: В первом вопросе опция apache2 выделена, но не выбрана. Если вы не нажмёте пробел, чтобы выбрать Apache, инсталлятор не переместит необходимые файлы во время установки. Чтобы выбрать Apache, нажмите пробел, Tab и Enter.
- В качестве веб-сервера выберите apache2.
- На вопрос, нужно ли использовать dbconfig-common для настройки базы данных, ответьте yes.
- Затем программа предложит выбрать и подтвердить пароль для phpMyAdmin.
Примечание: MariaDB – это разработанный сообществом форк MySQL, и хотя эти две программы тесно связаны друг с другом, они не являются полностью взаимозаменяемыми. phpMyAdmin был разработан специально для управления базами данных MySQL и ссылается на MySQL в различных диалоговых окнах, но установка MariaDB обычно работает с phpMyAdmin корректно.
Во время установки конфигурационный файл phpMyAdmin добавляется в каталог /etc/apache2/conf-enabled/, в котором он читается автоматически.
Теперь нужно явно включить PHP-расширение mbstring.
sudo phpenmod mbstring
Перезапустите Apache, чтобы обновить настройки:
sudo systemctl restart apache2
phpMyAdmin установлен. Но прежде чем войти и начать работу с базами данных, вам нужно проверить привилегии пользователей.
2: Настройка аутентификации и привилегий
После установки phpMyAdmin автоматически создает пользователя базы данных phpmyadmin, который выполняет базовые процессы программы. Однако для входа в phpMyAdmin рекомендуется использовать другую учетную запись, а не phpmyadmin.
В новых установках в Debian root-пользователь MariaDB по умолчанию поддерживает аутентификацию с помощью плагина unix_socket, а не с помощью пароля. Это позволяет во многих случаях обеспечить большую безопасность и удобство, но это также может усложнить работу, например, когда вам необходимо с помощью этого пользователя дать внешней программе (как phpMyAdmin) права администратора. Поскольку сервер использует учетную запись root для таких задач, как ротация логов, запуск и остановка сервера и т.п., лучше не менять ее метод аутентификации. Поскольку phpMyAdmin требует от пользователей парольной аутентификации, вам необходимо создать новую учетную запись MariaDB для доступа к интерфейсу.
Если вы следовали мануалу по установке стека LAMP и создали учетную запись пользователя MariaDB, как описано в разделе 2, вы можете просто войти в phpMyAdmin под этой учетной записью, используя пароль, который вы создали при настройке.
Если вы еще не создали пользователя MariaDB или хотите создать другого пользователя специально для управления базами данных через phpMyAdmin, выполните этот раздел. Для начала откройте оболочку MariaDB:
Примечание: Если у вас включена парольная аутентификация (скорее всего, так и есть, если вы уже создали новую учетную запись для MariaDB), вам потребуется использовать другую команду для доступа к оболочке MariaDB. Следующая команда запустит клиент MariaDB с правами обычного пользователя, и вы получите права администратора только в базе данных после аутентификации:
mariadb -u user -p
Создайте нового пользователя и выберите для него надежный пароль:
CREATE USER ‘8host’@’localhost’ IDENTIFIED BY ‘password’;
Затем предоставьте новому пользователю соответствующие права. Например, вы можете предоставить ему права на все таблицы в БД, а также возможность добавлять, изменять и удалять пользовательские привилегии с помощью этой команды:
GRANT ALL PRIVILEGES ON *.* TO ‘8host’@’localhost’ WITH GRANT OPTION;
Закройте оболочку MariaDB:
Чтобы открыть интерфейс, посетите в браузере следующую ссылку:
Чтобы получить доступ к интерфейсу, используйте имя и пароль вашего нового пользователя.
3: Защита phpMyAdmin
Из-за своей распространённости PhpMyAdmin часто подвергается атакам злоумышленников. На данном этапе необходимо обеспечить интерфейсу достаточный уровень защиты для предотвращения вредоносного использования.
Один из самых простых способ защиты phpMyAdmin – размещение шлюза безопасности. Это делается при помощи специальных файлов Apache под названием .htaccess.
Сначала нужно включить поддержку файлов .htaccess, отредактировав конфигурационный файл Apache.
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
В раздел нужно добавить параметр AllowOverride All:
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
. . .
Сохраните и закройте файл.
sudo systemctl restart apache2
Теперь приложение поддерживает файлы .htaccess; нужно только создать такой файл.
Для корректной работы необходимо создать этот файл в каталоге приложения. Для этого введите:
sudo nano /usr/share/phpmyadmin/.htaccess
Вставьте в файл:
AuthType Basic
AuthName «Restricted Files»
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
Рассмотрим эти строки подробнее:
- AuthType Basic задает тип авторизации; в данном случае используется аутентификация по паролю с помощью файла паролей .htpasswd.
- AuthName содержит текст сообщения диалогового окна аутентификации. Чтобы неавторизованные пользователи не могли получить дополнительной информации о закрытом приложении, это сообщение не должно содержать подробностей, а только общие данные.
- AuthUserFile задает расположение файла паролей htpasswd, который будет использоваться для авторизации. Он должен находиться вне обслуживаемых каталогов. Такой файл будет создан позже.
- Require valid-user указывает, что доступ к этому ресурсу могут получить только авторизованные пользователи. Именно этот параметр защищает ресурс от неавторизованных пользователей.
Сохраните и закройте файл.
Файл с паролями нужно создать в каталоге, заданном в директиве AuthUserFile, в данном случае это /etc/phpmyadmin/.htpasswd.
sudo htpasswd -c /etc/phpmyadmin/.htpasswd username
Будет предложено выбрать и подтвердить пароль нового пользователя. После этого файл .htpasswd будет создан, а только что введённый пароль будет помещен в него в хэшированном виде.
Чтобы добавить в файл еще одного пользователя, используйте вышеприведенную команду без флага –с:
sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser
Теперь при входе в подкаталог phpMyAdmin будут запрашиваться учетные данные пользователя:
https://domain_name_or_IP/phpmyadmin
The server http://111.111.11.111:22 requires a username and password. The server says: Restricted Files.
User Name:
Password:
Только после аутентификации пользователь сможет получить доступ к странице авторизации phpMyAdmin. Это установит дополнительный уровень безопасности, который защитит веб-интерфейс phpMyAdmin от атак методом подбора паролей.
Заключение
Теперь phpMyAdmin установлен, запущен и надежно защищен от злоумышленников. При помощи этого интерфейса можно быстро и легко создавать базы данных, пользователей, таблицы и т.п., а также выполнять такие рутинные задачи как удаление и редактирование структур и данных.
Установка phpMyAdmin на сервер с ОС Debian 9
После того, как на сервер с ОС Debian 9 установлен MySQL с поддержкой PHP 7.3, можно устанавливать phpMyAdmin — полезную программу на языке PHP, которая имеет удобный веб-интерфейс для администрирования СУБД MySQL прямо из браузера. Без phpMyAdmin на сервере не особо развернёшься. Администрировать базы данных из консоли — дело трудоёмкое и требующее специальных знаний и навыков. И пока нет времени углубляться в эту сторону.
Предварительная подготовка сервера к установке phpMyAdmin
По сложившейся доброй традиции, первым делом выполним стандартное обновление списка пакетов репозиториев apt-get update и установим вышедшие обновления apt-get upgrade , если таковые найдутся.
Установка phpMyAdmin на сервер
Повторюсь, что phpMyAdmin — это программа для обслуживания баз данных MySQL, написанная на языке PHP. Выводы из этого:
- На сервере должен быть установлен php
- и MySQL
Если не установлены, то ссылки на то, как их установить даны в самом начале статьи.
Итак, процесс установки phpMyAdmin на сервер предельно прост и запускается командой apt-get install phpmyadmin :
root@server:~# apt install phpmyadmin Reading package lists. Done Building dependency tree Reading state information. Done The following additional packages will be installed: dbconfig-common dbconfig-mysql default-mysql-client fontconfig-config fonts-dejavu-core javascript-common libaio1 libconfig-inifiles-perl libcurl3 libdbd-mysql-perl libdbi-perl libfontconfig1 libgd3 libjbig0 libjemalloc1 libjpeg62-turbo libjs-jquery libjs-sphinxdoc libjs-underscore libmariadbclient18 libreadline5 libterm-readkey-perl libtiff5 libwebp6 libxpm4 libxslt1.1 libzip4 mariadb-client-10.1 mariadb-client-core-10.1 mariadb-common mysql-common php-bz2 php-curl php-gd php-mbstring php-mysql php-pear php-php-gettext php-phpseclib php-tcpdf php-xml php-zip php7.3-bz2 php7.3-curl php7.3-gd php7.3-mbstring php7.3-mysql php7.3-xml php7.3-zip Suggested packages: default-mysql-server | virtual-mysql-server libclone-perl libmldbm-perl libnet-daemon-perl libsql-statement-perl libgd-tools php-libsodium php-mcrypt php-gmp php5-imagick www-browser Recommended packages: php5-gd php5-mcrypt The following NEW packages will be installed: dbconfig-common dbconfig-mysql default-mysql-client fontconfig-config fonts-dejavu-core javascript-common libaio1 libconfig-inifiles-perl libcurl3 libdbd-mysql-perl libdbi-perl libfontconfig1 libgd3 libjbig0 libjemalloc1 libjpeg62-turbo libjs-jquery libjs-sphinxdoc libjs-underscore libmariadbclient18 libreadline5 libterm-readkey-perl libtiff5 libwebp6 libxpm4 libxslt1.1 libzip4 mariadb-client-10.1 mariadb-client-core-10.1 mariadb-common mysql-common php-bz2 php-curl php-gd php-mbstring php-mysql php-pear php-php-gettext php-phpseclib php-tcpdf php-xml php-zip php7.3-bz2 php7.3-curl php7.3-gd php7.3-mbstring php7.3-mysql php7.3-xml php7.3-zip phpmyadmin 0 upgraded, 50 newly installed, 0 to remove and 0 not upgraded. Need to get 30.1 MB of archives. After this operation, 141 MB of additional disk space will be used. Do you want to continue? [Y/n] Y
Установщик пакетов Debian apt-get проверит требуемые для работы phpMyAdmin дополнительные пакеты и, как в моём случае, найдя аж 35 штук, запросит подтверждения установки. Надо, значит надо. Соглашаемся, введя Y и жмём Enter .
В процессе установки phpMyAdmin автоматически изменит настройки того сервера, под которым он будет запускаться. В моём случае, при запросе:
Package configuration ┌────────────────────────┤ Configuring phpmyadmin ├─────────────────────────┐ │ Please choose the web server that should be automatically configured to │ │ run phpMyAdmin. │ │ │ │ Web server to reconfigure automatically: │ │ │ │ [x] apache2 │ │ [ ] lighttpd │ │ │ │ │ │ │ │ │ └───────────────────────────────────────────────────────────────────────────┘
Я выбираю apache2 и жму на , выбрав предварительно его кнопкой Tab . Для переключения выбора нужно использовать кнопки ↑ и ↓ на клавиатуре (если кому интересно).
На следующем экране нужно выбрать для того, чтобы настроить базу данных для PhpMyAdmin с dbconfig-common :
Package configuration ┌────────────────────────┤ Configuring phpmyadmin ├─────────────────────────┐ │ │ │ The phpmyadmin package must have a database installed and configured │ │ before it can be used. This can be optionally handled with │ │ dbconfig-common. │ │ │ │ If you are an advanced database administrator and know that you want to │ │ perform this configuration manually, or if your database has already │ │ been installed and configured, you should refuse this option. Details on │ │ what needs to be done should most likely be provided in │ │ /usr/share/doc/phpmyadmin. │ │ │ │ Otherwise, you should probably choose this option. │ │ │ │ Configure database for phpmyadmin with dbconfig-common? │ │ │ │ │ │ │ └───────────────────────────────────────────────────────────────────────────┘
Следующий экран с настройками конфигурации phpMyAdmin — это ввод пароля суперпользователя phpmyadmin :
Package configuration ┌────────────────────────┤ Configuring phpmyadmin ├────────────────────────┐ │ Please provide a password for phpmyadmin to register with the database │ │ server. If left blank, a random password will be generated. │ │ │ │ MySQL application password for phpmyadmin: │ │ │ │ ________________________________________________________________________ │ │ │ │ │ │ │ └──────────────────────────────────────────────────────────────────────────┘
Тут нужно ввести пароль пользователя phpmyadmin для административного доступа в phpMyAdmin. Если поле ввода пароля оставить пустым, то будет сгенерирован случайный пароль.
При вводе пароля, требуется ввести его ещё раз для подтверждения:
Package configuration ┌────┤ Configuring phpmyadmin ├─────┐ │ │ │ │ │ Password confirmation: │ │ │ │ _________________________________ │ │ │ │ │ │ │ └───────────────────────────────────┘
На этом собственно всё. Установка завершена. Весь листинг лога приводить не буду — длинный он. =)
После этого phpMyAdmin должен открываться по адресу http://example.com/phpmyadmin .
Не запускается phpMyAdmin на Debian 9 из браузера
Если по какой-то причине phpMyAdmin не из браузера по адресу http://example.com/phpmyadmin , надо попробовать на порту 8080 (т.к. Apache может быть уже настроен слушать с этого порта) http://example.com:8080/phpmyadmin . Если и это не помогло, значит в конфиг Апача не прописались настройки подключения модуля для phpMyAdmin.
Дописываем конфиг phpMyAdmin строчкой:
root@server:~# echo -e "\nInclude /etc/phpmyadmin/apache.conf" >> /etc/apache2/apache2.conf
И перезагружаем Апач:
root@server:~# apachectl restart
Теперь phpMyAdmin должен открыться в браузере и в него можно зайти под пользователем phpmyadmin .
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! 😉
Как установить и защитить phpMyAdmin с помощью Apache в Debian 9
phpMyAdmin — это бесплатное приложение на основе PHP с открытым исходным кодом, предназначенное для упрощения администрирования серверов MySQL и MariaDB через веб-интерфейс.
phpMyAdmin позволяет управлять базами данных MySQL, учетными записями и привилегиями пользователей, выполнять SQL-запросы, импортировать и экспортировать данные в самых разных форматах данных и многое другое.
В этом руководстве описаны шаги, необходимые для установки и защиты phpMyAdmin в Debian 9 с помощью веб-сервера Apache.
Подготовка
Перед тем, как приступить к этому руководству, убедитесь, что вы выполнили следующие требования:
- Установите LAMP (Linux, Apache, MySQL и PHP) на свой сервер Debian .
- Вы вошли в систему как пользователь с привилегиями sudo .
Хотя это необязательно, рекомендуется получить доступ к вашей установке phpMyAdmin через HTTPS. Если ваш домен еще не защищен SSL, вы можете следовать этому руководству и защитить свой Apache с помощью Let’s Encrypt в Debian 9 .
Установка phpMyAdmin
Выполните следующие шаги для установки phpMyAdmin в Debian 9:
-
Обновите индекс пакета и обновите системные пакеты до последних версий:
sudo apt update && sudo apt upgrade
sudo apt install phpmyadmin
Установщик попросит вас выбрать веб-сервер, который должен быть автоматически настроен для запуска phpMyAdmin, выберите apache, нажав Space и затем Enter . Затем вас спросят, использовать ли dbconfig-common для настройки базы данных, выберите « Yes и нажмите Enter . Введите пароль для регистрации phpMyAdmin в базе данных, выберите OK и нажмите Enter . Подтвердите пароль, выберите OK и нажмите Enter .
После завершения процесса установки перезапустите 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
/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 mod_php5.c> .
Сохраните и закройте файл и перезапустите Apache, чтобы изменения вступили в силу:
sudo systemctl restart apache2
Теперь при доступе к вашему phpMyAdmin вам будет предложено ввести учетные данные пользователя, которого вы ранее создали:
https://your_domain_or_ip_address/phpmyadmin
После входа в базовую аутентификацию вы попадете на страницу входа phpMyAdmin, где вам нужно будет ввести учетные данные администратора MySQL.
Также рекомендуется изменить псевдоним /phpmyadmin на более уникальный и безопасный.
Выводы
Поздравляем, вы успешно установили phpMyAdmin на свой сервер Debian 9. Теперь вы можете начать создавать базы данных MySQL, пользователей и таблицы, а также выполнять различные запросы и операции MySQL.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.
Установка и настройка PHPMyAdmin на Debian 9
Phpmyadmin — это веб-интерфейс для администрирования MySQL, написанный на PHP.
Для установки PhpMyAdmin на системах, использующих пакетный менеджер apt достаточно выполнить следующие действия:
1. Обновляем базу пакетов apt используя команду apt-get update
Ign:1 http://mirror.yandex.ru/debian stretch InRelease Get:2 http://security.debian.org/debian-security stretch/updates InRelease [94.3 kB] Get:3 http://mirror.yandex.ru/debian stretch-updates InRelease [91.0 kB] Hit:4 http://mirror.yandex.ru/debian stretch Release Get:6 http://security.debian.org/debian-security stretch/updates/main Sources [144 kB] Get:7 http://security.debian.org/debian-security stretch/updates/main amd64 Packages [359 kB] Get:8 http://security.debian.org/debian-security stretch/updates/main Translation-en [169 kB] Fetched 857 kB in 3s (280 kB/s) Reading package lists. Done
2. Далее ищем этот пакет в базе данных apt командой
apt-get search phpmyadmin
3. Устанавливаем этот пакет командой apt-get install. При этом apt предложить доставить (предварительно поставить) компоненты, наличия которых требует данный пакет (зависимости). В данном случае это весть стек LAMP (Apache, MySQL и PHP). Также дополнительно, если он не настроен ранее можно поставить и mysql-server.
apt-get install phpmyadmin mysql-server
4. В процессе установки будет предложено его (PHPMyAdmin) сконфигурировать. На этом этапе необходимо указать какой из web-серверов будет использоваться — Apache или LightHTTPD. Выберем, например Apache, так как он наиболее распространенный из этих двух web-серверов и нажмем OК.

5. После этого продолжится настройка и установка компонентов. Далее система настоятельно порекомендует создать базу данных для PHPMy Admin. Если вы сделали это заранее, то нажмите No. Имейте ввиду, что в этом случае Вам необходимо будет выполнить всю работу по настройке PhpMyAdmin вручную. В нашем же случае позволим систему сделать всю работу за нас и нажмем Yes.

6. Далее система попросит нас ввести пароль пользователя phpmyadmin для этой базы. Этот же пароль будет использоваться для доступа в web-интерфейс. Если оставить это поле пустым то система сама сгенерирует пароль. Если Вы сами вводите пароль, то его необходимо подтвердить.

7. Далее система спросит пароль Администратора СУБД если он установлен (обычно это root) и после его ввода пойдет устанавливаться. На этом установка закончена.
Работоспособность, если стандартный порт TCP3306 не закрыт firewall, можно проверить просто набрав в браузере http:///phpmyadmin — должна открыться консоль входа в которую можно зайти пользователем phpmyadmin и паролем заданным на шаге 6. После успешного входа Вы попадете в PhpMyAdmin который выглядит примерно так:

На этом установка и настройка PHPMyAdmin на Debian 9 окончена. В нашей базе знаний вы найдёте ещё множество статей посвящённых различным аспектам работы в Linux, а если вы ищете надежный виртуальный сервер под управлением Linux, обратите внимания на нашу услугу — Аренда виртуального сервера на базе Linux.