Установка и защита phpMyAdmin в Ubuntu 14.04

Для корректной работы многих веб-проектов нужны системы управления базами данных (СУБД), например, MySQL. Однако взаимодействовать с системой исключительно с помощью командной строки MySQL не всегда удобно.

Благодаря phpMyAdmin пользователи могут управлять системой MySQL через веб-интерфейс. Данное руководство содержит пошаговые инструкции по установке и защите веб-интерфейса phpMyAdmin.

Требования

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

  • Учетная запись не-рутового пользователя с привилегиями sudo (о том, как создать такого пользователя, можно узнать в статье «Начальная настройка сервера Ubuntu 14.04»);
  • Предварительно установленная группа программ LAMP (Linux, Apache, MySQL, PHP); чтобы получить инструкции по установке LAMP stack на сервер Ubuntu 14.04, читайте эту статью.

Выполнив предварительные требования, можете приступать к установке phpMyAdmin.

1: Установка phpMyAdmin

phpMyAdmin можно быстро установить из стандартного репозитория Ubuntu.

Для этого обновите список пакетов системы, а затем скачайте и установите файлы при помощи менеджера пакетов apt:

sudo apt-get update
sudo apt-get install phpmyadmin

Для того, чтобы настроить установку, нужно ответить на насколько вопросов.

  • В качестве сервера выберите apache2.

Примечание: если вы не нажмете пробел при выборе сервера, инсталлятор не сможет переместить необходимые файлы во время установки. Чтобы выбрать Apache, нажмите пробел, Tab, а затем Enter.

  • На вопрос, нужно ли использовать dbconfig-common для настройки базы данных, ответьте yes.
  • Введите пароль администратора СУБД.
  • Теперь будет предложено выбрать и подтвердить пароль для приложения phpMyAdmin.

Во время установки конфигурационный файл phpMyAdmin добавляется в каталог /etc/apache2/conf-enabled/, в котором он читается автоматически.

Остается только явно включить расширение php5-mcrypt, что можно сделать при помощи:

sudo php5enmod mcrypt

Затем перезапустите Apache, чтобы обновить конфигурации:

sudo service apache2 restart

Готово! Чтобы открыть интерфейс, посетите в браузере:

http://домен_или_IP/phpmyadmin

Чтобы войти в phpMyAdmin, используйте имя root и пароль, созданный во время установки. На экране появится пользовательский интерфейс.

2: Защита phpMyAdmin

Как видите, установка и запуск phpMyAdmin – довольно простой процесс. Однако не стоит забывать о том, что из-за своей вездесущности PhpMyAdmin часто подвергается атакам злоумышленников. На данном этапе необходимо обеспечить интерфейсу достаточный уровень защиты для предотвращения несанкционированного использования.

Один из самых простых способ защиты phpMyAdmin – размещение шлюза безопасности. Это делается при помощи специальных файлов Apache под названием .htaccess.

Активация переопределения .htaccess

Для начала нужно активировать файл .htaccess, отредактировав конфигурационный файл Apache.

Итак, откройте файл конфигураций Apache:

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

В раздел <Directory /usr/share/phpmyadmin> нужно добавить параметр AllowOverride All:

<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
. . .

Внеся нужную строку, сохраните и закройте файл.

Чтобы обновить настройки, перезапустит веб-сервер:

sudo service apache2 restart

Создание файла .htaccess

Теперь приложение поддерживает файлы .htaccess; нужно только создать такой файл.

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

sudo nano /usr/share/phpmyadmin/.htaccess

В этот файл нужно внести следующий код:

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

Рассмотрим эти строки подробнее:

  • AuthType Basic задает тип авторизации; в данном случае используется аутентификация по паролю с помощью файла паролей.
  • AuthName содержит текст сообщения диалогового окна аутентификации. Чтобы неавторизованные пользователи не могли получить дополнительной информации о закрытом приложении, это сообщение не должно содержать подробностей, а только общие данные (например, «Restricted Files», «Restricted Stuff», «Private Zone» и т.п.).
  • AuthUserFile задает расположение файла паролей, который будет использоваться для авторизации. Он должен находиться вне обслуживаемых каталогов. Такой файл будет создан позже.
  • Require valid-user указывает, что доступ к этому ресурсу могут получить только авторизованные пользователи. Именно этот параметр защищает ресурс от неавторизованных пользователей.

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

Создание файла .htpasswd

Теперь в каталоге, указанном в строке AuthUserFile, нужно создать файл паролей .htpasswd.

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

sudo apt-get install apache2-utils

Как помните, файл должен быть создан в каталоге, заданном в директиве AuthUserFile, в данном случае это /etc/phpmyadmin/.htpasswd.

Создайте этот файл и передайте его пользователю, набрав:

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

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

Чтобы внести в файл еще одного пользователя, используйте вышеприведенную команду без флага –с:

sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser

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

http://domain_name_or_IP/phpmyadmin

Только после авторизации Apache пользователь сможет получить доступ к странице авторизации phpMyAdmin. Это добавит дополнительный уровень безопасности, который защитит веб-интерфейс phpMyAdmin от атак методом подбора паролей.

Заключение

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

Tags: , , , , , , ,

3 комментария

Добавить комментарий для Дмитрий Отменить ответ