Защита phpMyAdmin — тема сегодняшней статьи. В сети есть несколько статьей на тему защиты phpMyAdmin, но они не полностью раскрывают тему, да и написаны непонятно кем.
Еще по теме: Правильная защита WHM / cPanel с помощью плагинов
Имейте ввиду. Не существует чудо-лекарства, которое патчит все дыры работающего phpMyAdmin. Чтобы правильно и надежно защитить phpMyAdmin придется пройти весь процесс установки phpMyAdmin с начала и до конца.
Защита phpMyAdmin
phpMyAdmin — это бесплатное кроссплатформенное веб-приложение с открытым исходным кодом, основанное на PHP, которое предлагает простой и удобный графический интерфейс для взаимодействия и работы с базами данных MySQL.
phpMyAdmin широко применяется и используется как разработчиками, так и системными администраторами.
Вот основные функции:
- Выполнение стандартных SQL-запросы.
- Создание, изменение и удаление пользователей и управление правами пользователей.
- Создание, измение и удаление баз данных, таблиц, строк и полей.
- Поиск объектов в базах данных и таблицах.
- Создание резервной копии баз данных MySQL.
Требования phpMyAdmin
Чтобы установить и защитить phpMyAdmin, вам потребуется сервер Linux со следующими запущенными службами:
- Apache2
- MySQL
- PHP
Примечание. В этой статье мы установим phpMyAdmin на Ubuntu 18.04. В других дистрибутивах все шаги идентичны, за исключением имен пакетов и менеджеров пакетов.
Установка phpMyAdmin
phpMyAdmin можно установить, выполнив следующую команду в терминале:
1 |
$ sudo apt install phpmyadmin php-json php-curl php-mbstring php-zip php-gd |
В процессе установки будет предложено указать технологию веб-сервера, которую используете. Убедитесь, что указали apache в качестве веб-сервера по умолчанию.
Вам также будет предложено указать пароль приложения для MySQL, потверждая, что вы используете надежный пароль.
После установки phpMyAdmin небходимо включить модуль PHP mbstring, это можно сделать, выполнив следующую команду в терминале:
1 |
$ sudo phpenmod mbstring |
После включения модуля mbstring нужно перезапустить службу apache2, чтобы перезапустить службу, выполните следующую команду:
1 |
$ sudo systemctl restart apache2 |
Создание пользователя MySQL
Всегда рекомендуется создавать отдельного пользователя базы данных для каждого приложения и избегать использования учетной записи пользователя root.
Чтобы создать нового пользователя MySQL, войдем в MySQL с помощью команды:
1 |
$ sudo mysql -u root |
После входа в систему создадим нового пользователя, выполнив команду:
1 |
mysql> CREATE USER ‘user’@’localhost’ IDENTIFIED WITH caching_sha2_password BY ‘password’; |
Убедитесь, что вы заменили user и password вашим именем пользователя и паролем.
После создания пользователя надо изменить права пользователя. Это можно сделать, выполнив команду:
1 |
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘user’@’localhost’ WITH GRANT OPTION; |
После предоставления новому пользователю прав администратора, можно выйти из MySQL, выполнив команду:
1 |
mysql> exit |
Рекомендуется отключить вход в систему с правами root или изменить имя пользователя root.
Настройка phpMyAdmin для работы с Apache2
Теперь мы можем начать процесс настройки и включения phpMyAdmin для работы с Apache2, мы можем сделать это, выполнив следующее:
Чтобы включить доступ phpMyAdmin с Apache2, необходимо включить файл конфигурации phpMyAdmin в конфигурацию apache2 по умолчанию. Это можно сделать, отредактировав файл конфигурации, находящийся в файле /etc/apache2/apache2.conf:
1 |
$ vim /etc/apache2/apache2.conf |
Чтобы включить файл конфигурации phpMyAdmin, добавьте следующую команду в файл /etc/apache2/apache2.conf:
1 |
$ Include /etc/phpmyadmin/apache2.conf |
Измененная конфигурация должна выглядеть так:
После сохранения файла следует перезапустить apache2 и попытаться получить доступ к phpMyAdmin из браузера по следующему URL-адресу: https://<SERVER IP>/phpmyadmin. Вы должны увидеть страницу авторизации:
phpMyAdmin теперь должен работать, и вы можете войти в систему пользователем, которого создали ранее.
Изменение настроек phpMyAdmin
Первым шагом в защите phpMyAdmin является изменение имени каталога по умолчанию, который используется для доступа к phpMyAdmin. По умолчанию любой пользователь может получить доступ к phpMyAdmin, введя в адресной строке браузера: https:///phpmyadmin.
Это создает угрозу безопасности, поскольку злоумышленники знают имя каталога и могут получить к нему доступ без ограничений. Чтобы устранить данную проблему, выполним следующие действия:
Мы можем отбить 80% атак, изменив название каталога по умолчанию для phpMyAdmin, это можно сделать, изменив файл /etc/phpmyadmin/apache.conf. Можно использовать любой редактор для внесения изменений.
У файла уже будет название по умолчанию, цель состоит в том, чтобы изменить его на другое имя, которое трудно угадать или перебрать.
Рекомендуется использовать генератор случайных строк для генерации суффикса имени, как показано на изображении ниже.
Это имя каталога будет намного сложнее угадать или перебрать. После переименования перезапустите apache2, чтобы изменения вступили в силу.
Теперь phpMyAdmin будет доступен в браузере под с другим именем каталога.
Настройка аутентификации
В качестве дополнительного уровня безопасности мы также можем использовать функцию аутентификации apache2 для интеграции формы аутентификации имени пользователя и пароля, которая будет настроена для защиты каталога /адрес phpMyAdmin. Это можно сделать так:
Сначала нужно добавить параметр AllowOverride в конфигурацию каталога в файле конфигурации phpMyAdmin apache2, который находится в /etc/phpmyadmin/apache.conf. Это позволит переопределить любые конфигурации apache2, указанные в файле .htaccess.
1 |
$ vim /etc/phpmyadmin/apache.conf |
Теперь можем настроить аутентификацию apache2, создав конфигурацию .htaccess в каталоге phpMyAdmin. После создания файла вы можете указать конфигурацию аутентификации, как указано ниже:
После создания конфигурации необходимо создать пользователя и пароль для формы аутентификации, как указано на изображении выше, файл .htaccess, содержащий учетные данные, который будет храниться в каталоге /etc/phpmyadmin/.
Чтобы создать пользователя и пароль, будем использовать утилиту htpasswd, как показано ниже. Убедитесь, что вы указали трудно угадываемое имя пользователя.
1 |
$ sudo htpasswd -c /etc/phpmyadmin/.htpasswd |
Вам будет предложено указать свой пароль, убедитесь, что вы используете надежный и безопасный пароль.
Теперь вы можете перезапустить apache2, чтобы применить конфигурацию и активировать аутентификацию.
Чтобы проверить аутентификацию, попробуйте получить доступ к каталогу phpMyAdmin в браузере. Вам будет предложено ввести комбинацию имени пользователя и пароля, которую вы указали ранее, успешная аутентификация предоставит вам доступ к phpMyAdmin, а неудачная аутентификация заблокирует доступ.
Это отличный сдерживающий фактор для злоумышленников, поскольку он добавляет второй уровень безопасности, также известный как двухфакторная аутентификация.
Фильтрация IP-адресов
Дополнительная мера безопасности, которую можно предпринять, — это ограничение доступа phpMyAdmin к определенному IP-адресу или набору IP-адресов. Это отличная конфигурация безопасности, если у вас статический IP-адрес, который не меняется, однако, если вы используете динамическую IP-конфигурацию, вы можете оказаться заблокированными, так как ваш IP-адрес может измениться.
Чтобы настроить ограничение на основе IP-адреса, следуйте следующим шагам:
Доступ и ограничение по IP-адресу можно настроить в файле /etc/phpmyadmin/apache.conf в конфигурации каталога.
Чтобы запретить доступ ко всем IP-адресам и предоставить доступ к определенному IP-адресу или подсети, добавьте следующую конфигурацию, показанную ниже, при этом соблюдая меры предосторожности для замены IP-адреса вашим собственным IP-адресом или IP-адресами.
После добавления вашей собственной конфигурации IP-адреса вам следует перезапустить apache2, чтобы применить конфигурацию.
Это запретит доступ всем, кроме тех, которые имеют или совпадают с указанным вами IP-адресом. Если неуказанный IP-адрес попытается получить доступ к phpMyAdmin, они получат следующий ответ.
Пользовательская конфигурация PHP
Вы также можете добавить определенные конфигурации PHP, чтобы сделать phpMyAdmin намного более безопасным, удалив всю информацию о сервере или системе и изменив параметры аутентификации cookie.
Чтобы добавить наши собственные параметры PHP, вам необходимо изменить файл /etc/phpmyadmin/config.inc.php.
В файле мы укажем раздел для наших пользовательских конфигураций, как показано на изображении ниже.
Эта конфигурация изменит время действия cookie по умолчанию, автоматически выйдя из системы по истечении заданного периода времени, она также предотвратит удаление пользователями баз данных и пропустит информацию о сервере из phpMyAdmin.
После добавления конфигураций перезапустите apache2, чтобы изменения вступили в силу.
Заключение
На этом все. Как вы видите защита phpMyAdmin дело далеко не сложное. Надеюсь данная статья помогла вам защитить phpMyAdmin.
Еще по теме: Как проверить сайт на уязвимости