mirror of
https://github.com/bol-van/zapret.git
synced 2025-04-19 13:32:58 +03:00
104 lines
2.3 KiB
Bash
104 lines
2.3 KiB
Bash
. "$EXEDIR/../config"
|
|
|
|
[ -z "$TMPDIR" ] && TMPDIR=/tmp
|
|
ZIPSET=zapret
|
|
ZIPSET6=zapret6
|
|
ZIPSET_EXCLUDE=nozapret
|
|
ZIPSET_EXCLUDE6=nozapret6
|
|
ZIPLIST="$EXEDIR/zapret-ip.txt"
|
|
ZIPLIST6="$EXEDIR/zapret-ip6.txt"
|
|
ZIPLIST_EXCLUDE="$EXEDIR/zapret-ip-exclude.txt"
|
|
ZIPLIST_EXCLUDE6="$EXEDIR/zapret-ip-exclude6.txt"
|
|
ZIPLIST_USER="$EXEDIR/zapret-ip-user.txt"
|
|
ZIPLIST_USER6="$EXEDIR/zapret-ip-user6.txt"
|
|
ZUSERLIST="$EXEDIR/zapret-hosts-user.txt"
|
|
ZHOSTLIST="$EXEDIR/zapret-hosts.txt"
|
|
|
|
ZIPSET_IPBAN=ipban
|
|
ZIPSET_IPBAN6=ipban6
|
|
ZIPLIST_IPBAN="$EXEDIR/zapret-ip-ipban.txt"
|
|
ZIPLIST_IPBAN6="$EXEDIR/zapret-ip-ipban6.txt"
|
|
ZIPLIST_USER_IPBAN="$EXEDIR/zapret-ip-user-ipban.txt"
|
|
ZIPLIST_USER_IPBAN6="$EXEDIR/zapret-ip-user-ipban6.txt"
|
|
ZUSERLIST_IPBAN="$EXEDIR/zapret-hosts-user-ipban.txt"
|
|
ZUSERLIST_EXCLUDE="$EXEDIR/zapret-hosts-user-exclude.txt"
|
|
|
|
MDIG="$EXEDIR/../mdig/mdig"
|
|
[ -z "$MDIG_THREADS" ] && MDIG_THREADS=30
|
|
|
|
zzexist()
|
|
{
|
|
[ -f "$1.gz" ] || [ -f "$1" ]
|
|
}
|
|
zzcat()
|
|
{
|
|
if [ -f "$1.gz" ]; then
|
|
gunzip -c "$1.gz"
|
|
else
|
|
cat "$1"
|
|
fi
|
|
}
|
|
zz()
|
|
{
|
|
gzip -c >"$1.gz"
|
|
}
|
|
zzsize()
|
|
{
|
|
local f="$1"
|
|
[ -f "$1.gz" ] && f="$1.gz"
|
|
wc -c <"$f"
|
|
}
|
|
|
|
digger()
|
|
{
|
|
# $1 - hostlist
|
|
# $2 - family (4|6)
|
|
>&2 echo digging $(wc -l <"$1") ipv$2 domains : "$1"
|
|
|
|
if [ -x "$MDIG" ]; then
|
|
zzcat "$1" | "$MDIG" --family=$2 --threads=$MDIG_THREADS --stats=1000
|
|
else
|
|
local A=A
|
|
[ "$2" = "6" ] && A=AAAA
|
|
zzcat "$1" | dig $A +short +time=8 +tries=2 -f - | grep -E '^[^;].*[^\.]$'
|
|
fi
|
|
}
|
|
|
|
cut_local()
|
|
{
|
|
grep -vE '^192\.168\.|^127\.|^10\.'
|
|
}
|
|
cut_local6()
|
|
{
|
|
grep -vE '^::|fc..:|fd..:'
|
|
}
|
|
|
|
oom_adjust_high()
|
|
{
|
|
echo setting high oom kill priority
|
|
echo -n 100 >/proc/$$/oom_score_adj
|
|
}
|
|
|
|
getexclude()
|
|
{
|
|
oom_adjust_high
|
|
|
|
[ -f "$ZUSERLIST_EXCLUDE" ] && {
|
|
[ "$DISABLE_IPV4" != "1" ] && digger "$ZUSERLIST_EXCLUDE" 4 | sort -u > "$ZIPLIST_EXCLUDE"
|
|
[ "$DISABLE_IPV6" != "1" ] && digger "$ZUSERLIST_EXCLUDE" 6 | sort -u > "$ZIPLIST_EXCLUDE6"
|
|
}
|
|
}
|
|
|
|
getuser()
|
|
{
|
|
getexclude
|
|
[ -f "$ZUSERLIST" ] && {
|
|
[ "$DISABLE_IPV4" != "1" ] && digger "$ZUSERLIST" 4 | cut_local | sort -u > "$ZIPLIST_USER"
|
|
[ "$DISABLE_IPV6" != "1" ] && digger "$ZUSERLIST" 6 | cut_local6 | sort -u > "$ZIPLIST_USER6"
|
|
}
|
|
[ -f "$ZUSERLIST_IPBAN" ] && {
|
|
[ "$DISABLE_IPV4" != "1" ] && digger "$ZUSERLIST_IPBAN" 4 | cut_local | sort -u > "$ZIPLIST_USER_IPBAN"
|
|
[ "$DISABLE_IPV6" != "1" ] && digger "$ZUSERLIST_IPBAN" 6 | cut_local6 | sort -u > "$ZIPLIST_USER_IPBAN6"
|
|
}
|
|
}
|