shell小脚本4

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

SELinux有三种模式
Enforcing:强制模式。代表SELinux在运行,且已经开始限制domain/type之间的验证关系
Permissive:宽容模式。不会限制domain/type之间的验证关系,即使验证不正确,进程仍可以对文件进行操作。不过如果验证不正确会发出警告
Disabled:关闭模式。SELinux并没有实际运行
#!/bin/bash
#2020.1.11
file="/etc/selinux/config"

echo "Select Install
    1 enforcing 强制模式
    2 permissive 宽容模式
    3 disabled 关闭模式
    4 exit 退出
"
sleep 0.1
read -p "Please Input 1,2,3,4: " ID
if [[ $ID == 1 ]]; then
  sed -ri "s@^(SELINUX=).*\$@\1enforcing@g" $file
   sed -rn "/^(SELINUX=).*\$/p" $file
  echo "请重启服务器才可以生效"
elif [[ $ID == 2 ]]; then

sed -ri "s@^(SELINUX=).*\$@\1permissive@g" $file
 sed -rn "/^(SELINUX=).*\$/p"  $file
echo "请重启服务器才可以生效"
elif [[ $ID == 3 ]]; then

sed -ri "s@^(SELINUX=).*\$@\1disabled@g" $file
 sed -rn "/^(SELINUX=).*\$/p" $file
echo "请重启服务器才可以生效"
else
    exit
fi

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

awk '/^[^#|^$]/{print $3}' /etc/fstab |uniq -c|sort -n

第二种

awk '/^[^#]/{fs[$3]++}END{for(i in fs) {print i,fs[i]}}' /etc/fstab|sort -nrk2

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

#!/bin/bash
#Author: wuhen

while true
do
netstat -an | grep ESTAB | awk -F "[ :]+" '{print $6}' | sort | uniq -c |while read line
do
        pv=`echo $line | awk '{print $1}'`
        ip=`echo $line | awk '{print $2}'`
        if [ $pv -gt 100 ] && [ `iptables -L -n | grep $ip | wc -l` -eq 0 ];then
                iptables -A INPUT -s $ip -j REJECT
                echo "$ip is rejected" > /tmp/reject_iptables_ip$(date +%F).log
        fi
done
sleep 180
done
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值