【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
……
浙公网安备 33010602011771号