From 3fc95b33a05a829d8c803e8aea4e9a449f881738 Mon Sep 17 00:00:00 2001 From: john Date: Wed, 27 Nov 2019 20:25:03 -0500 Subject: [PATCH] Improvements to scripts, add cron script for report --- ban2fail-cron.sh | 22 ++++++++++++++++++++++ ban2fail.service | 4 ++-- ban2fail.sh | 4 +++- 3 files changed, 27 insertions(+), 3 deletions(-) create mode 100755 ban2fail-cron.sh diff --git a/ban2fail-cron.sh b/ban2fail-cron.sh new file mode 100755 index 0000000..f9c3073 --- /dev/null +++ b/ban2fail-cron.sh @@ -0,0 +1,22 @@ +#!/bin/bash -e +# +# JDR Wed 27 Nov 2019 08:16:00 PM EST +# The purpose of this script is to be run from a periodic +# cron job to send summary via email. +# + +BAN2FAIL=/usr/local/bin/ban2fail + + +TRIES= + +for (( TRIES= 0; TRIES < 10; ++TRIES )); do + + $BAN2FAIL -s && break + + sleep 1 + +done + + +exit 0 diff --git a/ban2fail.service b/ban2fail.service index 85c0739..1d3c82c 100644 --- a/ban2fail.service +++ b/ban2fail.service @@ -1,11 +1,11 @@ [Unit] Description=Log file scanning and iptables filtering -ConditionPathExists=/etc/ban2fail/ban2fail.sh +ConditionPathExists=/usr/local/share/ban2fail/ban2fail.sh [Service] WorkingDirectory=/tmp Type=simple -ExecStart=/etc/ban2fail/ban2fail.sh +ExecStart=/usr/local/share/ban2fail/ban2fail.sh TimeoutSec=0 [Install] diff --git a/ban2fail.sh b/ban2fail.sh index 7fc193a..edbfdfe 100755 --- a/ban2fail.sh +++ b/ban2fail.sh @@ -41,7 +41,9 @@ while true; do echo "Running $BAN2FAIL" # Check for offenses # If ban2fail failed, then pause to avoid DOS on CPU - $TIME $BAN2FAIL || sleep 1 + while ! $TIME $BAN2FAIL; do + sleep 1 + done done < <(exec $INOTIFYWAIT -m $LOG_NAMES)