123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- #!/bin/bash
-
- case $1 in
- space_left_action)
- EXIST=$(sed -e '/^#/d' -e '/^[ \t][ \t]*#/d' -e 's/#.*$//' -e '/^$/d' /etc/audit/auditd.conf | sed -e 's/\ //'g | grep $1)
- if [ $? -eq 0 ];then
- ACTION=$(sed -e '/^#/d' -e '/^[ \t][ \t]*#/d' -e 's/#.*$//' -e '/^$/d' /etc/audit/auditd.conf | sed -e 's/\ //'g | grep $1 | awk -F '=' '{print $2}')
- if [ "${ACTION,,}" != "email" ];then
- exit 1
- fi
- else
- exit 1
- fi
- ;;
- num_logs)
- EXIST=$(sed -e '/^#/d' -e '/^[ \t][ \t]*#/d' -e 's/#.*$//' -e '/^$/d' /etc/audit/auditd.conf | sed -e 's/\ //'g | grep $1)
- if [ $? -eq 0 ];then
- if [ $(sed -e '/^#/d' -e '/^[ \t][ \t]*#/d' -e 's/#.*$//' -e '/^$/d' /etc/audit/auditd.conf | sed -e 's/\ //'g | grep $1 | awk -F '=' '{print $2}') -$2 $3 ];then
- exit 1
- fi
- else
- exit 1
- fi
- ;;
- max_log_file)
- EXIST=$(sed -e '/^#/d' -e '/^[ \t][ \t]*#/d' -e 's/#.*$//' -e '/^$/d' /etc/audit/auditd.conf | sed -e 's/\ //'g | grep $1=)
- if [ $? -eq 0 ];then
- if [ $(sed -e '/^#/d' -e '/^[ \t][ \t]*#/d' -e 's/#.*$//' -e '/^$/d' /etc/audit/auditd.conf | sed -e 's/\ //'g | grep $1= | awk -F '=' '{print $2}') -$2 $3 ];then
- exit 1
- fi
- else
- exit 1
- fi
- ;;
- max_log_file_action)
- EXIST=$(sed -e '/^#/d' -e '/^[ \t][ \t]*#/d' -e 's/#.*$//' -e '/^$/d' /etc/audit/auditd.conf | sed -e 's/\ //'g | grep $1)
- if [ $? -eq 0 ];then
- ACTION=$(sed -e '/^#/d' -e '/^[ \t][ \t]*#/d' -e 's/#.*$//' -e '/^$/d' /etc/audit/auditd.conf | sed -e 's/\ //'g | grep $1 | awk -F '=' '{print $2}')
- if [ "${ACTION,,}" != "rotate" ];then
- exit 1
- fi
- else
- exit 1
- fi
- ;;
- admin_space_left_action)
- EXIST=$(sed -e '/^#/d' -e '/^[ \t][ \t]*#/d' -e 's/#.*$//' -e '/^$/d' /etc/audit/auditd.conf | sed -e 's/\ //'g | grep $1)
- if [ $? -eq 0 ];then
- ACTION=$(sed -e '/^#/d' -e '/^[ \t][ \t]*#/d' -e 's/#.*$//' -e '/^$/d' /etc/audit/auditd.conf | sed -e 's/\ //'g | grep $1 | awk -F '=' '{print $2}')
- if [ "${ACTION,,}" != "single" ];then
- exit 1
- fi
- else
- exit 1
- fi
- ;;
- account)
- if ! auditctl -l | grep "/etc/passwd" ;then
- exit 1
- elif ! auditctl -l | grep "/etc/shadow";then
- exit 1
- elif ! auditctl -l | grep "/etc/group";then
- exit 1
- elif ! auditctl -l | grep "/etc/gshadow";then
- exit 1
- elif ! auditctl -l | grep "/etc/security/opasswd";then
- exit 1
- fi
- ;;
- network)
- if ! auditctl -l | grep "sethostname" ;then
- exit 1
- elif ! auditctl -l | grep "setdomainname";then
- exit 1
- elif ! auditctl -l | grep "/etc/issue.net";then
- exit 1
- elif ! auditctl -l | grep "/etc/hosts";then
- exit 1
- elif ! auditctl -l | grep "/etc/sysconfig";then
- exit 1
- elif ! auditctl -l | grep "network";then
- exit 1
- fi
- ;;
- apparmor-config)
- if ! auditctl -l | grep "/etc/apparmor/" ;then
- exit 1
- elif ! auditctl -l | grep "/etc/apparmor.d/";then
- exit 1
- fi
- ;;
- failed-access-files-programs)
- if ! auditctl -l | grep "EACCES" ;then
- exit 1
- elif ! auditctl -l | grep "EPERM";then
- exit 1
- fi
- ;;
- setuid-setgid)
- find / -xdev -type f -perm /6000 2>/dev/null | while read line;do
- if ! auditctl -l | grep "$line" ;then
- exit 1
- fi
- done
- ;;
- deletions)
- if ! auditctl -l | grep "rmdir" ;then
- exit 1
- elif ! auditctl -l | grep "unlink";then
- exit 1
- elif ! auditctl -l | grep "unlinkat";then
- exit 1
- elif ! auditctl -l | grep "rename";then
- exit 1
- elif ! auditctl -l | grep "renameat";then
- exit 1
- fi
- ;;
- kernel-modules)
- if ! auditctl -l | egrep -e "(-w |-F path=)/sbin/insmod";then
- exit 1
- elif ! auditctl -l | egrep -e "(-w |-F path=)/sbin/rmmod";then
- exit 1
- elif ! auditctl -l | egrep -e "(-w |-F path=)/sbin/modprobe";then
- exit 1
- elif ! auditctl -l | grep -w "init_module";then
- exit 1
- elif ! auditctl -l | grep -w "delete_module";then
- exit 1
- fi
- ;;
- action_mail_acct)
- EXIST=$(sed -e '/^#/d' -e '/^[ \t][ \t]*#/d' -e 's/#.*$//' -e '/^$/d' /etc/audit/auditd.conf | sed -e 's/\ //'g | grep $1)
- if [ $? -eq 0 ];then
- ACCOUNT=$(sed -e '/^#/d' -e '/^[ \t][ \t]*#/d' -e 's/#.*$//' -e '/^$/d' /etc/audit/auditd.conf | sed -e 's/\ //'g | grep $1 | awk -F '=' '{print $2}')
- if [ "${ACCOUNT,,}" != "root" ];then
- exit 1
- fi
- else
- exit 1
- fi
- ;;
- disk_full_action)
- if grep -i "disk_full_action.*ignore\|disk_full_action.*suspend" /etc/audit/auditd.conf;then
- exit 1
- fi
- ;;
- disk_error_action)
- if grep -i "disk_error_action.*ignore\|disk_error_action.*suspend" /etc/audit/auditd.conf;then
- exit 1
- fi
- ;;
- esac
|