发表于 2018-8-23 12:20:28

shell防DDOS

  1.编写脚本
  #mkdir /root/bin
  #vi /root/bin/dropip.sh
  #!/bin/sh
  /bin/netstat -na|grep ESTABLISHED|awk ‘{print $5}’|awk -F: ‘{print $1}’|sort|uniq -c|sort -rn|head -10|grep -v -E ’192.168|127.0′|awk ‘{if ($2!=null && $1>4) {print $2}}’>/tmp/dropip
  for i in $(cat /tmp/dropip)
  do
  /sbin/iptables -A INPUT -s $i -j DROP
  echo “$i kill at `date`”>>/var/log/ddos
  done
  修改版:
  #!/bin/bash/bin/netstat -na|grep ESTABLISHED|awk ‘{print $5}’|awk -F: ‘{print $1}’|sort|uniq -c|sort -rn|head -10|grep -v -E ’192.168|127.0′|awk ‘{if ($2!=null && $1>4) {print $2}}’>/tmp/dropip
  for i in $(cat /tmp/dropip)
  do
  /sbin/iptables -A INPUT -s $i -j DROP
  echo “$i kill at `date`”>>/var/log/ddos
  done
  2.增加执行权限
  chmod +x /root/bin/dropip.sh
  3.添加到计划任务,每分钟执行一次
  crontab -e
  */1 * * * * /root/bin/dropip.sh
  说明:
  以上脚本比较简单但很实用,最重要的是第二行,获取ESTABLISHED连接数最多的前10个ip并写入临时文件/tmp/dropip,排除了内部ip段192.168|127.0开头的.通过for循环将dropip里面的ip通过iptables全部drop掉,然后写到日志文件/var/log/ddos

页: [1]
查看完整版本: shell防DDOS