Вот какую картинку я увидел однажды в админке в разделе неудачных входов в админку, что заставило меня задуматься о защите. Тут чуть менее 50 попыток и все с одного IP и он не мой. В сети за этим IP числятся разные грязные делишки и поэтому я его заблокировал в этом разделе:
CMS DLE за последние годы набрала высокую популярность. Огромная доля сайтов в сети стоят именно на DLE и это привело к росту объема спама и попыткам взлома этих движков. В данной статье расскажу как можно защитить свою админку от взлома!
Блокировать IP, на место которых придут еще с десяток таких же не выход. Стандартными средствами можно защититься уведя админку на другой адрес.
Новый адрес админ панели
В разделе настройка системы — безопасность можно изменить адрес админки, но для этого необходимо будет переименовать и файл admin.php в корне скрипта, который является этой админкой с таким же названием. Например administrator.php. Далее в картинках:
Убираем авторизацию в старой админке
Недавно наткнулся на интересную статейку, смысл которой заключается в совместном использовании пунктов 1 и 2. Все, что нужно, так это переименовать админку, но при этом оставить старый — файл admin.php, который не будет отличаться от нового ничем, кроме отсутствия функции авторизации.
Таким образом, скрипты автоподбора паролей будут вечно пытаться войти в несуществующую админку.
- Выполнить первый шаг по переименованию админки, как в файле, так и в интерфейса сайта ;
- Вернуть назад файл admin.php со всем имеющимся в нем кодом не удаляя новый
- Открыть admin.php найти и удалить строку:
if ($is_loged_in == FALSE) {
Строка выше отвечает за ошибки авторизации и выводит соответствующий текст. В том же файле найти и удалить строку чуть ниже:
} elseif ($is_loged_in == TRUE) {
Это логическое продолжение удаляемой строки выше. И в самом низу закрывающие блок скобки и переменные:
}$db->close ();GzipOut ();
Это также логическое продолжение условия:
( если авторизация = ошибка ){ выполнять код здесь }
иначе если ( авторизация = не ошибка ){ выполнять это }
Таким образом мы сохранили дизайн страницы авторизации, функционал срабатывания перезагрузки при нажатии на кнопку, но вырезали функционал авторизации, как таковой, в принципе. Страница будет перезагружаться имитируя проверку введенных данных, но все напрасно.
Есть одно но — логи будут продолжать заноситься в базу данных, причем попытку входа будут показывать как с новой страницы, а не admin.php.
Это нормально, поскольку в старом файле вырезан лишь код проверок, но не все остальное и оно не знает, что это фальшивая страница.
Блокируем админку по IP
Собственно способ этот только для тех, у кого либо статический ip, либо у динамического меняются только последние числа. Иначе ставить бессмысленно. Сменится ip – мы заблокированы!
Не стоит беспокоиться о том, что с другого ip мы уже никогда не войдем — блок записывается в файл: engine/data/config.php в переменную. Достаточно будет просто стереть цифры, не ошибиться с кавычками и перезалить файл назад на сервер!
'admin_allowed_ip' => 'xx.xx.xx.xx'
У меня блокируется админка при входе. Что мне делать? Даже смена пароля через БД не помогло. С чем это может быть связно?
Как именно блокируется, что пишет, что вы делали?
Только что проверил, у меня тоже много попыток авторизации, и с нескольких ip.
А как проверить что это за ip? Найти какую нибудь информацию о нем возможно?
А как проверить что это за ip? Найти какую нибудь информацию о нем возможно?
Только вбив в поиск этот IP. Тот IP, что я смотрел, упоминался на нескольких сайтах, как подозрительный и нехороший)
А не лучше капчу на админку ещё добавить,
тогда и перебирать будет сложнее ?
тогда и перебирать будет сложнее ?
Ее нужно добавить и для этого нужны знания, а здесь мы ее просто перенесем в другое место