WordPress — php apache ddos ​​атака защиты, создать собственный черный список

У меня есть WordPress сайт. недавно под серьезной атакой DDoS в wp-login.php, Я переименовал wp-login.php к новому mysitename-login.php, и создайте новый пустой файл с именем wp-login.php, Я присоединился к cloudflare, до сих пор получил логин атаки access_log, я пытался mod_evasive, но это убьет googlebot

Теперь я вручную добавляю их в свой .htaccess лайк

<Limit GET POST>
order allow,deny
deny from 108.162.253.180
deny from 173.245.48.134
deny from 173.245.49.187
deny from 173.245.51.180
deny from 173.245.54.66
deny from 108.162.219.
deny from 109.239.235.
allow from all
</Limit>

И у меня есть идея создать .htaccess динамичный.

в течении wp-login.php

$ip=$_SERVER['REMOTE_ADDR'];
// INSERT INTO ip_table (ip) values ($ip);
// ip is unique index
$html='<Limit GET POST>/n/r'
$html.=//select * from ip_table   loop all
$html.='allow from all/n/r</Limit>';
$html.=<<<TXT
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
TXT;
file_put_content($html,'/var/www/html/.htaccess');

Но я боюсь, если во время file_put_content возникнут какие-либо проблемы, .htaccess сломан, мой сайт тоже будет сломан …

Любой лучший способ, чтобы создать черный список с помощью робота доступа wp_login.php а нет риска быть сломанным сайтом?

Благодарю.

0

Решение

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

## Prevent anyone not on my ip whitelist from accessing wp admin
RewriteCond %{REQUEST_URI} ^(/wp-admin|/wp-login.php).*$
RewriteCond %{REMOTE_ADDR} !=111.111.111.111
RewriteCond %{REMOTE_ADDR} !=222.222.222.222
RewriteCond %{REMOTE_ADDR} !=333.333.333.333
RewriteRule ^.*$ / [R=301,L]
0

Другие решения

Как насчет использования mod_evasive для Apache? Таким образом, вы можете легко заблокировать все IP-адреса, которые пытаются подключиться к определенному URL-адресу очень часто за короткий промежуток времени.

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

0

По вопросам рекламы [email protected]