Ограничение доступа к phpmyadmin

Свой VDS или полноценный dedicate сервер всегда привлекателен для разных тёмных личностей, которые будут сканировать всевозможные порты, сервисы на предмет наличия различных дыр с целью получить полный или частичный доступ к серверу, чтобы использовать по своему усмотрению. Даже если у них ничего не получится, то они израсходуют процессорное время, память, место на диске вашего сервера.

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

Одна из самых лучших защит — это настройка доступа к phpmyadmin через отдельный порт + открытие порта только тогда, когда Вам необходим доступ к phpmyadmin. Например, заходим на сервер, включаем порт, а после заходим по адресу https://198.72.192.129:8074 и видим форму phpmyadmin для логина. Зашли, совершили необходимые действия с БД, после — закрыли порт и phpmyadmin стал невидим для всего мира.

Если phpmyadmin должен быть доступен всегда, то его надо как-то дополнительно защищать от желающих подобрать пароль и получить доступ к вашим данным. Даже если у злоумышленников не получится подобрать пароль, то они израсходуют процессорное время, озу, место на диске.

Я предлагаю построить ещё один забор, а именно — защитить доступ к форме логина посредством дополнительной авторизации .htaccess, несколько неудачных попыток логина задействуют fail2ban, а все запросы атакующей стороны будут сбрасываться на уровне firewall’а.

Создаём файл .htaccess

Создаём файл .htpasswd

Открываем файл /etc/httpd/conf.d/phpMyAdmin.conf и в разделе Directory добавляем параметр AllowOverride All:

После — перезапускаем веб-сервер. При входе на страницу https://…./phpmyadmin/ будет вводится окно для дополнительной авторизации.

Данный метод эффективен в том случае, если fail2ban уже настроен на защиту apache. Также данный метод освобождает от дополнительной настройки fail2ban именно на phpmyadmin.