第十周运维作业
1、编写脚本selinux.sh,实现开启或禁用SELinux功能
#!/bin/bash
conf="/etc/selinux/config"
case "$1" in
on)
sed -ir 's/SELINUX=.*/SELINUX=enforcing/' $conf;;
off)
sed -ir 's/SELINUX=.*/SELINUX=disabled/' $conf;;
*)
echo "Usage: $0 on|off" ;;
esac
2、统计/etc/fstab文件中每个文件系统类型出现的次数
答:
[root@centos7 ~]# grep -iE '^uuid=' /etc/fstab | awk '{print $3}' | uniq -c
3、提取出字符串Yd$C@M05MB%9&Bdh7dq+YVixp3vpw中的所有数字
答:
[root@centos7 ~]# string="Yd$C@M05MB%9&Bdh7dq+YVixp3vpw"
[root@centos7 ~]# echo $string |awk 'gsub(/[^0-9]/," ",$0)'
4、解决DOS攻击生产案例:根据web日志或者或者网络连接数,监控当某个IP 并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频 率每隔5分钟。防火墙命令为:iptables -A INPUT -s IP -j REJECT
答:
#!/bin/bash
ss -nat | sed -rn 's/^([^[:space:]]+).*/\1/p' |sort |uniq -c > iplist.txt
while read count ip;do
if [ $count -gt 100 ];then
iptables -A INPUT -s $ip -j REJECT
echo from $ip access $count >> crack.log
fi
done < iplist.txt
[root@centos7 data]# crontab -e
*/5 * * * * sh /data/dos.sh