1、编写脚本selinux.sh,实现开启或禁用SELinux功能
#!/bin/bash
read -p "Please enter enforcing/disabled to enable or disable selinux: " cmd sestatus=`awk -F "=| " '/^SELINUX=/{print $2}' /etc/selinux/config`
sed -i "s/SELINUX=$sestatus/SELINUX=$cmd/g" /etc/selinux/config
echo -e "selinux status is already \033[34m$cmd\033[0m, restart the system to take effect."
2、统计/etc/fstab文件中每个文件系统类型出现的次数
awk -F " " '! /^#|^$/{count[$3]++}END{for(i in count){print count[i],i}}' /etc/fstab |sort -nr
3、提取出字符串Yd$C@M05MB%9&Bdh7dq+YVixp3vpw中的所有数字
echo 'Yd$C@M05MB%9&Bdh7dq+YVixp3vpw'| awk -F "" '{for(i=1;i<=NF;i++){if($i ~ /[0-9]/){print $i}}}'
4、解决DOS攻击生产案例:根据web日志或者或者网络连接数,监控当某个IP 并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频 率每隔5分钟。防火墙命令为:iptables -A INPUT -s IP -j REJECT
vim monitor_access.sh
#!/bin/bash
awk '{count[$1]++}END{for(i in count){if(count[i]>200){print count[i],i}}}' /var/log/httpd/access_log|sort -nr > /data/iplist.txt
while read count ip;do
iptables -A INPUT -s $ip -j REJECT &> /dev/null
echo "来自$ip IP5分钟内访问了webserver超过200次,实际请求次数:$count,威胁`hostname`主机安全,已被拒绝!!!" >> /data/iptables.log
done < /data/iplist.txt
添加计划任务5分钟执行一次
crontab -e
*/5 * * * * /bin/bash /data/monitor_access.sh &> /dev/null