dns-scripts/update-public-acl.sh

32 lines
1004 B
Bash
Raw Normal View History

2021-01-15 17:12:33 +01:00
#!/bin/sh
. ./dns-functions.sh
IncludeFile="$1"
2021-01-23 23:37:49 +01:00
RemoteLocation="$2"
Tables="$3"
2021-01-15 17:12:33 +01:00
rm -f "$IncludeFile"
Installed4Routes=""
Installed6Routes=""
for Table in $Tables; do
Installed4Routes="$(echo "$Installed4Routes" && ip -4 ro sh ta "$Table")"
Installed6Routes="$(echo "$Installed6Routes" && ip -6 ro sh ta "$Table")"
done
PublicSubs="$(echo "$Installed6Routes" | \
sed -e '/^default from/!d;s/.* from \(\S\+\).*/\t\1;/g')"
2021-01-23 23:37:49 +01:00
PrivatePrefix="\(192\.168\.\|172\.\(1[6-9]\|2[0-9]\|3[01]\)\.\|10\.\|[fF][cCdD][0-9a-fA-F]\{2\}:\)"
PublicSingles="$(echo "$Installed4Routes" | \
sed -e 's/^\(\S\+\)\s.*/\t\1;/g;/^\t'"$PrivatePrefix"'\|^\t\(default\|0\.\)\|^$/d' \
&& echo "$Installed6Routes" | \
sed -e 's/^\(\S\+\)\s.*/\t\1;/g;/^\t'"$PrivatePrefix"'\|^\t\(default\|::\|64:ff9b::\)\|^$/d')"
2021-01-23 23:37:49 +01:00
2021-01-19 17:49:06 +01:00
{
echo "acl icvpnrange {"
echo " icvpnlocal;"
2021-01-23 23:37:49 +01:00
echo "$PublicSubs"
echo "$(curl -s -S -f "$RemoteLocation""external.dnsserverips" | sed -e 's/^/\t/g;s/$/;/g')"
echo "$PublicSingles"
2021-01-19 17:49:06 +01:00
echo "};"
2021-01-23 23:37:49 +01:00
} > "$IncludeFile"