В предыдущей нашей записи в блоге мы рассказали какие нужно действия предпринять, если ваш сайт на Wordpress взломали. В этой записи, мы расскажем как обезопасить сайт от взлома.
1. Отключаем возможность редактирования темы через консоль WordPress
По умолчанию у админов есть возможность редактировать файлы темы и плагинов через админку. Для того чтобы отключить эту возможность нужно добавить в файл wp-config.php строку:
define('DISALLOW_FILE_EDIT', true);
2. Дополнительная защита с помощью Nginx
Можно добавить специальные правила в блок «location / {}» которые помогут заблокировать злоумышленника, если в $_GET параметрах будет набор символов:
if ($query_string ~* "base64_encode[^(]*\([^)]*\)"){ return 403; } if ($query_string ~* "(<|%3C)([^s]*s)+cript.*(>|%3E)"){ return 403; } if ($query_string ~* "GLOBALS (=|\[|\%[0-9A-Z]{0,2})"){ return 403; } if ($query_string ~* "_REQUEST (=|\[|\%[0-9A-Z]{0,2})"){ return 403; } if ($query_string ~* "(eval|duplicate|base64|substring|preg_replace|create_function)") { return 403; } if ($query_string ~* "concat.*\("){ return 403; } if ($query_string ~* "union.*select.*\("){ return 403; } if ($query_string ~* "union.*all.*select"){ return 403; } if ($http_user_agent ~* “Indy Library|libwww-perl|wget”) { return 403; }
Дополнительные блоки для защиты:
location ~ wp-config.php { deny all; }
3. Отключить регистрацию новых пользователей
Отключить регистрацию можно на странице /wp-admin/options-general.php, галочка “Любой может зарегистрироваться”.
4. Запретить доступ к /wp-admin
Открыть доступ к админке можно только для одного IP. Метод подходит если ваш интернет-провайдер предоставил статический IP-адрес. Иначе, после переподключения к сети, у вас не будет доступа к админке.
Для этого нужно в конфиг Nginx добавить строки:
location ~ ^/wp-admin { allow 1.2.3.4; deny all; }
Вместо “1.2.3.4” нужно указать ваш IP.
6. Использование сервиса “Сloudflare”
Вы можете использовать сервис cloudflare.com для блокировки Brute Force атак. Более подробно https://blog.cloudflare.com/patching-the-internet-fixing-the-wordpress-br/
Для Wordpress есть специальные плагины для защиты от Brute Force, но они работают с .htaccess. У нас не установлен Apache, поэтому плагины будут работать не корректно.
Интересные ссылки:
wordpress, взлом сайта на wordpress, защита от взлома