第十一周、selinux与AWK

本文主要介绍了如何编写脚本selinux.sh来控制SELinux的启用或禁用,利用AWK统计/etc/fstab中文件系统类型的频率,从特定字符串中提取数字,以及解决DOS攻击的生产案例,通过监控IP并发连接数或PV,用iptables封禁异常IP。
摘要由CSDN通过智能技术生成
1、编写脚本selinux.sh,实现开启或禁用SELinux功能
#!/bin/bash
if grep SELINUX=disabled /etc/selinux/config &>/dev/null;then
    echo "selinux is stop"
elif grep SELINUX=enforcing /etc/selinux/config &>/dev/null;then                                                                                             
    echo "selinux is start"
fi
read -p "please input (start or stop):" ST
case $ST in
start)
        sed -i s#SELINUX=disabled#SELINUX=enforcing# /etc/selinux/config
        echo selinux is start
        ;;
stop)
        sed -i s#SELINUX=enforcing#SELINUX=disabled# /etc/selinux/config
        echo selinux is stop
        ;;
*)
        echo "please input (start or stop)"
        ;;
esac

2、统计/etc/fstab文件中每个文件系统类型出现的次数
[root@CentOS7 ~]# awk '/^U/{print $3}' /etc/fstab |uniq -c
      3 xfs
      1 swap
3、提取出字符串Yd$C@M05MB%9&Bdh7dq+YVixp3vpw中的所有数字
[root@CentOS7 ~]# echo 'Yd$C@M05MB%9&Bdh7dq+YVixp3vpw' |awk -F '[^[:digit:]]' '{print $7,$10,$14,$22}'
05 9 7 3

4、解决DOS攻击生产案例:根据web日志或者或者网络连接数,监控当某个IP 并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频 率每隔5分钟。防火墙命令为:iptables -A INPUT -s IP -j REJECT
#!/bin/bash
SLEEPTIME=300
while true ;do
	ss -nt |awk -F ' +|:' '!/^S/{ip[$(NF-2)]++}END{for(i in ip){print i,ip[i]}}' >ss.log
	while read ip num;do
        if [ $num -ge 1 ];then
                iptables -A INPUT -s $ip -j REJECT                                                                                
        fi
	done <ss.log
	sleep $SLEEPTIME
done

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值