Как предотвратить атаки на страницу WordPress wp-login.php

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

Я установил подключаемый модуль, который предотвращает атаки паролей со стороны ботов, но не мешает ботам фактически посещать страницу.

Я хочу изменить расположение страницы входа на что-то вроде wp-login-here.php, или, возможно, есть лучшее решение. Кажется, Stealth Plugin поможет, но он несовместим с последними версии Вордпресс. Любые идеи?

РЕДАКТИРОВАТЬ: Настоящим решением этой проблемы для меня была чистая установка WordPress, на этот раз в версии, которая поддерживалась плагином Stealth. После установки WP и плагина Stealth в этой более ранней версии WP я использовал файл .htaccess, созданный плагином, и скопировал его (после внесения нескольких изменений) на рабочий сайт. Причина, по которой я принял ответ, который я дал, заключалась в том, что Bad Behavior оказался хорошим плагином, а другой совет был полезен.


person epaps    schedule 14.12.2010    source источник
comment
Возможна ли защита страницы входа с помощью дополнительного пароля Apache? Это немного неудобно, если вы часто меняете компьютеры (потому что вам нужно будет вводить два пароля), но обеспечивает дополнительную безопасность.   -  person Pekka    schedule 15.12.2010
comment
Я думал об этом как о варианте. Как мне добавить пароль к одному файлу (в прошлом я делал это только для каталогов)?   -  person epaps    schedule 15.12.2010
comment
что, возможно, происходит из-за того, что у вас не так много трафика, и вы часто входите в систему? это может генерировать трафик для вашей страницы входа...?   -  person tkit    schedule 15.12.2010
comment
Нет, поотцко, этого не происходит. Сайт не требует авторизации для просмотра любого контента.   -  person epaps    schedule 15.12.2010


Ответы (10)


плохое поведение может заблокировать некоторые известные вредоносные IP-адреса. он работает вместе с ProjectHoneyPot и предотвращает попадание плохих IP-адресов на вашу веб-страницу еще до ее полной загрузки...

также есть способ скрыть страницу входа с помощью .htaccess
заблокировать всех, кто пытается войти более нескольких раз, как уже указал Джимми

кроме того, вам, вероятно, следует применять следующие методы:

  • не используйте учетную запись администратора (создайте другую учетную запись с правами администратора, но с именем пользователя, отличным от admin, а затем удалите учетную запись администратора по умолчанию)
  • принудительное использование SSL
  • используйте надежные пароли
person tkit    schedule 15.12.2010
comment
Обратите внимание, что совет по ссылке hide your login page выше по-прежнему не защитит wp-login.php, который может быть размещен непосредственно ботом. - person montrealist; 12.04.2013

Как мне добавить пароль к одному файлу?

Добавьте это к текущему .htaccess WP:

<FilesMatch "wp-login.php">
    AuthName "WordPress Admin"
    AuthType Basic
    AuthUserFile /path/to/.htpasswd
    require valid-user
</FilesMatch>
person TheDeadMedic    schedule 14.12.2010
comment
Это решение, хотя и хорошее, лишит пользователя возможности выйти из системы (появится окно базовой аутентификации) - особенно раздражает при использовании woocommerce... раздражает то, как выход из WordPress использует файл wp-login.php. - person SolaceBeforeDawn; 21.11.2019

создайте правило .htaccess для каталога wp-admin и задайте для него либо заданный список IP-адресов, либо комбинацию пользователя/пароля. Вы не хотите начинать взламывать WordPress, если можете избежать этого, так как следующее обновление просто отменит ваши изменения, и установка его на уровне Apache .htaccess будет намного эффективнее, чем попытка исправить WordPress.

person FatherStorm    schedule 14.12.2010

В чем проблема просто ограничить количество попыток входа в систему по IP-адресу? http://wordpress.org/extend/plugins/limit-login-attempts/

person Jimmy    schedule 14.12.2010
comment
Я могу ошибаться в этом, но я думаю, что проблема здесь в том, что даже если они не могут войти в систему, то, что они делают, по-прежнему вызывает перезагрузку страницы. Имеет ли это смысл? - person epaps; 15.12.2010
comment
Все равно перезагружает страницу. Сколько трафика он получает? - person Jimmy; 15.12.2010
comment
Страница буквально получает в 50 раз больше трафика, чем любая другая страница. И мы говорим о тысячах здесь. - person epaps; 16.12.2010
comment
Я говорю, используйте комбинацию моего предложения и предложения pootzko. Однако я бы предостерег от ограничения входа в систему определенными IP-адресами, потому что это может сделать невозможными экстренные изменения. Идите с плохим поведением и ограничьте попытки входа в систему. - person Jimmy; 16.12.2010

Чтобы обновить epaps выше, ИЗМЕНИТЬ и ответить на аналогичный вопрос Есть ли способ переименовать или скрыть wp-login.php?, я тоже нашел правила .htaccess, сгенерированные (теперь уже давно заброшенным) плагином скрытого входа быть наименее сложным, но наиболее эффективным средством предотвращения прямого доступа к wp-login.php/wp-admin и защиты от различных атак (в частности, перебора).

