Как защитить phpMyAdmin

Защита phpMyAdmin

Защита 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 можно установить, выполнив следующую команду в терминале:

$ sudo apt install phpmyadmin php-json php-curl php-mbstring php-zip php-gd

В процессе установки будет предложено указать технологию веб-сервера, которую используете. Убедитесь, что указали apache в качестве веб-сервера по умолчанию.

Установка phpMyAdmin

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

Установка phpMyAdmin

После установки phpMyAdmin небходимо включить модуль PHP mbstring, это можно сделать, выполнив следующую команду в терминале:

$ sudo phpenmod mbstring

После включения модуля mbstring нужно перезапустить службу apache2, чтобы перезапустить службу, выполните следующую команду:

$ sudo systemctl restart apache2

Создание пользователя MySQL

Всегда рекомендуется создавать отдельного пользователя базы данных для каждого приложения и избегать использования учетной записи пользователя root.

Чтобы создать нового пользователя MySQL, войдем в MySQL с помощью команды:

$ sudo mysql -u root

После входа в систему создадим нового пользователя, выполнив команду:

mysql> CREATE USER ‘user’@’localhost’ IDENTIFIED WITH caching_sha2_password BY ‘password’;
Примечание. Убедитесь, что вы заменили user и password вашим именем пользователя и паролем.

После создания пользователя надо изменить права пользователя. Это можно сделать, выполнив команду:

mysql> GRANT ALL PRIVILEGES ON *.* TO ‘user’@’localhost’ WITH GRANT OPTION;

После предоставления новому пользователю прав администратора, можно выйти из MySQL, выполнив команду:

mysql> exit
Примечание. Рекомендуется отключить вход в систему с правами root или изменить имя пользователя root.

Настройка phpMyAdmin для работы с Apache2

Теперь мы можем начать процесс настройки и включения phpMyAdmin для работы с Apache2, мы можем сделать это, выполнив следующее:

Чтобы включить доступ phpMyAdmin с Apache2, необходимо включить файл конфигурации phpMyAdmin в конфигурацию apache2 по умолчанию. Это можно сделать, отредактировав файл конфигурации, находящийся в файле /etc/apache2/apache2.conf:

$ vim /etc/apache2/apache2.conf

Чтобы включить файл конфигурации phpMyAdmin, добавьте следующую команду в файл /etc/apache2/apache2.conf:

$ Include /etc/phpmyadmin/apache2.conf

Измененная конфигурация должна выглядеть так:

Настройка phpMyAdmin для работы с Apache2

После сохранения файла следует перезапустить apache2 и попытаться получить доступ к phpMyAdmin из браузера по следующему URL-адресу: https://<SERVER IP>/phpmyadmin. Вы должны увидеть страницу авторизации:

Настройка phpMyAdmin для работы с Apache2

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

Изменение настроек phpMyAdmin

Первым шагом в защите phpMyAdmin является изменение имени каталога по умолчанию, который используется для доступа к phpMyAdmin. По умолчанию любой пользователь может получить доступ к phpMyAdmin, введя в адресной строке браузера: https:///phpmyadmin.

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

Мы можем отбить 80% атак, изменив название каталога по умолчанию для phpMyAdmin, это можно сделать, изменив файл /etc/phpmyadmin/apache.conf. Можно использовать любой редактор для внесения изменений.

У файла уже будет название по умолчанию, цель состоит в том, чтобы изменить его на другое имя, которое трудно угадать или перебрать.

Изменение настроек phpMyAdmin

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

Как защитить phpMyAdmin

Это имя каталога будет намного сложнее угадать или перебрать. После переименования перезапустите apache2, чтобы изменения вступили в силу.

Теперь phpMyAdmin будет доступен в браузере под с другим именем каталога.

Настройка аутентификации

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

Сначала нужно добавить параметр AllowOverride в конфигурацию каталога в файле конфигурации phpMyAdmin apache2, который находится в /etc/phpmyadmin/apache.conf. Это позволит переопределить любые конфигурации apache2, указанные в файле .htaccess.

$ vim /etc/phpmyadmin/apache.conf

Настройка аутентификации phpMyAdmin

Теперь можем настроить аутентификацию apache2, создав конфигурацию .htaccess в каталоге phpMyAdmin. После создания файла вы можете указать конфигурацию аутентификации, как указано ниже:

Настройка аутентификации phpMyAdmin

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

Чтобы создать пользователя и пароль, будем использовать утилиту htpasswd, как показано ниже. Убедитесь, что вы указали трудно угадываемое имя пользователя.

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

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

Настройка аутентификации phpMyAdmin

Теперь вы можете перезапустить apache2, чтобы применить конфигурацию и активировать аутентификацию.

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

Настройка пароля phpMyAdmin

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

Фильтрация  IP-адресов

Дополнительная мера безопасности, которую можно предпринять, — это ограничение доступа phpMyAdmin к определенному IP-адресу или набору IP-адресов. Это отличная конфигурация безопасности, если у вас статический IP-адрес, который не меняется, однако, если вы используете динамическую IP-конфигурацию, вы можете оказаться заблокированными, так как ваш IP-адрес может измениться.

Чтобы настроить ограничение на основе IP-адреса, следуйте следующим шагам:

Доступ и ограничение по IP-адресу можно настроить в файле /etc/phpmyadmin/apache.conf  в конфигурации каталога.

Чтобы запретить доступ ко всем IP-адресам и предоставить доступ к определенному IP-адресу или подсети, добавьте следующую конфигурацию, показанную ниже, при этом соблюдая меры предосторожности для замены IP-адреса вашим собственным IP-адресом или IP-адресами.

Фильтрация IP-адресов phpMyAdmin

После добавления вашей собственной конфигурации IP-адреса вам следует перезапустить apache2, чтобы применить конфигурацию.

Это запретит доступ всем, кроме тех, которые имеют или совпадают с указанным вами IP-адресом. Если неуказанный IP-адрес попытается получить доступ к phpMyAdmin, они получат следующий ответ.

Ограничение IP-адресов phpMyAdmin

Пользовательская конфигурация PHP

Вы также можете добавить определенные конфигурации PHP, чтобы сделать phpMyAdmin намного более безопасным, удалив всю информацию о сервере или системе и изменив параметры аутентификации cookie.

Чтобы добавить наши собственные параметры PHP, вам необходимо изменить файл /etc/phpmyadmin/config.inc.php.

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

Защита phpMyAdmin

Эта конфигурация изменит время действия cookie по умолчанию, автоматически выйдя из системы по истечении заданного периода времени, она также предотвратит удаление пользователями баз данных и пропустит информацию о сервере из phpMyAdmin.

После добавления конфигураций перезапустите apache2, чтобы изменения вступили в силу.

Заключение

На этом все. Как вы видите защита phpMyAdmin дело далеко не сложное. Надеюсь данная статья помогла вам защитить phpMyAdmin.

Еще по теме: Как проверить сайт на уязвимости

ВКонтакте
OK
Telegram
WhatsApp
Viber

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *