##自动封IP:分析web或应用日志或者网络连接状态封掉垃圾IP

#!/bin/sh
/bin/netstat -na|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -rn|head -|grep -v -E '192.168|127.0'|awk '{if ($2!=null && $1>4) {print $2}}'>/home/shell/dropip
for i in $(cat /home/shell/dropip)
do
/sbin/iptables -I INPUT -s $i -j DROP
#-m limit --limit /min --limit-burst
echo "$i kill at `date`">>/var/log/ddos
done #!/bin/sh
## search connection established ips
netstat -an |grep EST|awk -F " " '{print $5}' |cut -d ":" -f4 |grep "[0-9]*.[0-9]*.[0-9]*.[0-9]*" |sort |uniq -c |sort -rn |head - >/home/shell/ip_connection.log
## drop ips
cat /home/shell/ip_connection.log |egrep -v "[a-z][A-Z]*" |egrep -v "202.165|192.168|127.0"|while read line
do
count=`echo $line|awk '{print $1}'`
ip=`echo $line|awk '{print $2}'`
if [ $count -ge ]
then
echo "all establish status connection > 100 ip is : $ip"
echo "apply rule ,drop $ip access 100 !"
/sbin/iptables -I INPUT -s $ip -p tcp --dport -j DROP
/sbin/service iptables save
fi
done

最新文章

  1. React 开发注意事项,注意点
  2. Linux设备驱动剖析之Input(三)
  3. 使用XIB实现一个简单view
  4. UIWebview 禁止某个方向滚动
  5. 批处理协同blat自动发邮件
  6. Java入门(3)—— 数组
  7. Ajax 调用webservice 解决跨域请求和发布到服务器后本地调用成功外网失败的问题
  8. VC连接MySql
  9. mssql sqlserver 关键字 GROUPING用法简介及说明
  10. ES优化总结
  11. Mesos的用途
  12. UVA 10815 Andy's First Dictionary【set】
  13. scrapy面试一
  14. springmvc下载文件
  15. 说说Cookie和Session
  16. Spring框架整合Struts2框架的传统方法
  17. 开源WebGIS实施方案(四):GeoServer发布PostGIS数据
  18. 基础概念——何为GNU与GCC
  19. mysql查询最近7天的数据,没有数据自动补0
  20. leetcode-475-Heaters

热门文章

  1. vmware中centos、redhat桥接网络配置
  2. oracle函数 SESSIONTIMEZONE
  3. 解决ubuntu的Idea启动No JDK found. Please validate either IDEA_JDK, JDK_HOME or JAVA_HOME environment variable points to valid JDK installation.
  4. 5款实用的jQuery验证码插件
  5. H3C 配置帧中继交换
  6. CountableThreadPool
  7. ES6 set和map数据结构对对象数组去重简单实现
  8. 【js】vue 2.5.1 源码学习 (十) $mount 挂载函数的实现
  9. P1000 A+B Problem
  10. BAT 脚本判断当前系统是 x86 还是 x64 系统