Другие «решения», которые я прочитал, требуют функций php, изменений в wp-config.php и перезаписи .htaccess. Или установка еще одного (громоздкого) плагина! Многие из них либо блокируют только URI /wp-admin/ (это легко разрушить, перейдя прямо к wp-login.php), либо прерывают логин комментаторов/клиентов.

Последняя версия плагина скрытого входа была v1.3 и была совместима с версиями WordPress от 2.3 до 2.7.1. Последний снимок Интернет-архива от 15 октября 2011 г. можно найти здесь, где можно скачать Stealth-Login.1.3.zip. Совместимую версию WordPress можно загрузить из архива релизов — https://wordpress.org/download/release-archive/. Выполните знаменитую 5-минутную установку, разархивируйте плагин скрытого входа в /wp-content/plugins, и теперь вы можете создать набор правил для собственного использования.

Мой, как показано ниже, отлично работает на WordPress 4.7.4 с WooCommerce 3.0.5. Единственное изменение, которое я сделал, — это добавление условия перезаписи в строке 12. Это было необходимо для предотвращения поломки WooCommerce /my-account/customer-logout (это было перенаправление 302 без URI /wp-login.php — это означает, что строка запроса на его собственный не будет выполнять выход из системы, поэтому ничего не произошло.Обратите внимание, что строка была оставлена ​​​​открытой для получения переменной wpnonce.

Итак, как отмечалось ранее, это лучшее решение, которое я нашел, и его даже можно заставить работать с WooCommerce. Так просто, но так эффективно — спасибо epaps за указание на это.

RewriteRule ^signout wp-login.php?action=logout&_wpnonce=a3d57642ab&stealth_out_key=ow4hzd5lxudcetbgbfreaox6c1 [L]
RewriteRule ^signin wp-login.php?stealth_in_key=05gvov4wuuruahpuchpohavitl&redirect_to=https://yourwebsite.com/wp-admin/ [R,L]
RewriteRule ^admin wp-admin/?stealth_admin_key=f4ji1q6tpwr55s5a0h65clg0qk [R,L]
RewriteCond %{HTTP_REFERER} !^https://yourwebsite.com/wp-admin 
RewriteCond %{HTTP_REFERER} !^https://yourwebsite.com/wp-login\.php 
RewriteCond %{HTTP_REFERER} !^https://yourwebsite.com/signin 
RewriteCond %{HTTP_REFERER} !^https://yourwebsite.com/admin 
RewriteCond %{QUERY_STRING} !^stealth_in_key=05gvov4wuuruahpuchpohavitl 
RewriteCond %{QUERY_STRING} !^stealth_out_key=ow4hzd5lxudcetbgbfreaox6c1 
RewriteCond %{QUERY_STRING} !^stealth_reg_key=rue2bekyask21pwtegavqbbp5n 
RewriteCond %{QUERY_STRING} !^stealth_admin_key=f4ji1q6tpwr55s5a0h65clg0qk 
RewriteCond %{QUERY_STRING} !^action=logout&redirect_to=https%3A%2F%2Fyourwebsite.com%2Fmy-account%2F&_wpnonce= 
RewriteRule ^wp-login\.php https://yourwebsite.com [L] 
RewriteCond %{QUERY_STRING} ^loggedout=true 
RewriteRule ^wp-login\.php https://yourwebsite.com [L] 
person user1138    schedule 30.04.2017

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

person John Parker    schedule 14.12.2010

В качестве дополнения к вашей безопасности вы можете попробовать этот простой плагин WordPress:

http://themext.com/protected-wp-login/

Веб-сайт больше не доступен, но код все еще находится на GitHub.

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

person Alvego    schedule 18.04.2013
comment
Спасибо, действительно полезный плагин. Я уже использую его для защиты моей страницы wp-login. - person starikovs; 18.04.2013

Я создал плагин, который позволяет вам настраивать URL-адрес входа, а также предотвращает команды удаленной формы $_POST, проверяя URL-адрес запроса.

Он не совершенен с остальными URL-адресами входа в WP, которые находятся на панели инструментов и ссылкой для потерянного пароля, но он сократил количество попыток входа в систему до нуля в течение нескольких дней во время все еще продолжающихся атак методом перебора в 2013 году.

http://wordpress.org/extend/plugins/stealth-login-page/

person Jesse Petersen    schedule 06.05.2013

Это может быть атака грубой силы

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

add_filter( 'xmlrpc_methods', 'remove_xmlrpc_pingback_ping' );
function remove_xmlrpc_pingback_ping( $methods ) {
unset( $methods['pingback.ping'] );

return $methods;
}

и измените страницу wplogin, используя следующий плагин< /а>

person Mohan Kumar    schedule 23.02.2016

Кажется, я нашел ответ на этот вопрос.

Я долго боролся с этими попытками входа в систему и решил провести эксперимент.

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

Я настроил учетную запись пользователя, которую назвал Admin, и установил пароль «12345». Я перенаправил эту учетную запись на html-страницу, которую я называю «заблокированной». Сначала я был удивлен, что боты до сих пор не могут войти.

Две недели назад наконец появился бот. С тех пор у меня не было никаких приступов. После этого никаких атак.

Это может быть удачей, но это также может сработать.

person Tom Egil Dørum    schedule 05.10.2013
comment
Это НЕ работает и ОЧЕНЬ ОПАСНО. Пожалуйста, удалите этот совет. - person JoostS; 04.07.2016