SomeWhereOverTheRainBow
Very Senior Member
For those who want to enforce safe search with unbound.....
Code:
#!/bin/sh
url="https://www.google.com/supported_domains"
file="/etc/unbound/unbound.conf.d/safesearch.conf" #this can be where-ever your unbound config storage is. You will have to use include: option inside the main unbound.conf though.
echo "server:" > "${file}"
domains="$(curl $url 2>/dev/null)"
for domain in $domains; do
dom=$(echo $domain | cut -c 2-)
printf 'local-zone: "%s" redirect \n' "$dom" >> "${file}"
printf 'local-data: "%s CNAME forcesafesearch.google.com" \n' "$dom" >> "${file}"
printf 'local-zone: "www.%s" redirect \n' "$dom" >> "${file}"
printf 'local-data: "www.%s CNAME forcesafesearch.google.com" \n' "$dom" >> "${file}"
done
printf 'local-zone: "duckduckgo.com" redirect \n' >> "${file}"
printf 'local-data: "duckduckgo.com CNAME safe.duckduckgo.com" \n' >> "${file}"
printf 'local-zone: "www.duckduckgo.com" redirect \n' >> "${file}"
printf 'local-data: "www.duckduckgo.com CNAME safe.duckduckgo.com" \n' >> "${file}"
printf 'local-zone: "start.duckduckgo.com" redirect \n' >> "${file}"
printf 'local-data: "start.duckduckgo.com CNAME safe.duckduckgo.com" \n' >> "${file}"
printf 'local-zone: "duck.com" redirect \n' >> "${file}"
printf 'local-data: "duck.com CNAME safe.duckduckgo.com" \n' >> "${file}"
printf 'local-zone: "www.duck.com" redirect \n' >> "${file}"
printf 'local-data: "www.duck.com CNAME safe.duckduckgo.com" \n' >> "${file}"
printf 'local-zone: "bing.com" redirect \n' >> "${file}"
printf 'local-data: "bing.com CNAME strict.bing.com" \n' >> "${file}"
printf 'local-zone: "www.bing.com" redirect \n' >> "${file}"
printf 'local-data: "www.bing.com CNAME strict.bing.com" \n' >> "${file}"
printf 'local-zone: "pixabay.com" redirect \n' >> "${file}"
printf 'local-data: "pixabay.com CNAME safesearch.pixabay.com" \n' >> "${file}"
printf 'local-zone: "www.youtube.com" redirect \n' >> "${file}"
printf 'local-data: "www.youtube.com CNAME restrictmoderate.youtube.com" \n' >> "${file}"
printf 'local-zone: "m.youtube.com" redirect \n' >> "${file}"
printf 'local-data: "m.youtube.com CNAME restrictmoderate.youtube.com" \n' >> "${file}"
printf 'local-zone: "youtubei.googleapis.com" redirect \n' >> "${file}"
printf 'local-data: "youtubei.googleapis.com CNAME restrictmoderate.youtube.com" \n' >> "${file}"
printf 'local-zone: "youtube.googleapis.com" redirect \n' >> "${file}"
printf 'local-data: "youtube.googleapis.com CNAME restrictmoderate.youtube.com" \n' >> "${file}"
printf 'local-zone: "www.youtube-nocookie.com" redirect \n' >> "${file}"
printf 'local-data: "www.youtube-nocookie.com CNAME restrictmoderate.youtube.com" \n' >> "${file}"
printf 'local-zone: "yandex.com" redirect \n' >> "${file}"
printf 'local-data: "yandex.com CNAME familysearch.yandex.ru" \n' >> "${file}"
printf 'local-zone: "yandex.ru" redirect \n' >> "${file}"
printf 'local-data: "yandex.ru CNAME familysearch.yandex.ru" \n' >> "${file}"
printf 'local-zone: "yandex.ua" redirect \n' >> "${file}"
printf 'local-data: "yandex.ua CNAME familysearch.yandex.ru" \n' >> "${file}"
printf 'local-zone: "yandex.by" redirect \n' >> "${file}"
printf 'local-data: "yandex.by CNAME familysearch.yandex.ru" \n' >> "${file}"
printf 'local-zone: "yandex.kz" redirect \n' >> "${file}"
printf 'local-data: "yandex.kz CNAME familysearch.yandex.ru" \n' >> "${file}"
printf 'local-zone: "www.yandex.com" redirect \n' >> "${file}"
printf 'local-data: "www.yandex.com CNAME familysearch.yandex.ru" \n' >> "${file}"
printf 'local-zone: "www.yandex.ru" redirect \n' >> "${file}"
printf 'local-data: "www.yandex.ru CNAME familysearch.yandex.ru" \n' >> "${file}"
printf 'local-zone: "www.yandex.ua" redirect \n' >> "${file}"
printf 'local-data: "www.yandex.ua CNAME familysearch.yandex.ru" \n' >> "${file}"
printf 'local-zone: "www.yandex.by" redirect \n' >> "${file}"
printf 'local-data: "www.yandex.by CNAME familysearch.yandex.ru" \n' >> "${file}"
printf 'local-zone: "www.yandex.kz" redirect \n' >> "${file}"
printf 'local-data: "www.yandex.kz CNAME familysearch.yandex.ru" \n' >> "${file}"
Last edited: