zoukankan      html  css  js  c++  java
  • 自动抓包shell脚本

            由于机房核心下的客户众多,其中不免很多大客户,正所谓树大招风,近期机房某些客户总是被流量攻击,最行之有效的处理的办法就是找到具体被攻击的ip地址,然后在核心带宽能承受的情况下,在上层核心把该ip配置空路由将攻击流量拦截在核心层;超过我们核心带宽承受能力的,将该ip报给运营商封禁处理也能快速的将故障影响时间缩小至最短,以保证其他用户的正常使用.
            之前的处理方式要么是发现故障让现场技术到核心去抓包(缺点一:从休息室到机房机柜旁边并配置好抓包程序的时间延误;缺点二:也可能抓包的时候攻击已经停止了,这样就无法判断出具体的故障点);要么是核心上提前配置好镜像端口,将上联流量镜像到一台抓包服务器上,并将服务器管理网卡上配置不同核心下地线路ip(以免发生攻击时无法远程登录);发生故障的时候直接远程登录tcpdump抓包来分析.
             但是有些流量攻击是在半夜,爬起来去抓包的时候攻击都已经停止.不要说协助被攻击的客户分析解决问题了,甚至连后期的故障说明都没办法出;所以为了提高判断故障的速度和保留客户被攻击的数据依据,我在网上找了些资料根据实际设备环境写了个简单的自动抓包脚本.
    下面是脚本内容和详细命令说明:

    1:抓包脚本 tcpdump.sh

    #!/bin/sh
    while [ 1 ]
    do
    STIME=`date +%F"@"%H%M%S`     #抓取抓包时间
    DATE_DIR=`date +%F`           #抓取抓包文件夹日期
    if [ ! -d /data/$DATE_DIR ];then
    mkdir -p /data/$DATE_DIR      #判断目标文件夹下是否有该日期的目录,有则忽略,无则创建
    fi
    /usr/sbin/tcpdump -i eth1 -c 30000 -w /data/$DATE_DIR/$STIME.pcap > /dev/null 2>&1 &      #后台抓包,监控eth1端口,每次自动抓包3w个自动停止并保存到相应目录,这个值可以根据需要来修改
    sleep 1m  #抓包后停止1分钟继续抓,该值可以根据需要来修改
    done
    

    2:监控硬盘使用率脚本 modisk.sh ,由于连续抓包会生成众多pcap数据文件,非常占用硬盘空间,所以监控硬盘使用率是保证监控脚本健康运行的前提条件,下面写了个脚本,可以设定计划任务,每6个小时执行一次(可根据需要来修改),监控硬盘使用率大于50%(可以根据情况来修改),则自动筛选出最早的数据文件夹并删除.

    #!/bin/bash
    FREEDISK=`df -h|grep "/dev/sda1"|awk '{print $5}'|awk -F % '{print $1}'`  #抓取磁盘占用百分比
    HEADDIR=`ls -l /data|grep ^d|awk '{print $NF}'|sort|head -n 1`           #抓取之间最靠前的文件夹名称
    if [ "$FREEDISK" -ge "50" ];then
    rm -rf /data/"$HEADDIR"                                                  #判断磁盘占用百分比是否超过设定阈值,如果不超过则忽略并退出脚本,超过则执行删除HEADDIR目录
    fi
    

    3: 监控抓包脚本运行状态的脚本 motcpdump.sh , 由于机器长期运行,中间又不可能天天登陆服务器去检查抓包脚本是否在运行中怎么办? 下面脚本可以实现这个自动巡检的功能.

    #!/bin/bash
    
    MOTCPDUMP=`ps -elf|grep tcpdump|grep -v grep`   #抓取系统进程中是否有tcpdump进程
    if [ ! "$MOTCPDUMP" ];then
    /bin/bash /home/tcpdump.sh &                    #判断有则忽略并退出,没有则重新后台执行该脚本
    fi
    

    将上述脚本按需要加入计划任务即可.

    验证部分:

    下面是抓包脚本使用情况的截图

    1:查看抓包数据文件夹

    2:查看自动抓包的数据列表


    3:下载需要分析的历史数据包


    4:使用wireshark等工具本地分析数据



    PS:从以上数据中可以很明显看到是139.66这个ip遭受到ddos攻击.

    经过几个月的测试和使用,脚本运行正常并在日常网络故障判断中起到了很大作用,现分享出来大家一起学习和研究,共同进步.

  • 相关阅读:
    Algebra, Topology, Differential Calculus, and Optimization Theory For Computer Science and Machine Learning 第50章 读书笔记(待更新)
    Algebra, Topology, Differential Calculus, and Optimization Theory For Computer Science and Machine Learning 第49章 读书笔记(待更新)
    Algebra, Topology, Differential Calculus, and Optimization Theory For Computer Science and Machine Learning 第48章 读书笔记(待更新)
    Spring Boot 中使用 Quartz 实现任务调度
    实战 FastDFS Java 客户端上传文件
    分布式文件系统之 FastDFS
    Java 持久层框架之 MyBatis
    C语言实现贪吃蛇
    [转载]分享三篇非常好的学习心得
    selenium加载cookie报错问题:selenium.common.exceptions.InvalidCookieDomainException: Message: invalid cookie domain
  • 原文地址:https://www.cnblogs.com/quyanan/p/4446895.html
Copyright © 2011-2022 走看看