我有一个wordpress网站。 最近在wp-login.php
遭受严重的DDoS攻击。我已将wp-login.php
重命名为新mysitename-login.php
。并创建一个名为 wp-login.php
的新空文件。我已经加入云耀斑,仍然收到攻击登录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
创建黑名单并且没有被破坏的风险?
谢谢。
与其创建黑名单,为什么不创建白名单?如果您允许所有用户登录 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]
将mod_evasive用于 Apache 怎么样?这样,您就可以在短时间内轻松阻止所有尝试经常连接到某个URL的IP。
您也可以阻止所有尝试连接到您的虚假登录页面的 IP。