TMAegis
More rules for freebsd

TMA-FREEBSD-4.1.2.1

Ensure at is restricted to authorized users

HighLevel 1Automatedfreebsd

Description

The at utility allows some moderately complex time specifications. It accepts times of the form HHMM or HH:MM to run a job at a specific time of day. On many systems, only the system administrator is authorized to schedule at jobs. Using the at.allow file to control who can run at jobs enforces this policy. It is easier to manage an allow list than a deny list. Audit: /var/at/at.allow must exist with mode 640 or stricter, owner root or daemon, group wheel; at.deny must be absent or equally restricted.

How it is checked

Audit method: Shell command

shell
r=compliant; for f in /var/at/at.allow; do if [ -e "$f" ]; then set -- $(ls -ld "$f"); s=$(printf '%s %s %s\n' "$1" "$3" "$4" | awk -v m='rw-r-----' -v o='root|daemon' -v g='wheel' '{ok=1; for(i=1;i<=9;i++) if(substr(m,i,1)=="-" && substr($1,i+1,1)!="-") ok=0; if(o!="" && $2 !~ ("^(" o ")$")) ok=0; if(g!="" && $3 !~ ("^(" g ")$")) ok=0; print (ok ? "ok" : $0)}'); [ "$s" = ok ] || r="$f: $s"; else r="$f: missing"; fi; done; for f in /var/at/at.deny; do if [ -e "$f" ]; then set -- $(ls -ld "$f"); s=$(printf '%s %s %s\n' "$1" "$3" "$4" | awk -v m='rw-r-----' -v o='root|daemon' -v g='wheel' '{ok=1; for(i=1;i<=9;i++) if(substr(m,i,1)=="-" && substr($1,i+1,1)!="-") ok=0; if(o!="" && $2 !~ ("^(" o ")$")) ok=0; if(g!="" && $3 !~ ("^(" g ")$")) ok=0; print (ok ? "ok" : $0)}'); [ "$s" = ok ] || r="$f: $s"; else :; fi; done; echo "$r"
Expected output
compliant

How it is fixed

Fix method: Guidance or infrastructure patch

Run the following script to: /var/at/at.allow: o Create the file if it doesn't exist o Change owner or user root or daemon o Change group to wheel o Change mode to 640 or more restrictive -IF- /var/at/at.deny exists: o Change owner or user root o Change group to wheel o Change mode to 640 or more restrictive #!/bin/sh { [ ! -e "/var/at/at.allow" ] && touch /var/at/at.allow chown root:wheel /var/at/at.allow chmod u-x,g-wx,o-rwx /var/at/at.allow [ -e "/var/at/at.deny" ] && chown root:wheel /var/at/at.deny [ -e "/var/at/at.deny" ] && chmod u-x,g-wx,o-rwx /var/at/at.deny }

Properties

Operating systems
Any
Tags
freebsdaccounts
Reference
CIS FreeBSD 14 Benchmark v1.0.1 - 4.1.2.1 Ensure at is restricted to authorized users

Check this host

Run this on a machine you are allowed to audit. The scan is read-only.

shell
tmaegis scan --target freebsd