Устанавливаем и защищаем phpMyAdmin в Debian 7

Майор

Администратор
Команда форума
Регистрация
04.09.14
Сообщения
2.829
Реакции
1.935
Баллы
113
У нас есть сервер с установленным апачем (веб-сервер Apache), пыхом (php-интерпретатором) и мускулем (MySQL-сервером). Однако для управления мускулем нам необходим какой-то интерфейс или набор скриптов, который поможет нам это все визуализировать, чтобы работать не токльо через консоль, а в нормальной среде, видя все таблицы, базы и т.д. Для этого нам необходимо установить phpMyAdmin
phpMyAdmin - веб-приложение с открытым исходным кодом, написанное на языке PHP и представляющее собой веб-интерфейс для администрирования СУБД MySQL. PHPMyAdmin позволяет через браузер осуществлять администрирование сервера MySQL, запускать команды SQL и просматривать содержимое таблиц и баз данных. Приложение пользуется большой популярностью у веб-разработчиков, так как позволяет управлять СУБД MySQL без непосредственного ввода SQL команд, предоставляя дружественный интерфейс.
(Wikipedia®)
Это приложение существенно упрощает управление вашими базами данных. Установка этого приложения очень проста, но кроме установки ее необходимо защитить, иначе всякие нехорошие люди смогут в конце концов завалить весь сервер, если вы не обеспечите нормальной защиты. Здесь будет описакна установка и один из самых простых способов защиты. Замечу: самых простых! А раз самый простой, то и самый легко обходимый. Есть еще способы, о них я расскажу позднее. Итак начнем с установки phpMyAdmin. Устанавливать будем как всегда на ОС Debian.
Установка phpMyAdmin:
Для установки phpMyAdmin в терминале выполняем команду: apt-get install phpmyadmin Загрузив все необходимые компоненты, запустится мастер настройки phpMyAdmin. В первом вопросе требуется определиться с установленным web-сервером. Доступно два варианта:
  • apache2
  • lighthttpd
1.png
Мы выбираем первый вариант, поскольку на нашем сервере установлен именно Apache. После выбора веб-сервера начнется загрузка всех необходимых пакетов и их установка. В следующем шаге мастер попросит разрешения на создания новой базы данных для хранения всех настроек phpMyAdmin. Без этого установка phpMyAdmin будет невозможна, поэтому соглашаемся. Далее нас попросят ввести пароль пользователя root MySQL-сервера. Вводим и нажимаем «enter». Затем нас попросят придумать пароль для доступа в phpMyAdmin. Придумываем пароль посложней и снова нажимаем «Enter».
2.png
Добавляем phpMyAdmin к конфигурации к Apache.
На этом установка phpMyAdmin завершена. Чтобы протестировать этот инструмент в работе, необходимо добавить phpMyAdmin к конфигурации Apache. Для этого открываем конфигурационный файл Apache: nano /etc/apache2/apache2.conf (или куда он у вас установлен)
hostlite-3.png
Перемещаемся в его конец и добавляем строчку для подключения 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. Пробить такую защиту тоже можно, но сделать это будет намного сложней.
hostlite-4.png
Конфигурируем авторизацию на уровне Apache
Сначала откроем конфигурационный файл phpMyAdmin, который используется с Apache:
Код:
sudo nano /etc/phpmyadmin/apache.conf
Находим в файле блок «» и дописываем директиву
Код:
«AllowOverride All»
.
Отредактированный блок в итоге должен выглядеть так:
Код:
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.

Еще один вариант защиты - установка phpMyAdmin в другой каталог на сервере. Даже с рандомными символами в названии.
 
Сверху Снизу