当前位置:七道奇文章资讯系统安全Linux安全
日期:2011-04-26 23:27:00  来源:本站整理

Linux Nginx VPS下简单办理CC攻击[Linux安全]

赞助商链接



  本文“Linux Nginx VPS下简单办理CC攻击[Linux安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

一,预备工作

1,登录进VPS掌握面板,预备好随时重启VPS.

2,关闭Web Server先,太高的负载会招致背面的操作很难举行,乃至直接无法登录SSH.

3,以防万一,把设置的Web Server系统启动后自动运行去掉.

(假如已经无法登录进系统,并且重启后负载太高招致方才开机就已经无法登录,可接洽管理员在母机上封掉VPS的IP或80端口,在母机上用虚拟掌握台登录进系统,然后举行2&3的操作,之后解封)

二,找出攻击者IP

1,在网站根目录成立文件ip.php,写入下面的内容.

<?php

$real_ip = getenv(‘HTTP_X_FORWARDED_FOR');

if(isset($real_ip)){

shell_exec("echo $real_ip > real_ip.txt");

shell_exec("echo $_SERVER['REMOTE_ADDR']> proxy.txt”);

}else{

shell_exec("echo $_SERVER['REMOTE_ADDR'] > ips.txt”)"

}

echo'服务器遭到攻击,正在汇集攻击源,请在5分钟后拜候本站,5分钟内多次拜候本站有大概会被当作攻击源封掉IP.谢谢合作!';

?>

2,设置伪静态,将网站下的全部拜候都rewrite到ip.php.

Nginx法则:

rewrite (.*) /ip.php;

Lighttpd法则:

url.rewrite = (

“^/(.+)/?$" => "/ip.php”

)


3,启动Web Server开始汇集IP

举行完1和2的设置后,启动Web Server,开始记录IP信息.

汇集时间倡议为3到5分钟,然后再次关闭Web Server.

real_ip.txt,这个文件中保存的IP有80%以上都相同的,这个IP就是攻击者实施攻击的平台的IP.

proxy.txt,这个文件中保存的是攻击者调用的代理服务器的IP,需求封掉.

ips.txt,这里记录的是未表现出代理服务器特点的IP,按照拜候次数判断能否为攻击源.

三,对上一段的增补

假如VPS上启用了WEB日记,可以查看日记文件的增长速度来判断是哪个站点被攻击.

假如没有启用日记,并且站点数目很少,暂时启用日记也很便利 .

假如没有启用日记,并且站点数目过量,可以利用暂时的Web Server配置文件,不绑定虚拟主机,设置一个默许的站点.然后在ip.php里加入下面一行
shell_exec("echo $_SERVER['HTTP_HOST']>> domain.txt”);



domain.txt里将保存被拜候过的域名,被CC攻击的站点将在里面占绝大大都.

四,开始封堵IP

成立文件ban.php

<?

$threshold = 10;

$ips = array_count_values(file('ips.txt'));

$ban_num = 0;

foreach($ips as $ip=>$num){

if($num > $threshold){

$ip = trim($ip);

$cmd = “iptables -I INPUT -p tcp --dport 80 -s $ip -j DROP”;

shell_exec($cmd);

echo “$ip baned! ”;

$ban_num ++;

}

}

$proxy_arr = array_unique(file('ips.txt'))'

foreach($proxy_arr as $proxy){

$proxy = trim($proxy);

$cmd = “iptables -I INPUT -p tcp --dport 80 -s $ip -j DROP”;

shell_exec($cmd);

echo “$ip baned! ”;

$ban_num ++;

}

echo “total: $ban_num ips ”;

?>

用下面的号令履行脚本(确保php号令在PATH中)

php ban.php

这个脚本依靠于第二段中ips.txt里保存的后果,当此中记录的IP拜候次数超越10次,就被当作攻击源给屏蔽掉.假如是代理服务器,则不判断次数直接 封掉.

封完IP之后,把全部的网站设置恢复正常,站点可以持续正常运行了.

五,一些细节

为保持对操作历程的描写尽大概简便,没有在上面的内容中加入过量的注释,留在这段统一报告.

1,关于“代理服务器”的一些本质

两个与TCP&HTTP协议相关的值,REMOTE_ADDR和HTTP_X_FORWARDED_FOR.

(1)REMOTE_ADDR老是取离Web服务器最接近的一台主机的IP,假如没有利用代理,这个值就是拜候者本身的IP,假如利用了代理,这个值就是 代理服务器的IP,假如通过量个代理服务器举行的衔接,这个值就是到达Web服务器前最后一台代理服务器的IP.

REMOTE_ADDR是由TCP/IP层决意的,不能改正不能假造.

(2)HTTP_X_FORWARDED_FOR,因为这个值是属于HTTP部份,而不是TCP/IP,所以这个值不管是什么,都不影响数据的传输.事实 上,普通情形下,假如是拜候者直接拜候Web服务器,这个值为空;通过透明代理的时刻,这个值会被代理服务器设置为拜候者的IP;通过匿名代理衔接时,这 个值大概为代理服务器的IP也大概是空的也有大概是随机的.

HTTP_X_FORWARDED_FOR可以被肆意改正.大大都代理服务器都是透明代理,也就是说,会把这个值设置为最原始拜候者的IP.

2,关于办理CC攻击的层面问题

按处理效率从高到低布列.

(由于本文是针对VPS服务器所写,而VPS简单来说就是服务器的低端替换品,内存和CPU等资源广泛偏低,当然是处理效率越高越好.)

(1)网络传输层.也就是本文所用的iptables,这个工具本身是工作于系统内核,在成立网络衔接时直接把攻击者的衔接给否了.在这一层面上将攻击源处理掉后,损耗掉的资源几近可以忽视不计.

(2)Web Server层,大大都Web Server都可以设置禁止拜候的IP.在这一层上办理的意义和上面的差不多,但是效率要差些.

(3)脚本层,从脚本程序上拟定合适于本身的战略过滤掉攻击源.网络上有很多传播的在这一层面的办理筹划,但是不太实用于VPS,并且设置难度大概要增添几倍大概几十倍.

3,为什么不是从日记汇集IP?

主如果考虑两点,一是大大都VPS利用者都因为硬盘空间太小,常常排除日记很麻烦,而直接禁止了日记.

二是假如从日记汇集IP,脚本复杂程度要高很多,并且大概要按照情形做些调整,考虑到将要读到本文的人大大都都未必掌握更多的技术,本文的目的就是循序渐进的依本文举行操作,便可办理问题   以上是“Linux Nginx VPS下简单办理CC攻击[Linux安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • windows下的近似linux下的grep号令--findstr
  • linux下mysql链接被防火墙禁止的办理办法
  • Linux下mysql新建账号及权限设置办法
  • SUSE Linux下搭建Web服务器
  • Windows/Linux MySQL忘掉密码重置密码教程
  • Linux下Apache自动监测重启脚本(智能化程度较高)
  • linux备份 linux克隆 linux clone
  • <b>为什么 Linux不需求碎片整理</b>
  • CentOS6 yum搭建Linux+Nginx+PHP+MYSQL(LNMP)
  • Linux系统有效防备ARP攻击
  • Linux下 Memcache的安装和简单管理
  • 笔记本预装linux重装成windows系统
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .