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