zoukankan      html  css  js  c++  java
  • 第十周--IP监控任务脚本实现

    1、编写脚本selinux.sh,实现开启或禁用SELinux功能

    [root@centos7 ~]# cat selinux.sh 
    #!/bin/bash
    #FileName:  selinux.sh
    if [[ $1 =~ ^[Oo][Nn]$ ]];then
        sed -i 's/^SELINUX=.*/SELINUX=enforcing/' /etc/selinux/config &> /dev/null
            setenforce 1 &> /dev/null
    elif [[ $1 =~ ^[Oo][Ff][Ff]$ ]];then
        sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config &> /dev/null
        setenforce 0 &> /dev/null
    else
        echo "you are  error,please input on or off !!!"
    fi
    

    2、统计/etc/fstab文件中每个文件系统类型出现的次数

    [root@centos7 ~]# cat /etc/fstab | awk '/^UUID/{sys[$3]++}END{for(i in sys){print i,sys[i]}}'
    xfs 1
    

    3、提取出字符串Yd$C@M05MB%9&Bdh7dq+YVixp3vpw中的所有数字

    [root@centos7 ~]# echo "Yd$C@M05MB%9&Bdh7dq+YVixp3vpw" |tr -dc '[0-9]
    '
    05973
    

    4、解决DOS攻击生产案例:根据web日志或者或者网络连接数,监控当某个IP 并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频 率每隔5分钟。防火墙命令为:iptables -A INPUT -s IP -j REJECT

    [root@centos7 ~]# cat checkip.sh 
    #!/bin/bash
     
    #environment variable  
    source /etc/profile
    iplist=$(ss -tan | awk -F"[[:space:]]+|:" '/ESTAB/{ip[$(NF-2)]++}END{for(i in ip){print i,ip[i]}}' | awk '{if($2>1)print $1}') 
    for ip in $iplist
    do
            iptables -I INPUT -s $ip -j DROP
            echo "$ip is drop!"
    done
    

    将脚本存到计划任务中,设置定时任务计划:

    [root@centos7 ~]# crontab  -e
    */5 * * * *  /root/checkip.sh
    

      

  • 相关阅读:
    maven的安装和配置以及搭建项目应用
    Spring MVC与Struts2的区别(仅本人浅薄的理解)?
    记录学习PYTHON
    Zookeeper可以干什么
    Redis与Memcache的区别
    Redis持久化的两种方式和区别
    Scala 柯里化
    Redis与Memcached的区别
    高并发的处理策略
    序列化
  • 原文地址:https://www.cnblogs.com/struggle-1216/p/12564095.html
Copyright © 2011-2022 走看看