php apache ddos​​攻击保护,创建自定义黑名单

时间:2015-01-12 20:18:05

标签: php wordpress .htaccess security ddos

我有一个wordpress网站。最近在wp-login.php的严重ddos攻击下。我已将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创建黑名单并且没有被网站破坏的风险?

感谢。

2 个答案:

答案 0 :(得分: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]

答案 1 :(得分:0)

如何在Apache上使用mod_evasive?这样,您可以在短时间内轻松阻止所有尝试连接到特定URL的IP。

您也可以阻止所有尝试连接到虚假登录页面的IP。