# SPDX-License-Identifier: GPL-2.0
# shellcheck disable=SC2039,SC2155 # "local" not defined in POSIX sh
+set -o nounset
+
PROG="$(command -v snort)"
MAIN="/usr/share/snort/main.uc"
CONF_DIR=$(uci -q get snort.snort.temp_dir || echo "/var/snort.d")
teardown() {
# Merely cleans up after.
nft_rm_table
- [ -e "$CONF" ] && rm "$CONF"
+ [ -e "$CONF" ] && rm "${CONF:?}"
}
resetup() {
local test_conf="${CONF_DIR}/test_conf.lua"
_SNORT_WITHOUT_RULES="$no_rules" print snort > "${test_conf}" || die "Errors during generation of snort config"
if $PROG -T $warn -c "${test_conf}" 2> $OUT ; then
- rm "${test_conf}"
+ rm "${test_conf:?}"
else
die "Errors in snort config tests. Examine ${test_conf} for issues"
fi
print nftables > "${test_nft}" || die "Errors during generation of nftables config"
$VERBOSE && options='-e'
if nft $options --check -f "${test_nft}" ; then
- rm "${test_nft}"
+ rm "${test_nft:?}"
else
die "Errors in nftables config tests. Examine ${test_nft} for issues"
fi
local msg src srcP dst dstP dir gid sid
local tmp=$(mktemp -t snort.rep.XXXXXX)
_filter_by_date "${log_dir}" | while read -r line; do
- unset -v src dst srcP dstP
+ src='' && dst='' && srcP='' && dstP=''
eval "$(jsonfilter -s "$line" \
-e 'msg=$.msg' \
-e 'src=$.src_addr' \
[ "$NLINES" = 0 ] && output="cat" || output="head -n $NLINES"
local lines=$($SORT "$tmp" | uniq -c | $SORT -nr | $output)
- rm "$tmp"
+ rm "${tmp:?}"
if [ -z "$lines" ]; then
echo -n "There were no incidents "
[ -z "$PATTERN" ] && echo "reported." || echo "matching pattern '$PATTERN'."
echo 'Hosts by name:'
local IP
local peerdns=$(ifstatus wan | jsonfilter -e '$["dns-server"][0]')
- echo "$lines" | awk -F'#' '{printf "%s\n%s\n", $2, $3}' | sed 's/(.*//' | sort -u \
+ echo "$lines" | awk -F'#' '{printf "%s\n%s\n", $2, $3}' | sed 's/(.*//' | $SORT -u \
| while read -r IP; do
[ -z "$IP" ] && continue
n=$(nslookup "$IP" | awk '/name = / {n=$NF} END{print n}')
exit 1
}
-while [ -n "$1" ]; do
+while [ "${1:-}" ]; do
case "$1" in
-h|--help)
usage
# SPDX-License-Identifier: GPL-2.0
# shellcheck disable=SC2039,SC2155 # "local" not defined in POSIX sh
+set -o nounset
+
alias log='logger -s -t "snort-rules[$$]" -p "info"'
download_rules() {
log "Generating testing rules..."
archive_loc="testing-rules"
new_rules="$data_dir/$archive_loc"
- rm -fr "$new_rules"
+ rm -fr "${new_rules:?}"
mkdir -p "$new_rules"
rules_file="$new_rules/testing.rules"
{
old_rules="$data_dir/old.rules"
if $backup; then
- rm -fr "$old_rules"
+ rm -fr "${old_rules:?}"
mkdir -p "$old_rules"
for rules_file in "$rules_dir"/*; do
mkdir -p "$conf_dir"
- rm -fr "$rules_dir"
+ rm -fr "${rules_dir:?}"
if $persist; then
mv -f "$new_rules" "$rules_dir"
else
exit 1
}
-while [ -n "$1" ]; do
+while [ "${1:-}" ]; do
case "$1" in
-h|--help)
usage