summaryrefslogtreecommitdiff
path: root/usr.sbin/periodic/etc/security/800.loginfail
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/periodic/etc/security/800.loginfail')
-rwxr-xr-xusr.sbin/periodic/etc/security/800.loginfail11
1 files changed, 9 insertions, 2 deletions
diff --git a/usr.sbin/periodic/etc/security/800.loginfail b/usr.sbin/periodic/etc/security/800.loginfail
index 19bf9a4b3b91..91564185b653 100755
--- a/usr.sbin/periodic/etc/security/800.loginfail
+++ b/usr.sbin/periodic/etc/security/800.loginfail
@@ -39,7 +39,14 @@ fi
LOG="${security_status_logdir}"
-yesterday=`date -v-1d "+%b %e "`
+# Support both RFC 3164 (traditional) and RFC 5424 syslog timestamps.
+yesterday_3164="$(date -v-1d '+%b %e ')"
+prefix_3164="^${yesterday_3164}"
+
+yesterday_5424="$(date -v-1d -I)"
+prefix_5424="^<[0-9]{1,3}>1 ${yesterday_5424}T"
+
+prefix="(${prefix_3164}|${prefix_5424})"
catmsgs() {
find ${LOG} -name 'auth.log.*' -mtime -2 |
@@ -57,7 +64,7 @@ if check_yesno_period security_status_loginfail_enable
then
echo ""
echo "${host} login failures:"
- n=$(catmsgs | egrep -ia "^$yesterday.*: .*\b(fail(ures?|ed)?|invalid|bad|illegal|auth.*error)\b" |
+ n=$(catmsgs | egrep -ia "${prefix}.*\b(fail(ures?|ed)?|invalid|bad|illegal|auth.*error)\b" |
tee /dev/stderr | wc -l)
[ $n -gt 0 ] && rc=1 || rc=0
fi