• Nicht schön, aber funktioniert. Ein kleiner Workaround für die Fritzbox

      Wenn Du irgendwo in Deinem Netz einen "vertrauenswürdigen" Rechner hast, kannst Du mit dem Skript Domains in die Blacklist eintragen und wieder löschen lassen.

      Die Eintragungen werden in dieser Blacklist vorgenommen


      in Zeile 6 +7 kommen die Adresse und das Passwort der Fritzbox
      In Zeile 8 die zu sperrenden Domains hinterlegen, immer ein Leerzeichen zwischen den Domains einfügen (siehe Beispiel unten)

      Dann kannst Du das Skript abspeichern, z.B. als fritzblocker.sh , nicht vergessen es ausführbar zu machen chmod +x fritzblocker.sh

      Dann zeitgesteuert die Domainsperre einschalten
      ./fritzblocker.sh sperren
      Sperren erfolgreich




      bzw. 8 Stunden später wieder rausnehmen

      ./fritzblocker.sh freigeben
      Freigeben erfolgreich


      Show Plain Text
      1. #!/bin/bash
      2.  
      3. cmd=$1
      4.  
      5. # Logindaten
      6. theServer="192.168.178.1"   # IP der Fritzbox
      7. thePassword="*****"         # das Webinterfacepasswort
      8. gesperrt="foo.de bar.de blub.de test.de"
      9.  
      10. function get_value()
      11. {
      12.     echo $(sed -n "s/.*<$2>\(.*\)<\/$2>.*/\1/p" <<<$1)
      13.     return
      14. }
      15. gesperrt=$(tr ' ' '+' <<<"$gesperrt")
      16.  
      17. ### SID Session ID ermitteln ###
      18. theLogin="https://$theServer/login_sid.lua"
      19. theChallenge=$(get_value "$(curl -sk $theLogin)" "Challenge")
      20. theResponse=$(echo "$theChallenge-$(echo -n "$theChallenge-$thePassword" | iconv -f UTF-8 -t UTF-16LE | md5 -q)")
      21. SID=$(get_value "$(curl -sk $theLogin -d username=$theUser -d response=$theResponse)" "SID")
      22.  
      23. if [[ "$SID" == "0000000000000000" ]]; then
      24.     echo "Fritzbox Login nicht erfolgreich, Passwort überprüfen"
      25. else
      26.         case "$cmd" in
      27.             'sperren' )
      28.                 ret=$(curl -sk "https://$theServer/data.lua" -H "Referer: https://$theServer/" --compressed -H 'Content-Type: application/x-www-form-urlencoded' -H "Origin: https://$theServer/" -H 'Connection: keep-alive' --data-raw "xhr=1&urllist=$gesperrt&listtype=black&apply=&sid=$SID&lang=de&page=kids_blacklist")
      29.                 if grep -q "apply\":\"ok" <<<"$ret" ; then
      30.                     echo "Sperren erfolgreich"
      31.                 else
      32.                     echo "Fehler beim Sperren"
      33.                 fi
      34.                 ;;
      35.             'freigeben' )
      36.                 ret=$(curl -sk "https://$theServer/data.lua" -H "Referer: https://$theServer/" --compressed -H 'Content-Type: application/x-www-form-urlencoded' -H "Origin: https://$theServer/" -H 'Connection: keep-alive' --data-raw "xhr=1&urllist=&listtype=black&apply=&sid=$SID&lang=de&page=kids_blacklist")
      37.                 if grep -q "apply\":\"ok" <<<"$ret" ; then
      38.                     echo "Freigeben erfolgreich"
      39.                 else
      40.                     echo "Fehler beim Freigeben"
      41.                 fi
      42.                 ;;
      43.             *)
      44.                 echo "Erlaubte Kommandos 'sperren' oder 'freigeben'"
      45.                 ;;
      46.         esac
      47. fi
    • Der ASUS RT-AC86U kann das super

      Klappt hervorragend und man kann auch Bandbreiten pro Gerät einstellen. Dann nimmt sich nicht jeder Client die volle Bandbreite.
      ----------
      Gruß
      Matt