]> git.ipfire.org Git - ipfire-2.x.git/commitdiff
DNS: Make YouTube configurable for Safe Search
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 7 Nov 2020 12:59:08 +0000 (12:59 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 11 Nov 2020 12:08:21 +0000 (12:08 +0000)
When safe search is enabled, it is being enabled on YouTube, too.

This creates problems in some scenarios like schools where politics
is being tought as well as other subjects that might be censored by
YouTube (i.e. election TV spots).

Therefore it is now possible to exclude YouTube from Safe Search
but keep it enabled for the search engines.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
13 files changed:
doc/language_issues.en
doc/language_issues.es
doc/language_issues.fr
doc/language_issues.it
doc/language_issues.nl
doc/language_issues.pl
doc/language_issues.ru
doc/language_issues.tr
doc/language_missings
html/cgi-bin/dns.cgi
langs/de/cgi-bin/de.pl
langs/en/cgi-bin/en.pl
src/initscripts/system/unbound

index 0592f938b15c6c6a11486b3a3c54c99ffde34544..4cff0c6cb9f4f54aaf40811491443cbcb9366606 100644 (file)
@@ -600,6 +600,7 @@ WARNING: untranslated string: dns check failed = DNS check failed
 WARNING: untranslated string: dns check servers = Check DNS Servers
 WARNING: untranslated string: dns configuration = DNS Configuration
 WARNING: untranslated string: dns enable safe-search = Enable Safe Search
+WARNING: untranslated string: dns enable safe-search youtube = Include YouTube in Safe Search
 WARNING: untranslated string: dns forward disable dnssec = Disable DNSSEC (dangerous)
 WARNING: untranslated string: dns forwarding dnssec disabled notice = (DNSSEC disabled)
 WARNING: untranslated string: dns isp assigned nameserver = ISP-assigned DNS server
index fd9c61b321e4328ea4f68e07e6d0a8a585334f3b..8d6041ce5018529c0ac6af4dd5b98a469551f4d4 100644 (file)
@@ -896,6 +896,7 @@ WARNING: untranslated string: dnat address = Firewall Interface
 WARNING: untranslated string: dns check servers = Check DNS Servers
 WARNING: untranslated string: dns configuration = DNS Configuration
 WARNING: untranslated string: dns enable safe-search = Enable Safe Search
+WARNING: untranslated string: dns enable safe-search youtube = Include YouTube in Safe Search
 WARNING: untranslated string: dns forward disable dnssec = Disable DNSSEC (dangerous)
 WARNING: untranslated string: dns forwarding dnssec disabled notice = (DNSSEC disabled)
 WARNING: untranslated string: dns isp assigned nameserver = ISP-assigned DNS server
index c84aab2b13f4eeca3324364aefc64bfa1b1f60e2..f4ed28c7db07e6f0587b3faed34fa0b61cce0e6a 100644 (file)
@@ -877,6 +877,7 @@ WARNING: translation string unused: zoneconf val ppp assignment error
 WARNING: translation string unused: zoneconf val vlan amount assignment error
 WARNING: translation string unused: zoneconf val vlan tag assignment error
 WARNING: translation string unused: zoneconf val zoneslave amount error
+WARNING: untranslated string: dns enable safe-search youtube = Include YouTube in Safe Search
 WARNING: untranslated string: fwhost cust locationgrp = unknown string
 WARNING: untranslated string: fwhost err hostip = unknown string
 WARNING: untranslated string: guardian block a host = unknown string
index 505e73373f5cb42d328ad72debcb1f0391642f7e..08b07080e871373f5e243bbf46cff5daa7d4ec42 100644 (file)
@@ -920,6 +920,7 @@ WARNING: untranslated string: dl client arch insecure = Download insecure Client
 WARNING: untranslated string: dns check servers = Check DNS Servers
 WARNING: untranslated string: dns configuration = DNS Configuration
 WARNING: untranslated string: dns enable safe-search = Enable Safe Search
+WARNING: untranslated string: dns enable safe-search youtube = Include YouTube in Safe Search
 WARNING: untranslated string: dns forward disable dnssec = Disable DNSSEC (dangerous)
 WARNING: untranslated string: dns forwarding dnssec disabled notice = (DNSSEC disabled)
 WARNING: untranslated string: dns isp assigned nameserver = ISP-assigned DNS server
index 0f73afc86d8d7f0d5c43128a34ba2602bd2eff1a..bde5daf3ce630261b837b77200ac25b6e05b818e 100644 (file)
@@ -921,6 +921,7 @@ WARNING: untranslated string: dl client arch insecure = Download insecure Client
 WARNING: untranslated string: dns check servers = Check DNS Servers
 WARNING: untranslated string: dns configuration = DNS Configuration
 WARNING: untranslated string: dns enable safe-search = Enable Safe Search
+WARNING: untranslated string: dns enable safe-search youtube = Include YouTube in Safe Search
 WARNING: untranslated string: dns forward disable dnssec = Disable DNSSEC (dangerous)
 WARNING: untranslated string: dns forwarding dnssec disabled notice = (DNSSEC disabled)
 WARNING: untranslated string: dns isp assigned nameserver = ISP-assigned DNS server
index fd9c61b321e4328ea4f68e07e6d0a8a585334f3b..8d6041ce5018529c0ac6af4dd5b98a469551f4d4 100644 (file)
@@ -896,6 +896,7 @@ WARNING: untranslated string: dnat address = Firewall Interface
 WARNING: untranslated string: dns check servers = Check DNS Servers
 WARNING: untranslated string: dns configuration = DNS Configuration
 WARNING: untranslated string: dns enable safe-search = Enable Safe Search
+WARNING: untranslated string: dns enable safe-search youtube = Include YouTube in Safe Search
 WARNING: untranslated string: dns forward disable dnssec = Disable DNSSEC (dangerous)
 WARNING: untranslated string: dns forwarding dnssec disabled notice = (DNSSEC disabled)
 WARNING: untranslated string: dns isp assigned nameserver = ISP-assigned DNS server
index bf1d976e9d11ed93912db8b7fbe42e13e54ded98..6235f33fd562cb4f480b58b0cc4dd06583a3c913 100644 (file)
@@ -899,6 +899,7 @@ WARNING: untranslated string: dnat address = Firewall Interface
 WARNING: untranslated string: dns check servers = Check DNS Servers
 WARNING: untranslated string: dns configuration = DNS Configuration
 WARNING: untranslated string: dns enable safe-search = Enable Safe Search
+WARNING: untranslated string: dns enable safe-search youtube = Include YouTube in Safe Search
 WARNING: untranslated string: dns forward disable dnssec = Disable DNSSEC (dangerous)
 WARNING: untranslated string: dns forwarding dnssec disabled notice = (DNSSEC disabled)
 WARNING: untranslated string: dns isp assigned nameserver = ISP-assigned DNS server
index b2c24de57258564ad2cc5e7e5bba24d3275a0549..b61f3740a430b267d2e0c011597a25bd1737792c 100644 (file)
@@ -897,6 +897,7 @@ WARNING: untranslated string: disconnected = Disconnected
 WARNING: untranslated string: dns check servers = Check DNS Servers
 WARNING: untranslated string: dns configuration = DNS Configuration
 WARNING: untranslated string: dns enable safe-search = Enable Safe Search
+WARNING: untranslated string: dns enable safe-search youtube = Include YouTube in Safe Search
 WARNING: untranslated string: dns forward disable dnssec = Disable DNSSEC (dangerous)
 WARNING: untranslated string: dns forwarding dnssec disabled notice = (DNSSEC disabled)
 WARNING: untranslated string: dns isp assigned nameserver = ISP-assigned DNS server
index d79afff83d105745dac48262ed55358d1392bbaf..638a7cc42c3a97036c1d48d7dd6b0e8674a43237 100644 (file)
 < dns configuration
 < dns could not add server
 < dns enable safe-search
+< dns enable safe-search youtube
 < dnsforward
 < dnsforward add a new entry
 < dnsforward configuration
 < ansi t1.483
 < bewan adsl pci st
 < bewan adsl usb
+< dns enable safe-search youtube
 < g.dtm
 < g.lite
 < upload fcdsl.o
 < dns configuration
 < dns could not add server
 < dns enable safe-search
+< dns enable safe-search youtube
 < dns forward disable dnssec
 < dnsforward dnssec disabled
 < dnsforward forward_servers
 < dns configuration
 < dns could not add server
 < dns enable safe-search
+< dns enable safe-search youtube
 < dns forward disable dnssec
 < dnsforward dnssec disabled
 < dnsforward forward_servers
 < dns configuration
 < dns could not add server
 < dns enable safe-search
+< dns enable safe-search youtube
 < dnsforward
 < dnsforward add a new entry
 < dnsforward configuration
 < dns configuration
 < dns could not add server
 < dns enable safe-search
+< dns enable safe-search youtube
 < dnsforward
 < dnsforward add a new entry
 < dnsforward configuration
 < dns configuration
 < dns could not add server
 < dns enable safe-search
+< dns enable safe-search youtube
 < dns forward disable dnssec
 < dnsforward dnssec disabled
 < dnsforward forward_servers
index 762e77ff1da5d89aaa75361cc58e8410915b0446..5c3ca875da3db024c84bdf1c15d20cf20098f75c 100755 (executable)
@@ -87,6 +87,10 @@ if ($cgiparams{'GENERAL'} eq $Lang::tr{'save'}) {
                $cgiparams{'ENABLE_SAFE_SEARCH'} = "off";
        }
 
+       if ($cgiparams{'ENABLE_SAFE_SEARCH_YOUTUBE'} ne "on") {
+               $cgiparams{'ENABLE_SAFE_SEARCH_YOUTUBE'} = "off";
+       }
+
        # Check if using ISP nameservers and TLS is enabled at the same time.
        if (($cgiparams{'USE_ISP_NAMESERVERS'} eq "on") && ($cgiparams{'PROTO'} eq "TLS")) {
                $errormessage = $Lang::tr{'dns isp nameservers and tls not allowed'}
@@ -259,6 +263,7 @@ if (($cgiparams{'SERVERS'} eq $Lang::tr{'save'}) || ($cgiparams{'SERVERS'} eq $L
 
 # Hash to store the generic DNS settings.
 my %settings = ();
+$settings{"ENABLE_SAFE_SEARCH_YOUTUBE"} = "on";
 
 # Read-in general DNS settings.
 &General::readhash("$settings_file", \%settings);
@@ -310,6 +315,10 @@ $checked{'ENABLE_SAFE_SEARCH'}{'off'} = '';
 $checked{'ENABLE_SAFE_SEARCH'}{'on'} = '';
 $checked{'ENABLE_SAFE_SEARCH'}{$settings{'ENABLE_SAFE_SEARCH'}} = "checked='checked'";
 
+$checked{'ENABLE_SAFE_SEARCH_YOUTUBE'}{'off'} = '';
+$checked{'ENABLE_SAFE_SEARCH_YOUTUBE'}{'on'} = '';
+$checked{'ENABLE_SAFE_SEARCH_YOUTUBE'}{$settings{'ENABLE_SAFE_SEARCH_YOUTUBE'}} = "checked='checked'";
+
 $selected{'PROTO'}{'UDP'} = '';
 $selected{'PROTO'}{'TLS'} = '';
 $selected{'PROTO'}{'TCP'} = '';
@@ -381,6 +390,16 @@ sub show_general_dns_configuration () {
                                </td>
                        </tr>
 
+                       <tr>
+                               <td width="33%">
+                                       &raquo; $Lang::tr{'dns enable safe-search youtube'}
+                               </td>
+
+                               <td>
+                                       <input type="checkbox" name="ENABLE_SAFE_SEARCH_YOUTUBE" $checked{'ENABLE_SAFE_SEARCH_YOUTUBE'}{'on'}>
+                               </td>
+                       </tr>
+
                        <tr>
                                <td colspan="2">
                                        <br>
index d4dad76522f2885c877e3c80c2629cc21dd59a86..4a2a9e2e04efc927cb27e3726ba7bda3dd19ac22 100644 (file)
 'dns configuration' => 'DNS-Konfiguration',
 'dns desc' => 'Wenn auf Schnittstelle red0 die IP-Adressinformationen über DHCP vom Provider kommen, werden automatisch die DNS-Server-Adressen des Providers gesetzt. Hier können Sie nun diese mit den eigenen DNS-Server-IP-Adressen überschreiben.',
 'dns enable safe-search' => 'Safe Search via DNS aktivieren',
+'dns enable safe-search youtube' => 'YouTube in Safe Search einbeziehen',
 'dns error 0' => 'Die IP Adresse vom <strong>primären</strong> DNS Server ist nicht gültig, bitte überprüfen Sie Ihre Eingabe!<br />Die eingegebene <strong>sekundären</strong> DNS Server Adresse ist jedoch gültig.<br />',
 'dns error 01' => 'Die eingegebene IP Adresse des <strong>primären</strong> wie auch des <strong>sekundären</strong> DNS-Servers sind nicht gültig, bitte überprüfen Sie Ihre Eingaben!',
 'dns error 1' => 'Die IP Adresse vom <strong>sekundären</strong> DNS Server ist nicht gültig, bitte überprüfen Sie Ihre Eingabe!<br />Die eingegebene <strong>primäre</strong> DNS Server Adresse ist jedoch gültig.',
index 19a5eb02f9b70577b769fc84ee93d21fb3006e1b..1151da08d58f90b75ed2bfe2c131264ab8853f11 100644 (file)
 'dns could not add server' => 'Could not add server - Reason:',
 'dns desc' => 'If the red0 interface gets the IP address information via DHCP from the provider, the DNS server addresses will be set automatically. Now here you are able to change these DNS server IP addresses with your own ones.',
 'dns enable safe-search' => 'Enable Safe Search',
+'dns enable safe-search youtube' => 'Include YouTube in Safe Search',
 'dns error 0' => 'The IP address of the <strong>primary</strong> DNS server is not valid, please check your entries!<br />The entered <strong>secondary</strong> DNS server address is valid.',
 'dns error 01' => 'The entered IP address of the <strong>primary</strong> and <strong>secondary</strong> DNS server are not valid, please check your entries!',
 'dns error 1' => 'The IP address of the <strong>secondary</strong> DNS server is not valid, please check your entries!<br />The entered <strong>primary</strong> DNS server address is valid.',
index acbf6f5b5216f761a9550cbcd0350ba1a5ea7149..5c5d2e3f41423758f55554b6cbe9491f9f700a3f 100644 (file)
@@ -502,45 +502,44 @@ update_safe_search() {
                unbound-control local_zone_remove "${domain}"
        done >/dev/null
 
-       # Nothing to do if safe search is not enabled
-       if [ "${ENABLE_SAFE_SEARCH}" != "on" ]; then
-               return 0
-       fi
-
-       # Bing
-       unbound-control bing.com transparent >/dev/null
-       for address in $(resolve "strict.bing.com"); do
-               unbound-control local_data "www.bing.com ${LOCAL_TTL} IN A ${address}"
-       done >/dev/null
-
-       # DuckDuckGo
-       unbound-control local_zone duckduckgo.com typetransparent >/dev/null
-       for address in $(resolve "safe.duckduckgo.com"); do
-               unbound-control local_data "duckduckgo.com ${LOCAL_TTL} IN A ${address}"
-       done >/dev/null
-
-       # Google
-       local addresses="$(resolve "forcesafesearch.google.com")"
-       for domain in ${google_tlds[@]}; do
-               unbound-control local_zone "${domain}" transparent >/dev/null
-               for address in ${addresses}; do
-                       unbound-control local_data "www.${domain} ${LOCAL_TTL} IN A ${address}"
+       if [ "${ENABLE_SAFE_SEARCH}" = "on" ]; then
+               # Bing
+               unbound-control bing.com transparent >/dev/null
+               for address in $(resolve "strict.bing.com"); do
+                       unbound-control local_data "www.bing.com ${LOCAL_TTL} IN A ${address}"
                done >/dev/null
-       done
 
-       # Yandex
-       for domain in yandex.com yandex.ru; do
-               unbound-control local_zone "${domain}" typetransparent >/dev/null
-               for address in $(resolve "familysearch.${domain}"); do
-                       unbound-control local_data "${domain} ${LOCAL_TTL} IN A ${address}"
+               # DuckDuckGo
+               unbound-control local_zone duckduckgo.com typetransparent >/dev/null
+               for address in $(resolve "safe.duckduckgo.com"); do
+                       unbound-control local_data "duckduckgo.com ${LOCAL_TTL} IN A ${address}"
                done >/dev/null
-       done
 
-       # YouTube
-       unbound-control local_zone youtube.com transparent >/dev/null
-       for address in $(resolve "restrictmoderate.youtube.com"); do
-               unbound-control local_data "www.youtube.com ${LOCAL_TTL} IN A ${address}"
-       done >/dev/null
+               # Google
+               local addresses="$(resolve "forcesafesearch.google.com")"
+               for domain in ${google_tlds[@]}; do
+                       unbound-control local_zone "${domain}" transparent >/dev/null
+                       for address in ${addresses}; do
+                               unbound-control local_data "www.${domain} ${LOCAL_TTL} IN A ${address}"
+                       done >/dev/null
+               done
+
+               # Yandex
+               for domain in yandex.com yandex.ru; do
+                       unbound-control local_zone "${domain}" typetransparent >/dev/null
+                       for address in $(resolve "familysearch.${domain}"); do
+                               unbound-control local_data "${domain} ${LOCAL_TTL} IN A ${address}"
+                       done >/dev/null
+               done
+
+               # YouTube
+               if [ "${ENABLE_SAFE_SEARCH_YOUTUBE}" = "on" ]; then
+                       unbound-control local_zone youtube.com transparent >/dev/null
+                       for address in $(resolve "restrictmoderate.youtube.com"); do
+                               unbound-control local_data "www.youtube.com ${LOCAL_TTL} IN A ${address}"
+                       done >/dev/null
+               fi
+       fi
 
        return 0
 }