26 lines
679 B
Bash
Executable File
26 lines
679 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
HOST="vpn.davidt.de"
|
|
OUT="/etc/crowdsec/parsers/s02-enrich/zz-local-whitelist-home.yaml"
|
|
|
|
v4="$(getent ahostsv4 "$HOST" | awk '/STREAM/ {print $1; exit}' || true)"
|
|
v6="$(getent ahostsv6 "$HOST" | awk '/STREAM/ {print $1; exit}' || true)"
|
|
|
|
tmp="$(mktemp)"
|
|
{
|
|
echo 'name: local/home-allow'
|
|
echo 'description: "Whitelist home via vpn.davidt.de (auto)"'
|
|
echo 'whitelist:'
|
|
echo ' reason: "home dyn IP"'
|
|
echo ' ip:'
|
|
[[ -n "$v4" ]] && echo " - \"$v4\""
|
|
[[ -n "$v6" ]] && echo " - \"$v6\""
|
|
} > "$tmp"
|
|
|
|
if ! cmp -s "$tmp" "$OUT"; then
|
|
install -m 0644 -o root -g root "$tmp" "$OUT"
|
|
systemctl restart crowdsec
|
|
fi
|
|
rm -f "$tmp"
|