|
|
- #!/bin/sh
- #
- # Copyright (c) 2020 Gregory L. Dietsche <Gregory.Dietsche@cuw.edu>
- # This is free software, licensed under the MIT License
- #
- . /lib/functions.sh
-
- config_load 'family-dns'
- config_get_bool enabled default enabled 0
- config_get_bool redirect_dns default redirect_dns 0
- config_get dns default dns default
-
- #uninstall and disable are designed to be equivalent.
- if [ "$1" = "uninstall" ] ; then
- enabled=0
- fi
-
- # Set OpenWrt Defaults
- uci -q batch <<-EOT
- set network.wan.peerdns='1'
- set network.wan6.peerdns='1'
- delete network.wan.dns
- delete network.wan6.dns
- delete firewall.family_dns_lan
- EOT
-
- if [ "$enabled" -ne 1 ] ; then
- echo 'Activating Default ISP DNS server(s)'
- else
- # We don't want to use ISP DNS servers because they don't filter queries
- uci set network.wan.peerdns='0'
- uci set network.wan6.peerdns='0'
-
- # Configure the DNS server(s) that will handle filtering.
- echo "Activating $dns"
- case $dns in
- cleanbrowsing-adult-filter)
- uci add_list network.wan.dns=185.228.168.10
- uci add_list network.wan.dns=185.228.169.11
- uci add_list network.wan6.dns=2a0d:2a00:1::1
- uci add_list network.wan6.dns=2a0d:2a00:2::1
- ;;
- cleanbrowsing-family-filter)
- uci add_list network.wan.dns=185.228.168.168
- uci add_list network.wan.dns=185.228.169.168
- uci add_list network.wan6.dns=2a0d:2a00:1::
- uci add_list network.wan6.dns=2a0d:2a00:2::
- ;;
- cloudflare-malware-and-adult-content)
- uci add_list network.wan.dns=1.1.1.3
- uci add_list network.wan.dns=1.0.0.3
- uci add_list network.wan6.dns=2606:4700:4700::1113
- uci add_list network.wan6.dns=2606:4700:4700::1003
- ;;
- cisco-family-shield)
- uci add_list network.wan.dns=208.67.222.123
- uci add_list network.wan.dns=208.67.220.123
- uci add_list network.wan6.dns=::ffff:d043:de7b
- uci add_list network.wan6.dns=::ffff:d043:dc7b
- ;;
- *)
- echo "$dns" is not supported.
- uci revert network
- redirect_dns=0
- ;;
- esac
-
- if [ "$redirect_dns" -eq 1 ] ; then
- echo Activating DNS redirect
- zone=lan
- ip=$(uci get network.$zone.ipaddr)
-
- uci -q batch <<-EOT
- set firewall.family_dns_lan=redirect
- add_list firewall.family_dns_lan.proto='tcp'
- add_list firewall.family_dns_lan.proto='udp'
- set firewall.family_dns_lan.src_dport='53'
- set firewall.family_dns_lan.dest_ip='$ip'
- set firewall.family_dns_lan.target='DNAT'
- set firewall.family_dns_lan.src='$zone'
- set firewall.family_dns_lan.dest='$zone'
- set firewall.family_dns_lan.name='family-dns redirect for $zone zone'
- EOT
- fi
- fi
-
- uci -q batch <<-EOT
- commit network
- commit firewall
- EOT
-
- /etc/init.d/network reload
- /etc/init.d/dnsmasq reload
- /etc/init.d/firewall reload 2>/dev/null
-
|