|
|
- #!/bin/sh
- #
- # Copyright (c) 2020 Gregory L. Dietsche <Gregory.Dietsche@cuw.edu>
- # This is free software, licensed under the MIT License
- #
-
- ########################
- #Yucky global variables#
- ########################
- global_result=0
-
- # A list of adult websites that support both IPv4 and IPv6
- IPv4andIPv6EnabledSiteList="https://xhamster.com https://www.watchmyexgf.net https://gaymaletube.com"
-
- expect_not_safe(){
- title=$1
- size=$2
- web=$3
-
- actual=$(wget -4 -O - "$web" | wc -l) 2> /dev/null
- if [ "$actual" -gt "$size" ] ; then
- echo "$title: IPv4: $size/$actual. NOT SAFE"
- else
- echo "$title: IPv4: SAFE. $actual (expected not safe!) ***************"
- global_result=1
- fi
-
- actual=$(wget -6 -O - "$web" | wc -l) 2> /dev/null
- if [ "$actual" -gt "$size" ] ; then
- echo "$title: IPv6: $size/$actual. NOT SAFE"
- else
- echo "$title: IPv6: SAFE. $actual (expected not safe!) ***************"
- global_result=1
- fi
- return $global_result
- }
-
- expect_safe(){
- title=$1
- size=$2
- web=$3
-
- actual=$(wget -4 -O - "$web" | wc -l) 2> /dev/null
- if [ "$actual" -gt "$size" ] ; then
- echo "$title: IPv4: $size/$actual. NOT SAFE ******************"
- global_result=1
- else
- echo "$title: IPv4: SAFE. $actual"
- fi
-
- actual=$(wget -6 -O - "$web" | wc -l) 2> /dev/null
- if [ "$actual" -gt "$size" ] ; then
- echo "$title: IPv6: $size/$actual. NOT SAFE ******************"
- global_result=1
- else
- echo "$title: IPv6: SAFE. $actual"
- fi
- }
-
-
- test_not_safe(){
- uci set family-dns.default.enabled=0
- uci commit family-dns
- family-dns-update
-
- echo "******************************"
- echo "Testing Without Protection ***"
- echo "******************************"
- c=0
- for site in ${IPv4andIPv6EnabledSiteList}; do
- expect_not_safe "Site $c" 500 "$site"
- c=$((c+1))
- done
-
- uci set family-dns.default.enabled=1
- uci commit family-dns
- family-dns-update
-
- echo
- }
-
- test_filter(){
- echo "******************************"
- echo "Testing With Protection ***"
- echo "******************************"
- echo testing "$1"
-
- uci set family-dns.default.dns="$1"
- uci commit family-dns
- family-dns-update
-
- c=0
- for site in ${IPv4andIPv6EnabledSiteList}; do
- expect_safe "Testing Site $c" 500 "$site"
- c=$((c+1))
- done
-
- echo
- }
-
- #############################################
- ## Main Tests ##
- #############################################
- test_not_safe
- test_filter cisco-family-shield
- test_filter cloudflare-malware-and-adult-content
- test_filter cleanbrowsing-family-filter
- test_filter cleanbrowsing-adult-filter
-
- # with cleanbrowsing-adult-filter on, run this test on a different device (not the router)
- # the result should be 0 when redirect_dns=1 and the result should be 1 when redirect_dns=0
- #count=$(nslookup -query=A www.sex.com 8.8.8.8 | grep NXDOMAIN | wc -l)
- #if [ $count -eq 1 ]; then
- # echo Clean Browsing returned NXDOMAIN. This is expected.
- #else
- # echo Clean Browsing did not return NXDOMAIN. This is NOT expected.
- #fi
-
-
-
- if [ $global_result -ne 0 ]; then
- echo '************ Test(s) failed! ********************************************************'
- fi
- exit $global_result
|