В этом посте расскажу как легко и быстро защитить страницу авторизации в phpMyAdmin от злоумышленников. Естественно всё это будет показано на примере ОС Linux Ubuntu. Так вот, после установки phpMyAdmin на виртуальный или выделенный сервер он как правило не доступен по адресу localhost/phpmyadmin
и поэтому надо в файл конфигурации сервера Apache подключить дополнительный файл конфигураций, который поставляется вместе с phpMyAdmin.
Итак открываем файл конфигурации Апач (находится по адресу: /etc/apache2/apache2.conf
) и в конец подключаем файл apache.conf следующим образом:
Include /etc/phpmyadmin/apache.conf
После этого phpMyAdmin должен будет открываться по адресу localhost/phpmyadmin
, в случае с реальным сервером в интернете вместо localhost подставляется IP адрес сервера. Этот самый путь доступа к утилите как раз и прописывается в дополнительном файле конфигурации, стало быть его там можно поменять на любой другой. Так и делаем. Открываем файл дополнительной конфигурации, который лежит по адресу /etc/phpmyadmin/apache.conf
и редактируем его по своему усмотрению. В частности изменяем строку доступа к самому phpMyAdmim, которая выглядит так:
Alias /phpmyadmin /usr/share/phpmyadmin
Изменяем на, что-нибудь посложнее, например так:
Alias /dfadafdy7qjl0dfan5aln1lanltian /usr/share/phpmyadmin
Такой адрес будет сложно предугадать, именно по нему теперь можно будет попасть на страницу авторизации в phpMyAdmin. Как альтернативу и полную защиту могу посоветовать вовсе закомментировать строку Alias
поставив знак # (решётка) перед ней и тогда вообще доступ к phpMyAdmin извне будет закрыт. Такой радикальный вариант можно применять когда доступ в панель требуется не часто. В случае необходимости всегда можно убрать комментарий и воспользоваться функционалом приложения.
Так же советую закрыть доступ к самой директории приложения на уровне сервера по средствам IP адресов. Для этого внутрь директивы directory
(до закрывающего тега) добавляем следующий код:
Order Deny,Allow Deny from all Allow from xxx.xxx.xxx.xxx
Где строка вида xxx.xxx.xxx.xxx это ваш внешний IP адрес. Таким образом доступ в панель phpMyAdmin будет закрыт для всех кроме тех кто заходит с этого адреса. Естественно сохраняем все изменённые файлы и перезагружаем сервер.
Теперь мы более мене защитили нашу панель phpMyAdmin от внешних посягательств. Во первых будет тяжело на неё выйти т.к. адрес её адрес известен только вам, а во вторых доступ к ней будет разрешён только для пользователей у которых тот IP адрес, который мы указали. Естественно сложные пароли для root пользователя СУБД MySQL тоже никто не отменял.
На этом всё. Спасибо за внимание.