Ботнет 10к+ на wp-login

TheVS
На сайте с 27.12.2006
Offline
426
#171

Страдают только wp и joomla? О других движках сейчас стоит позаботиться? А то у меня на виртуальных хостингах сейчас половина мелких сайтов в дауне.

🍄 Партнёрская программа для вебмастеров: https://bit.ly/finance_pp
Otshelnik-Fm
На сайте с 03.08.2013
Offline
36
#172

http://wordpress.org/plugins/stealth-login-page Stealth Login Page Добавляет секретный ключ, прячет wp-login.php

Или http://wordpress.org/plugins/protected-wp-login/ Protected wp-login - смотрит на параметр ключа в урл - если его нет - не пускает

TheVS
На сайте с 27.12.2006
Offline
426
#173

Кстати мне саппорт хостинга такое решение прислал: http://pervushin.com/wordpress-login-config-protect.html , вроде самое простое и эффективное.

Jaf4
На сайте с 03.08.2009
Offline
804
#174
TheVS:
Кстати мне саппорт хостинга такое решение прислал: http://pervushin.com/wordpress-login-config-protect.html , вроде самое простое и эффективное.

трогать файлы движка почти всегда плохое решение..

New! NVMe VPS от SmartApe.ru (https://goo.gl/eoYYkS)
aweksa
На сайте с 26.11.2008
Offline
72
#175
TheVS:
Страдают только wp и joomla? О других движках сейчас стоит позаботиться? А то у меня на виртуальных хостингах сейчас половина мелких сайтов в дауне.

У знакомых была замечена атака на сайты на DLE.

delpher
На сайте с 29.01.2007
Offline
133
#176

Брутят 3 движка: Wordpress, Joomla и DLE


POST /admin.php HTTP/1.0
POST /administrator/index.php HTTP/1.0
POST /wp-login.php HTTP/1.0

Помогает закрытие доступа к админ панелям.

Для Joomla достаточно создать в директории administrator файла .htaccess с содержимым:

Order deny,allow

deny from all
Allow from 11.22.33.44

де 11.22.33.44 это ваш IP адрес. Для остальных IP адресов доступ будет закрыт.

Посмотреть ваш текущий IP адрес можно на странице http://internet.yandex.ru/

Для Wordpress и DLE нужно закрыть файлы wp-login.php и admin.php соответственно в корне сайта.

В корневой .htaccess:

<Files wp-login.php> //<Files admin.php> для DLE

Order deny,allow
deny from all
Allow from 11.22.33.44
</Files>

Директорию wp-admin тоже можно закрыть, хотя судя по громадным логам все запросы идут только на wp-login.php

Переименовывать файл wp-login.php нет смысла, CMS отдает свою страницу 404 и нагрузка хоть и снижается, но не полностью.

Данный способ удобен если не нужно входить в админку часто с разных IP.

На мой взгляд самым лучший способ это http авторизация.

В корне сайта создаем файл .htpasswd

На сайте http://www.htaccesstools.com/htpasswd-generator/ создаем хеш пароля и добавляем его в файл .htpasswd

Для joomla в файл .htaccess в директории administrator добавляем:

AuthName "Pshel von"

AuthType Basic
AuthUserFile /полный_путь_к_файлу/.htpasswd
require valid-user

Для Wordpress и DLE в корневой .htaccess:


<Files wp-login.php> //<Files admin.php> для DLE
AuthName "Pshel von"
AuthType Basic
AuthUserFile /полный_путь_к_файлу/.htpasswd
require valid-user
</Files>

полный_путь_к_файлу - на хостинге с ISPManager это /var/www/USER/data/www/DOMEN.RU/.htpasswd

Узнать полный путь можно добавив в php файл следующий код


<?php
echo $_SERVER['DOCUMENT_ROOT'] ;
?>
A
На сайте с 04.08.2013
Offline
0
#177

А как глобально, для сервера решить проблему?

Третий день долбят..

A
На сайте с 13.05.2010
Offline
55
#178
bornyakov:

Кстати странно, что брутят только "нормальные" сайты - новые или под АГС не берут. Походу или на возраст или на индекс страниц пробивают перед брутом.

Заметил вчера подобное, но немного в другом ракурсе.

Есть куча РУшек (как раскрученные, таки и практически нулёвые) - с ними были проблемы

Есть одна хомка .DP.UA (старенькая) - проблем с ней никаких не наблюдал

Хостятся все в одном месте.

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

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

aweksa
На сайте с 26.11.2008
Offline
72
#179
delpher:

Переименовывать файл wp-login.php нет смысла, CMS отдает свою страницу 404 и нагрузка хоть и снижается, но не полностью.

Тем не менее, после переименования от меня отстали. Предполагаю, что при получении 404 страницы для себя ставят галочку о недоступности страницы и переключаются на другие сайты. Возможно, впоследствии возвращаются (не проверяла).

Otshelnik-Fm
На сайте с 03.08.2013
Offline
36
#180

Решение для тех у кого много пользователей пользуются авторизацией.

1. Создаете файл в корне блога (там где wp-login.php), называете его как хотите, но не так как в этой статье. Я назвал его fggtreswerr.php

2. в него копируете весь код из wp-login (код придется обновить при обновлении движка в будущем)

3. В этом файле (fggtreswerr.php) находите все упоминания wp-login.php и меняете на имя созданного файла (в моем примере fggtreswerr.php). У меня нашел 20 упоминаний. Сохраняете.

Теперь вы можете зайти на блог через строку http://ваш-сайт/fggtreswerr.php

4. Закрываем в файле .htaccess (в корне блога) доступ к wp-login.php. Для этого вписываем

<filesmatch "wp-login.php">
Order Allow,Deny
Deny from all
</filesmatch>

и при заходе http://ваш-сайт/wp-login.php сервер будет отдавать 403 код.

5. но в админке для того чтобы выйти нам надо переписать адрес выхода. Используем экшн, вписываем его в файл functions.php своей темы:


add_filter('login_url', 'my_custom_login_url');
add_filter('logout_url', 'my_custom_logout_url');

function my_custom_login_url($force_reauth, $redirect=null){
$login_url = site_url('fggtreswerr.php');
if (empty($redirect)) $redirect=home_url();
$login_url = add_query_arg('redirect_to', urlencode( $redirect ), $login_url );
return $login_url ;
}

function my_custom_logout_url($force_reauth, $redirect=null){
$logout_url = wp_nonce_url(site_url('fggtreswerr.php')."?action=logout", 'log-out' );
if (empty($redirect)) $redirect=home_url();
$logout_url = add_query_arg('redirect_to', urlencode( $redirect )."/?loggedout=true", $logout_url );
return $logout_url ;
}

обратите внимание: fggtreswerr.php в этом коде вам нужно заменить на свою новую страницу входа.

в этом коде:

add_filter('login_url', 'my_custom_login_url');

add_filter('logout_url', 'my_custom_logout_url'); - необходимы для входа и выхода (если используется виджет входа вп).

код использует wp_nonce_url для генерирования случайной строки в урл. Необходимая мера для защиты.

$redirect=home_url(); - после выхода - редирект на главную страницу

источник

Плюсы:

Теперь ваш wp-login.php закрыт для всех

вам в .htaccess каждый раз не нужно вписывать ваш новый динамический айпи.

Блогом продолжают пользоваться ваши многие зарегистрированные пользователи

Файлы движка мы не трогаем

Код в functions.php ни коем образом не грузит сайт

Минусы:

При обновлении движка блога вам нужно скопировать новый wp-login.php в ваш файл авторизации и выполнить пункт 3

Но это так просто:)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий