Некоторые способы защиты DLE
Последнее время редко, но бывают случаи, что в DLE, даже последних версий, появляется сторонний вредоносный код или брутят пароль админа. Данная инфа скорее для новичков DLE, т.к. способы в общем то очевидные, но многие просто забывают их выполнять, даже я иногда забываю включать плагины в режим "только для чтения".
В общем решил собрать некоторые моменты, которые помогут дополнительно защитить взлом ДЛЕ.
- Смена названия файла админки admin.php
- Создаем файл admin.php и копируем в него содержимое файла админки, и вставляем HTML код формы входа,тогда при попытке входа страница просто будет обновляться.
<!doctype html> <html> <head> <meta name="robots" content="noindex,nofollow" /> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, maximum-scale=1, initial-scale=1, user-scalable=0"> <meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible"> <title>Панель управления</title> <link href="engine/skins/stylesheets/application.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="engine/skins/javascripts/application.js"></script> <style type="text/css"> div.selector { width: 100%; height: 38px; margin-left: 2px; } div.selector:after { top: 6px; } div.selector span { padding: 0; padding-left: 40px; height: 36px; line-height: 36px; } body { background: url("engine/skins/images/bg.png"); } .box { margin-bottom: 5px; } label { margin-bottom:0px; } </style> </head> <body> <script language="javascript" type="text/javascript"> <!-- var dle_act_lang = []; var cal_language = {en:{months:[],dayOfWeek:[]}}; //--> </script> <div class="container"> <div class="col-md-4 col-md-offset-4"> <div class="padded"> <!--MAIN area--> <div class="login box" style="margin-top: 100px;"> <div class="box-header"> <span class="title">Панель управления</span> </div> <div class="box-content padded"> <form name="login" action="" method="post" class="separate-sections"><input type="hidden" name="subaction" value="dologin"> <div class="input-group addon-left"> <span class="input-group-addon"> <i class="icon-user"></i> </span> <input type="text" name="username" placeholder="Введите ваш логин"> </div> <div class="input-group addon-left"> <span class="input-group-addon"> <i class="icon-key"></i> </span> <input type="password" name="password" placeholder="Введите ваш пароль"> </div> <div class="input-group addon-left"> <span class="input-group-addon"> <i class="icon-flag"></i> </span><select class="uniform" style="width:100%" name="selected_language"> <option value="Russian" selected >Russian</option> </select> </div> <div class="input-group addon-left"> <input type="checkbox" class="icheck" name="login_not_save" id="login_not_save" value="1"/><label for="login_not_save"> Чужой компьютер</label> <button type="submit" class="btn btn-blue btn-block">Войти <i class="icon-signin"></i></button> </div> </form> <div> </div> </div> </div> <div class="text-center">Copyright © All rights reserved.</div> <!--MAIN area--> </div> </div> </div> </body> </html>
- Включить расширенную авторизацию в админпанели: настройка системы - безопасность - метод авторизации в админпанели.
- Выставить на все файлы сайта chmod 444. Создать в корне сайта PHP файл и запустить его.
<?php function chmod_R($path, $perm) { $handle = opendir($path); while ( false !== ($file = readdir($handle)) ) { if ( ($file !== ".") && ($file !== "..") ) { if ( is_file($path."/".$file) ) { //если текущая позиция это файл то... chmod($path . "/" . $file, $perm['f']); } else { //если текущая позиция это папка то... chmod($path . "/" . $file, $perm['d']); chmod_R($path . "/" . $file, $perm); // рекурсивно проверяем папочку } } } closedir($handle); } $path = $_SERVER["QUERY_STRING"]; if ( $path{0} != "/" ) { $path = $_SERVER["DOCUMENT_ROOT"] . "/" . $path; } $perm=array(); $perm['f']=0444; // эти права будут установлены для файлов $perm['d']=0755; // а эти для папок chmod_R($path, $perm); echo $path; ?>
- По возможности обновлять DLE до актуальной версии, если это невозможно, то ставить все багфиксы, которые появляются на офф сайте для вашей версии DLE.
- После настройки всех плагинов, необходимо выполнить рекомендацию, указанную внизу страницы системы плагинов: перевести систему плагинов только в режим чтения.
- Изменение расположения phpmyadmin.
- После полной настройки ДЛЕ перед открытием сайта желательно сделать слепок файлов в стандартном антивирусе ДЛЕ, и периодически проверять файлы этим антивирусом.
- ... возможно позже будет обновление инфы.
Так же не забываем про пароли: он должен быть из символов, букв разного регистра и цифр, и имел достаточную длину, чтобы брутить его пришлось несколько лет или десятилетий.
Ну и самое главное - качайте только с проверенных источников оригинальные дистрибутивы ДЛЕ, чтобы обезопасить себя от заведомо вшитого левого кода и левых внешних ссылок.
На многих сайтах есть инструкции защиты DLE старых версий (8.5-11) 7-9 летней давности, все старые дыры в ДЛЕ закрыты, и ставить их не обязательно, лучше всего всегда использовать актуальную версию скрипта.