firewall: implement blocklist

This commit is contained in:
Girish Ramakrishnan
2020-08-31 18:22:33 -07:00
parent 491af5bd9a
commit e4b06b16a9
12 changed files with 135 additions and 0 deletions

23
src/scripts/setblocklist.sh Executable file
View File

@@ -0,0 +1,23 @@
#!/bin/bash
set -eu -o pipefail
if [[ ${EUID} -ne 0 ]]; then
echo "This script should be run as root." > /dev/stderr
exit 1
fi
if [[ $# == 1 && "$1" == "--check" ]]; then
echo "OK"
exit 0
fi
ipset flush cloudron_blocklist
user_firewall_json="/home/yellowtent/boxdata/firewall-config.json"
if blocklist=$(node -e "console.log(JSON.parse(fs.readFileSync('${user_firewall_json}', 'utf8')).blocklist.join(' '))" 2>/dev/null); then
for ip in ${blocklist}; do
ipset add cloudron_blocklist "${ip}"
done
fi