mirror of
https://github.com/openwrt/packages.git
synced 2026-04-15 19:02:09 +00:00
* the debug mode now captures internal error output in a dedicated log file, located by default in the banIP base directory as /tmp/ban_error.log * replaced the non-functional recursive PID tree walk in f_rmpid with a correct iterative implementation * added several IP validator improvements * fixed a copy-paste error in f_report * fixed a uninitialized variable in f_actual * fixed missing token validation in banip.cgi * various other minor improvement & fixes * removed abandoned nixspam feed * LuCI: various fixes & optimizations * readme update Signed-off-by: Dirk Brenken <dev@brenken.org>
37 lines
1.1 KiB
Bash
37 lines
1.1 KiB
Bash
#!/bin/sh
|
|
# banIP cgi remote logging script - ban incoming and outgoing IPs via named nftables Sets
|
|
# Copyright (c) 2018-2026 Dirk Brenken (dev@brenken.org)
|
|
# This is free software, licensed under the GNU General Public License v3.
|
|
|
|
# (s)hellcheck exceptions
|
|
# shellcheck disable=all
|
|
|
|
# handle post/get requests
|
|
#
|
|
post_string="$(cat)"
|
|
request="${post_string//[^[:alnum:]=\.\:]/}"
|
|
[ -z "${request}" ] && request="${QUERY_STRING//[^[:alnum:]=\.\:]/}"
|
|
|
|
request_decode() {
|
|
local key value token
|
|
|
|
key="${request%=*}"
|
|
value="${request#*=}"
|
|
token="$(uci -q get banip.global.ban_remotetoken)"
|
|
|
|
if [ -n "${token}" ] && [ -n "${key}" ] && [ -n "${value}" ] && [ "${key}" = "${token}" ] && /etc/init.d/banip running; then
|
|
[ -r "/usr/lib/banip-functions.sh" ] && { . "/usr/lib/banip-functions.sh"; f_conf; }
|
|
if [ "${ban_remotelog}" = "1" ] && [ -x "${ban_logreadcmd}" ] && [ -n "${ban_logterm%%??}" ] && [ "${ban_loglimit}" != "0" ]; then
|
|
f_log "info" "received a suspicious remote IP '${value}'"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
cat <<EOF
|
|
Status: 202 Accepted
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
|
EOF
|
|
|
|
request_decode
|