From 9085a944fed9bd96a384d773de42f1f4caee9e84 Mon Sep 17 00:00:00 2001 From: Bruno Randolf Date: Thu, 14 Sep 2017 15:22:21 +0100 Subject: [PATCH] Adapt regex for case when root login is not allowed Adapt regex of "Exit before auth" for the case when dropbear is configured to not allow root logins (RootLogin 'off'). The log entry in this case looks like this: Exit before auth (user 'root', 0 fails): Exited normally --- bearDropper | 4 ++-- src/bearDropper.sh | 4 ++-- src/config/bearDropper | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/bearDropper b/bearDropper index 776e47c..3717119 100755 --- a/bearDropper +++ b/bearDropper @@ -197,7 +197,7 @@ getLogTime () { # extra validation, fails safe. Args: $1=log line getLogIP () { local logLine="$1" - local ebaPID=`echo "$logLine" | sed -n 's/^.*authpriv.info \(dropbear\[[0-9]*\]:\) Exit before auth:.*/\1/p'` + local ebaPID=`echo "$logLine" | sed -n 's/^.*authpriv.info \(dropbear\[[0-9]*\]:\) Exit before auth.*/\1/p'` [ -n "$ebaPID" ] && logLine=`$cmdLogreadEba | fgrep "${ebaPID} Child connection from "` echo "$logLine" | sed -n 's/^.*[^0-9]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*$/\1/p' } @@ -429,7 +429,7 @@ exitStatus=0 fileRegex="/tmp/bearDropper.$$.regex" uciLoad logRegex 's/[`$"'\\\'']//g' '/has invalid shell, rejected$/d' \ '/^[A-Za-z ]+[0-9: ]+authpriv.warn dropbear\[.+([0-9]+\.){3}[0-9]+/p' \ - '/^[A-Za-z ]+[0-9: ]+authpriv.info dropbear\[.+:\ Exit before auth:.*/p' > "$fileRegex" + '/^[A-Za-z ]+[0-9: ]+authpriv.info dropbear\[.+:\ Exit before auth.*/p' > "$fileRegex" lastPersistentStateWrite="`date +%s`" loadState bddbCheckStatusAll diff --git a/src/bearDropper.sh b/src/bearDropper.sh index 2b58fbf..840824d 100755 --- a/src/bearDropper.sh +++ b/src/bearDropper.sh @@ -108,7 +108,7 @@ getLogTime () { # extra validation, fails safe. Args: $1=log line getLogIP () { local logLine="$1" - local ebaPID=`echo "$logLine" | sed -n 's/^.*authpriv.info \(dropbear\[[0-9]*\]:\) Exit before auth:.*/\1/p'` + local ebaPID=`echo "$logLine" | sed -n 's/^.*authpriv.info \(dropbear\[[0-9]*\]:\) Exit before auth.*/\1/p'` [ -n "$ebaPID" ] && logLine=`$cmdLogreadEba | fgrep "${ebaPID} Child connection from "` echo "$logLine" | sed -n 's/^.*[^0-9]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*$/\1/p' } @@ -340,7 +340,7 @@ exitStatus=0 fileRegex="/tmp/bearDropper.$$.regex" uciLoad logRegex 's/[`$"'\\\'']//g' '/has invalid shell, rejected$/d' \ '/^[A-Za-z ]+[0-9: ]+authpriv.warn dropbear\[.+([0-9]+\.){3}[0-9]+/p' \ - '/^[A-Za-z ]+[0-9: ]+authpriv.info dropbear\[.+:\ Exit before auth:.*/p' > "$fileRegex" + '/^[A-Za-z ]+[0-9: ]+authpriv.info dropbear\[.+:\ Exit before auth.*/p' > "$fileRegex" lastPersistentStateWrite="`date +%s`" loadState bddbCheckStatusAll diff --git a/src/config/bearDropper b/src/config/bearDropper index 41159ea..64d79f5 100644 --- a/src/config/bearDropper +++ b/src/config/bearDropper @@ -54,7 +54,7 @@ config bearDropper list logRegex '/has invalid shell, rejected$/d' # delete (/d) - use to filter out # print (/p) - use to filter in list logRegex '/^[A-Za-z ]+[0-9: ]+authpriv.warn dropbear\[.+([0-9]+\.){3}[0-9]+/p' - list logRegex '/^[A-Za-z ]+[0-9: ]+authpriv.info dropbear\[.+:\ Exit before auth:.*/p' + list logRegex '/^[A-Za-z ]+[0-9: ]+authpriv.info dropbear\[.+:\ Exit before auth.*/p' # whitelist entries do not work yet; as a temporary workaround, put in a firewall rule upstream #