phpmyadmin
phpMyAdmin — это приложение написанное на PHP и обеспечивающее полноценную, в том числе удаленную, работу с базами данных MySQL через браузер. Так как phpMyAdmin позволяет во многих случаях обойтись без непосредственного ввода команд SQL, то работа с базами данных становится вполне посильной задачей даже для человека весьма поверхностно знакомого с MySQL.

Установка phpMyAdmin

Для установки phpMyAdmin в терминале выполняем команду:

apt-get install phpmyadmin

Загрузив все необходимые компоненты, запустится мастер настройки phpMyAdmin. В первом вопросе требуется определиться с установленным web-сервером. Доступно два варианта:

 

  • apache2
  • lighthttpd

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

Далее нас попросят ввести пароль пользователя root MySQL-сервера. Вводим и нажимаем «enter».+

Затем нас попросят придумать пароль для доступа в phpMyAdmin. Придумываем пароль посложней и нажимаем «Enter».

Добавляем phpMyAdmin к конфигурации к Apache

Установка phpMyAdmin завершена. Чтобы протестировать этот инструмент в работе, необходимо добавить phpMyAdmin к конфигурации Apache. Для этого открываем конфигурационный файл Apache:

nano /etc/apache2/apache2.conf

Перемещаемся в его конец и добавляем строчку для подключения phpMyAdmin:

Include /etc/phpmyadmin/apache.conf

Сохраняем внесенные изменения (ctrl + o) и закрываем файл (ctrl + x). Перезапускаем Apache:

service apache2 restart

Проверяем phpMyAdmin

Открывай браузер и переходим по ссылке http://ip_адрес/phpmyadmin . Открытие страницы входа phpMyAdmin – подтверждение успешной установки.

Защищаем phpMyAdmin

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

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

Конфигурируем авторизацию на уровне Apache

Сначала откроем конфигурационный файл phpMyAdmin, который используется с Apache:

sudo nano /etc/phpmyadmin/apache.conf

Находим в файле блок «» и дописываем директиву «AllowOverride All». Отредактированный блок в итоге должен выглядеть так:

<Directory /usr/share/phpmyadmin>
        Options FollowSymLinks
        DirectoryIndex index.php
        AllowOverride All
//Остальной текст оставляем как есть

Сохраняем изменения (ctrl + o) и закрываем файл (ctrl + x). При помощи директивы “AllowOverride” мы сообщили Apache, что все директивы могут быть переопределены через внешний файл настроек – «.htaccess».

Подготавливаем .htaccess

Создадим новый конфигурационный файл .htaccess в директории с phpmyadmin:

nano /usr/share/phpmyadmin/.htaccess

Прописываем в этом файле необходимость авторизации на уровне web-сервера:

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

В конфигурационном файле мне пришлось воспользоваться следующими директивами:

 

  • AuthType – директива определяет тип идентификации пользователя. В качестве значения я указываю Basic. Насколько мне известно, вариантов кроме Basic до сих пор в Apache не реализовано (поправьте, если ошибаюсь).
  • AuthName – директива используется совместно с предыдущей. В ней мы пишем текст, который будет отображаться в диалоге запроса логина/пароля. Значением директивы может быть абсолютно любой текст.
  • AuthUserFile – значением директивы выступает путь к файлу, содержащий информацию опользователях и их паролях, которые могут получить доступ к закрытому ресурсу. На данном этапе этого файла нет, мы создадим его чуть позже.
  • Require – директива позволяет определить принцип аутентификации. Она может принимать несколько значений (например, мы можем перечислить пользователей или группы пользователей, которые могут получать доступ к закрытому ресурсу). Значение Valid-user подразумевает, что получить доступ к закрытому ресурсу могут получить все пользователи, доступные в файле AuthUserFile.

 

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

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

sudo htpasswd -c /home/.htpasswd username

Имя пользователя выбираем любое, с системными пользователями оно не переплетается. Утилита htpasswd запросит пароль для нового пользователя. Придумываем пароль и после завершения создания пользователя перезапустим apache:

service apache2 restart

Проверяем авторизацию на уровне web-сервера

Попробуем обратиться к phpMyAdmin. Если все описанные выше манипуляции были проделаны правильно, то страница входа phpMyAdmin сразу будет недоступна. Вместо нее появится окно с запросом имени пользователя и пароля. Вводим данные, которые мы указали утилите htpasswd и только после этого попадаем на страницу входа в phpMyAdmin.

 

 

Posted in *nix

More about: