【07-01】【07-04】第七周做作业

【07-01】【07-04】第七周做作业

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

#!/bin/bash

#***************************************************************************
# * 
# * @文件: drop.sh 
# * @作者: Fa 
# * @时间: 2022-03-16 03:05                                                                                                                                        
# * @版本: 1.0  
# * @类型: Shell script 
# * 
#************************************************************************** 



IFS=$'\n'     # if判断时候不进行换行处理
PV=20   #设置阈值为20方便测试可以改为100

iplist=$(netstat -tan |awk -F'[ :]+' '/ESTAB/{print $6}'|sort|uniq -c)# 提取访问数量及IP

for ip in $iplist;do
    cnt=`echo $ip|awk '{print $1}'`     #创建变量提取访问数量
    ip=`echo $ip|awk '{print $2}'`      #创建变量提取访问IP
    if [ $cnt -ge $PV ];then            #判断是否大于PV如果大于则写入防火墙限制访问
        iptables -A INPUT -s $ip -j REJECT    #将大于的写入限制日志
        echo `date +%F\ %T` " 连接数:"$cnt  $ip  "is drop" >> /var/log/dropLog.txt   #写入限制日志
    fi
done

写入定时任务

[root@CentOS8 ~]# crontab -l
*/5 * * * * bash /root/drop.sh

使用DDos攻击并手工查看执行效果

[root@CentOS8 ~]# tail -f /var/log/dropLog.txt 
2022-03-16 04:41:30  连接数:29 1.30.161.44 is drop
2022-03-16 04:41:48  连接数:29 1.30.161.44 is drop

执行成功

4、使用awk以冒号分隔获取/ettc/passwd文件第一列 

[root@CentOS8 ~]# cat /etc/passwd |awk -F: '{print $1}'
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
……
posted @ 2022-03-17 10:32  法月将臣  阅读(37)  评论(0)    收藏  举报