Вступление
В то время как многим пользователям нужна функциональность системы управления базами данных, такой как MySQL, им может быть неудобно взаимодействовать с системой исключительно из командной строки MySQL.
-
phpMyAdmin * был создан, чтобы пользователи могли взаимодействовать с MySQL через веб-интерфейс. В этом руководстве мы обсудим, как установить и защитить phpMyAdmin, чтобы вы могли безопасно использовать его для управления базами данных из системы Ubuntu 16.04.
Предпосылки
Прежде чем приступить к работе с этим руководством, необходимо выполнить некоторые основные шаги.
Сначала предположим, что вы используете пользователя без полномочий root с правами sudo, как описано в шагах 1-4 в https://digitalocean.com/community/articles/initial-server-setup-with-ubuntu- 16-04 [начальная настройка сервера Ubuntu 16.04].
Мы также предполагаем, что вы завершили установку LAMP (Linux, Apache, MySQL и PHP) на свой сервер Ubuntu 16.04. Если это еще не завершено, вы можете следовать этому руководству на https://digitalocean.com/community/articles/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-16-04 установка стека LAMP в Ubuntu 16.04.
Наконец, при использовании программного обеспечения, такого как phpMyAdmin, существуют важные соображения безопасности, поскольку оно:
-
Общается напрямую с вашей установкой MySQL
-
Обрабатывает аутентификацию с использованием учетных данных MySQL
-
Выполняет и возвращает результаты для произвольных запросов SQL
По этим причинам, а также потому, что это широко развернутое PHP-приложение, которое часто предназначено для атак, вы никогда не должны запускать phpMyAdmin в удаленных системах через обычное HTTP-соединение. Если у вас нет существующего домена, настроенного с использованием сертификата SSL / TLS, вы можете следовать этому руководству на https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s- encrypt-on-ubuntu-16-04 [защита Apache с помощью Let’s Encrypt в Ubuntu 16.04].
Когда вы закончите с этими шагами, вы готовы начать работу с этим руководством.
Шаг первый - установить phpMyAdmin
Для начала мы установим phpMyAdmin из репозиториев Ubuntu по умолчанию.
Мы можем сделать это путем обновления нашего локального индекса пакета, а затем с помощью системы упаковки + apt +
, чтобы выгрузить файлы и установить их в нашей системе:
sudo apt-get update
sudo apt-get install phpmyadmin php-mbstring php-gettext
Это задаст вам несколько вопросов, чтобы правильно настроить установку.
-
Для выбора сервера выберите * apache2 *.
-
Выберите * yes *, когда вас спросят, использовать ли
+ dbconfig-common +
для настройки базы данных -
Вам будет предложено ввести пароль администратора базы данных.
-
Затем вас попросят выбрать и подтвердить пароль для самого приложения
+ phpMyAdmin +
.
Процесс установки фактически добавляет файл конфигурации phpMyAdmin Apache в каталог + / etc / apache2 / conf-enabled / +
, где он автоматически читается.
Единственное, что нам нужно сделать, это явно включить PHP + mcrypt +
и + mbstring +
, что мы можем сделать, набрав:
sudo phpenmod mcrypt
sudo phpenmod mbstring
После этого вам нужно будет перезапустить Apache, чтобы ваши изменения были распознаны:
sudo systemctl restart apache2
Теперь вы можете получить доступ к веб-интерфейсу, посетив доменное имя вашего сервера или публичный IP-адрес, за которым следует + / phpmyadmin +
:
https:///phpmyadmin
изображение: https: //assets.digitalocean.com/articles/phpmyadmin_1604/small_login_screen.png [экран входа в систему phpMyAdmin]
Теперь вы можете войти в интерфейс, используя имя пользователя + root +
и пароль администратора, который вы установили во время установки MySQL.
Когда вы войдете в систему, вы увидите пользовательский интерфейс, который будет выглядеть примерно так:
изображение: https: //assets.digitalocean.com/articles/phpmyadmin_1604/small_user_interface.png [пользовательский интерфейс phpMyAdmin]
Шаг второй - Защитите свой экземпляр phpMyAdmin
Мы смогли довольно легко настроить и запустить наш интерфейс phpMyAdmin. Однако мы еще не закончили. Из-за своей повсеместности phpMyAdmin является популярной целью для злоумышленников. Мы должны принять дополнительные меры для предотвращения несанкционированного доступа.
Один из самых простых способов сделать это - разместить шлюз перед всем приложением. Мы можем сделать это, используя встроенные в Apache + .htaccess +
функции аутентификации и авторизации.
Настройте Apache для разрешения переопределений .htaccess
Во-первых, нам нужно разрешить использование переопределений файлов + .htaccess +
, отредактировав наш файл конфигурации Apache.
Мы отредактируем связанный файл, который был помещен в наш каталог конфигурации Apache:
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
Нам нужно добавить директиву + AllowOverride All +
в разделе + <Directory / usr / share / phpmyadmin> +
файла конфигурации, например так:
/etc/apache2/conf-available/phpmyadmin.conf
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
. . .
Когда вы добавите эту строку, сохраните и закройте файл.
Чтобы применить сделанные изменения, перезапустите Apache:
sudo systemctl restart apache2
Создать файл .htaccess
Теперь, когда мы включили использование + .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 +
: указывает, что только аутентифицированным пользователям должен быть предоставлен доступ к этому ресурсу. Это то, что на самом деле мешает неавторизованным пользователям войти.
Когда вы закончите, сохраните и закройте файл.
Создайте файл .htpasswd для аутентификации
Расположение, которое мы выбрали для вашего файла паролей, было «+ / etc / phpmyadmin / .htpasswd`». Теперь мы можем создать этот файл и передать его первоначальному пользователю с помощью утилиты + htpasswd +
:
sudo htpasswd -c /etc/phpmyadmin/.htpasswd
Вам будет предложено выбрать и подтвердить пароль для пользователя, которого вы создаете. После этого файл создается с введенным вами хешированным паролем.
Если вы хотите ввести дополнительного пользователя, вам нужно сделать это * без * флага + -c +
, например:
sudo htpasswd /etc/phpmyadmin/.htpasswd
Теперь, когда вы обращаетесь к подкаталогу phpMyAdmin, вам будет предложено ввести имя и пароль дополнительной учетной записи, которые вы только что настроили:
https:///phpmyadmin
изображение: https: //assets.digitalocean.com/articles/phpmyadmin_1404/apache_auth.png [phpMyAdmin пароль apache]
После входа в аутентификацию Apache вы попадете на обычную страницу аутентификации phpMyAdmin, чтобы ввести другие учетные данные. Это добавит дополнительный уровень безопасности, так как phpMyAdmin страдал от уязвимостей в прошлом.
Заключение
Теперь у вас должен быть настроен и готов к использованию phpMyAdmin на вашем сервере Ubuntu 16.04. Используя этот интерфейс, вы можете легко создавать базы данных, пользователей, таблицы и т. Д. И выполнять обычные операции, такие как удаление и изменение структур и данных.