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

Что такое phpMyAdmin

phpMyAdmin – это свободное программное обеспечение для работы с MySQL в сети, другими словами – удобный визуальный интерфейс MySQL.

Требования

Для выполнения инструкций данного руководства необходимы root-привилегии. Чтобы получить их, читайте разделы 3 и 4 данного руководства.

Прежде чем приступить к инсталляции phpMyAdmin, необходимо установить LAMP stack. Чтобы получить инструкции по установке Linux, Apache, MySQL, PHP на сервер Ubuntu, прочтите данное руководство.

Получив root-привилегии и все необходимое программное обеспечение, приступайте к установке phpMyAdmin.

Установка phpMyAdmin

Использование команды apt-get – самый простой способ установки phpMyAdmin.

sudo apt-get install phpmyadmin

Во время установки phpMyAdmin можно  выполнить его базовую настройку. Когда процесс установки запущен, нужно:

  • Выбрать Apache2 в качестве веб-сервера;
  • Ответить YES на вопрос, настроить ли базу данных для phpmyadmin с помощью dbconfig-common;
  • Ввести пароль администратора MySQL;
  • Установить пароль для входа в phpmyadmin.

По завершении установки внесите phpMyAdmin в конфигурации Apache.

sudo nano /etc/apache2/apache2.conf

Внесите конфигурационный файл phpMyAdmin в файл:

Include /etc/phpmyadmin/apache.conf

Перезапустите Apache:

sudo service apache2 restart

Теперь можно открыть phpMyAdmin, введя ipадрес/phpmyadmin, что выведет страницу приветствия phpMyAdmin.

Защита phpMyAdmin

К сожалению, старые версии PhpMyAdmin имели серьезные уязвимости в системе безопасности, что позволяло удаленным пользователям использовать root виртуального выделенного сервера. Теперь большинство подобных атак можно предотвратить, выполнив простое действие – заблокировав каталог, содержащий ограничения пользователей/паролей Apache (это не позволит удаленному пользователю даже попытаться использовать старые версии PhpMyAdmin).

Файл .htaccess

Для начала необходимо разрешить файлу .htaccess работать в каталоге phpmyadmin. Это можно сделать в конфигурационном файле phpmyadmin:

sudo nano /etc/phpmyadmin/apache.conf

В разделе каталога /usr/share/phpmyadmin под параметром Directory Index внесите AllowOverride All; теперь раздел выглядит так:

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

Настройка файла .htaccess

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

Для начала создайте страницу .htaccess в каталоге phpmyadmin:

sudo nano /usr/share/phpmyadmin/.htaccess

Затем настройте авторизацию пользователя в файле .htaccess. Скопируйте и вставьте следующий текст:

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /путь/к/паролям/.htpasswd
Require valid-user

Вот описание каждой строки данного блока кода:

  • AuthType: ссылается на тип авторизации, который будет использован для проверки паролей. На данный момент пароли проверяются через HTTP, потому переменную Basic менять не нужно.
  • AuthName: содержит текст, который будет отображаться в запросе ввести пароль. Сюда можно внести текст на свое усмотрение.
  • AuthUserFile: Эта строка определяет путь на сервере к файлу паролей (который будет создан в следующем подразделе).
  • Require valid-user: эта строка говорит файлу .htaccess, что только пользователи, указанные в файле паролей, могут получать доступ к странице входа в phpMyAdmin.

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

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

sudo htpasswd -c /путь/к/паролям/.htpasswd имя_пользователя

Извещение запросит ввести и подтвердить пароль. После того, как пары “имя пользователя/пароль” сохранены, пароль будет хранится в файле в зашифрованном виде.

В завершение перезагрузите Apache:

sudo service apache2 restart

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

Tags: , , , , ,

Добавить комментарий