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