DDOS攻击以及预防

时间:2022-06-01 17:08:43
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