#!/usr/bin/env bash{forPARTITIONin$(findmnt-n-l-k-it$(awk'/nodev/ { print $2 }'/proc/filesystems|paste-sd,)|grep-Pv"noexec|nosuid"|awk'{print$1}');doforPRIVILEGEDin$(find"${PARTITION}"-xdev-perm/6000-typef);dogrep-qr"${PRIVILEGED}"/etc/audit/rules.d&&printf"OK: '${PRIVILEGED}' found in auditing rules.\n"||printf"Warning: '${PRIVILEGED}' not found in on disk configuration.\n"donedone}
Verify that all output is OK.
Running configuration
Run the following script to check loaded rules:
#!/usr/bin/env bash{RUNNING=$(auditctl-l)[-n"${RUNNING}"]&&forPARTITIONin$(findmnt-n-l-k-it$(awk'/nodev/ { print $2 }'/proc/filesystems|paste-sd,)|grep-Pv"noexec|nosuid"|awk'{print $1}');doforPRIVILEGEDin$(find"${PARTITION}"-xdev-perm/6000-typef);doprintf--"${RUNNING}"|grep-q"${PRIVILEGED}"&&printf"OK: '${PRIVILEGED}' found in auditing rules.\n"||printf"Warning: '${PRIVILEGED}' not found in running configuration.\n"donedone\||printf"ERROR: Variable 'RUNNING' is unset.\n"}
Verify that all output is OK.
Special mount points
If there are any special mount points that are not visible by default from findmnt as per the above audit, said file systems would have to be manually audited.
Edit or create a file in the /etc/audit/rules.d/ directory, ending in .rules extension, with the relevant rules to monitor the use of privileged commands.
Merge and load the rules into active configuration:
# augenrules --load
Check if reboot is required.
# if [[ $(auditctl -s | grep "enabled") =~ "2" ]]; then printf "Reboot required to load rules\n"; fi
Special mount points
If there are any special mount points that are not visible by default from just scanning /, change the PARTITION variable to the appropriate partition and re-run the remediation.