您的位置:首页 > 运维架构 > Linux

DDOS攻击以及预防

2013-11-11 11:04 253 查看
DDOS拒绝服务攻击:

    分散式阻断服务攻击,洪水攻击。利用网络上已经被攻陷的电脑作为僵尸,向某一特定的目标电脑发动密集式的拒绝服务要求,用以把目标电脑的网络资源以及系统资源耗尽,使之无法项真正正常请求的用户提供服务。

    以消耗系统资源为主要攻击手段

  1、ddos攻击类型:

    1)syn flood(syn泛洪)

      tcp标记位:syn(请求)、ack(确认)、fin(结束)、rst(重置)、psh(推送)、urg(紧急请求,优先传输)。

      通过修改数据包的源地址,向服务器发送大量的syn包,消耗系统的资源。

    2)land sttack

      发起连接时,修改源ip地址为其他机器地址,源和目的ip的服务器都是被攻击对象。

    3)ICMP洪水攻击

    4)teardrop

      打乱数据包的顺序,修改数据包的偏移量,而使数据包无法重组。

    5)application level flood

      应用层洪泛

  2、DDOS的防护方法

    手工防护、退让策略、路由器设置acl、防火墙设置策略、入侵检测

  3、利用iptables防止拒绝服务攻击。

    iptables防火墙

    1)iptables的表

      raw、mangle、nat、filter

    2)iptables常用命令

      -A:添加规则

       -D:删除规则

      -I:插入规则

      -F:刷新规则链

      -N:添加自定义规则

      -X:删除自定义规则

      -Z:计数器清零

      -L:列出所有规则

      -P:设置默认规则

      -E:编辑指定规则

      -R:替换指定规则

    3)默认规则链

      PREROUTING:路由前,多处理目标地址,

      POSTROUTING:路由后,源地址转换,

      INPUT:处理进入防火墙的数据包,

      OUTPUT:处理从防火墙出去的数据包

      FORWARD:处理经过防火墙,经其转发的数据包。

    4)常用规则项

      -s:指定源地址

      -d:指定目的地址

      -i:指定进入的网络接口

      -o:指定出去的网络接口

      --dport:指定目的端口

      --sport:指定源端口

      -p:指定协议

      --tcp-flags:检查tcp的标记位

      -m:规则扩展

        -m multiport:多端口扩展

        -m state:状态扩展

          state:NEW,ESTABLISHED,RELATED,INVALID

        -m limit:速率限制

          -m limit --limit 5/s --limit-burst 8

          -m iprange --src-range 10.0.0.0-10.0.0.10

    5)跳转处理

      ACCEPT:允许通过

      DROP:丢弃

      LOG:日志记录

      SNAT:源地址转换

      DNAT:目标地址转换

      REDIRECT:重定向

      MASQUERADE:自动匹配地址

      REJECT:退回数据包

      MARK:对数据包进行标记

    6)iptables实际应用

      a、基于连接数的设计

      b、基于连接总数进行限制

        iptables -A INPUT -s 10.0.0.0/16 -p tcp --dport 21 -m connlimit --connlimit-above 2 -j REJECT

      c、基于地址列表进行限制

        #iptables -A INPUT -p tcp --dport 23 --tcp-flags syn,ack,fin syn -m recent --name telpool --rcheck --seconds 120 --hitcount 2 -j DROP

        #iptables -A INPUT -p tcp --dport 23 --tcp-flags syn,ack,fin syn -m recent --name telpool --set -j ACCEPT

          --name:设定列表名称,默认为defalut

          --resource:根据源地址进行记录,默认

          --rdest:根据目标地址进行记录

          --seconds:指定时间之内

          --hitcount:命中次数

          --set:将地址添加进列表

          --rcheck:检查地址是否在列表中,以第一个匹配的开始计算时间

          --update:和rcheck类似,以最后一个匹配开始计算时间

          --remove:在列表中删除相应地址,后跟列表名

            列表的位置/proc/net/xt_recent
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息