~阿弥陀佛~

人生能有多少天是按照自己的想法去活着

被DDOS攻击解决方案

  现象:网站异常卡顿无法正常访问,远程连接卡顿,命令无法正常执行。

  环境: CentOS  LNMP  wordpress

  处理过程:

 1.  连接阿里云控制台,重启并远程连接实例;

 2.  快速定位占用CPU以及IO资源超载的进程并杀掉或stop相关服务释放资源;

 3.  查看项目日志,找到恶意提交数据的IP并在控制台封禁;

 4.  动态查看日志,启动服务,此时资源依然占用过高。登录项目后台,可看到有64万条垃圾评论并且不断有新的评论写入导致数据库读写占用系统资源超载

 5.  关闭新文章评论功能,数据库执行UPDATE wp_posts SET comment_status='closed' 批量更新已发布文章评论状态。

 6.  分析wordpress日志发现,恶意提交数据的IP频繁访问xmlrpc.php文件。该文件是一个远程端口文件,攻击者通过POST请求大量提交数据,访问该文件,从而形成DDOS攻击,导致服务器资源过载受限宕机。

 优化:

wordpress中找到模板函数文件functions.php,添加:add_filter('xmlrpc_enabled', '__return_false');

 再通过.htaccess屏蔽xmlrpc.php文件的访问,这个文件是放在网站空间的根目录下添加以下内容关闭对该文件的访问

<Files xmlrpc.php>  

Order Deny,Allow  

Deny from all  

</Files>

 7.  评论艾特回复攻击者: Fuck you  !!! 或者添加以下代码到functions.php中封禁所有国外IP

/**
* WordPress 显示评论者IP归属地PHP函数
* https://www.aliuyun.cn/wordpress/wordpress-course/management/jinzhi-waiguo-ip.html
**/function aliuyun_getRealIp(){  
$ip=false;
if(!empty($_SERVER["HTTP_CLIENT_IP"])){    
$ip = $_SERVER["HTTP_CLIENT_IP"];  
}  
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {    
$ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);    
if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }    
for ($i = 0; $i < count($ips); $i++) 
{      
if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {        
$ip = $ips[$i];        break;      
}    
}  
}  
return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
} 

function aliuyun_locate($ip) {$ip=aliuyun_getRealIp();    
if(empty($ip)) $ip = get_comment_author_IP();    
$ch = curl_init();  
    $timeout = 5;  
    curl_setopt ($ch, CURLOPT_URL, 'http://ip.taobao.com/service/getIpInfo.php?ip='.$ip);  
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);  
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);  
    $file_contents = curl_exec($ch);  
    curl_close($ch);  
    $result = json_decode($file_contents,true);    
    if ($result['data']['country'] != '中国') {        
    wp_redirect( 'https://www.aliuyun.cn/aliuyun-news/womenshizhongguoren.html' );    
    } else {        
    echo '<!-- 运营商是'.$result['data']['isp'].',IP是'.$ip.',阿柳云禁止一切外国佬访问!
    别问我为什么!因为钓鱼岛是中国的! -->';    }}add_action( 'wp_footer', 'aliuyun_locate' );

可以将代码中的阿里云地址自定义为: Fuck you !!!!!!以此回复外国佬。

Next Post

Previous Post

© 2021 ~阿弥陀佛~

ICP备案号: 京ICP备19038630号

版权所有@ 王力翔

耗时 0.210 秒 | 查询 40 次 | 内存 22.36 MB