Adblock mit OpenWRT

Dieser Beitrag wurde 32027 mal angezeigt.

Hy Leute,block

in 2 Beiträgen zuvor habe ich euch erklärt wie ihr OpenWRT auf einem Raspberry Pi, als auch auf einem Banana Pi Routerboard installieren und nutzen könnt.
Fast jeder fühlt sich von der Werbeflut, dieser aufdringlichen Werbung durch Banner, PopUps, Frames usw. belästigt.
Mich persönlich nerven nur die blinkenden, aufdringlichen und vor allem nervigen. Werbung sollte dezent sein und so gestaltet, das es den Content der eigentlichen Seite nicht stört oder zerstört.
Es gibt zwar schon Lösungen, z.b. Adblock Plus für den Firefox. Allerdings bekommt ihr den nicht für euer Smartphone oder Tablet. Zudem müsst ihr den Blocker auf jedem Pc oder Mac manuell installieren. Das kann etwas Zeit kosten, die ihr euch sparen könntet.
Daher möchte ich euch heute einmal erklären, wie ihr einen Ad-Blocker oder Werbeblocker auf eurem OpenWRT Router installieren könnt.

Als erstes installiert ihr euch mal einen Raspberry oder Banana Pi mit OpenWRT.  Danach gehts gleich mit den Steps weiter 😉

Step 1

Wir benötigen zum einrichten der Filter einen Proxy auf dem Router. Der für uns die Webseiten prüft und den Inhalt dann gefiltert an uns weiter gibt.
Hier können wir Privoxy nehmen und dazu einige Filterregeln, die auch beim Adblock Plus für den Firefox benutzt werden. z.b. EasyList oder Fanboy-Social Script Filter.

Loggt euch auf eurem eingerichteten OpenWRT als admin ein und geht auf die System->Software Seite. Ladet euch die neusten Updates runter. Sucht anschließend nach dem Modul : „Privoxy“ im Filter.

Installiert hier die 3 Module. Die deutsche Übersetzung ist dabei optional und kein muss. In der Reihenfolge:

  • privoxy
  • luci-app-privoxy
  • luci-i18n-privoxy-de

Danach noch die Module:

  • coreutils-install
  • bash
  • nano

Nachdem ihr die 3 Module installiert habt, habt ihr unter Services einen neuen Eintrag mit „Privoxy WEB proxy“. Diesen müsst ihr nun öffnen.

Step 2

Als nächsten öffnet ihr den Reiter „Zugriffskontrolle“ und setzt/entfernt die Hacken wie folgt:

  • Toggle Status = Ein
  • Enable remote toggle = Ein
  • Enable remote toggle via HTTP = Aus
  • Enable action filter editor = Ein
  • Enforce page blocking = Aus

speichert.

Wechselt nun in den Reiter Verschiedenes und setzt/entfernt die Hacken wie folgt:

  • Accept intercepted requests = Ein
  • Allow CGI request crunching = Aus
  • Split large froms = Aus
  • Tolerate piplining = Aus
  • Connection sharing = Aus
  • Handle as empty doc returns ok = Aus
  • Enable comression = Aus

speichert&Bestätigen klicken oder „Save&Apply“.

Step 3Install_Privoxy_Adblocker_03

Wir möchten das unsere Filterregel automatisch auf dem neusten Stand bleiben. Dazu benutzen wir ein Script von Andrew das uns per Git zur Verfügung steht. Dazu müssen wir uns per Putty auf dem Router einloggen.

Bei mir im LAN hat sich der Router mit dem Namen OpenWrt.lan registiert. Darüber können wir diesen auch finden. Öffnet mit Putty eine SSH Verbindung zum Router. Benutzt den User root sowie euer Admin Passwort von der Oberfläche.

Wenn ihr auf dem Router seit, gebt ihr folgendes ein:

cd /etc/privoxy
wget https://raw.github.com/Andrwe/privoxy-blocklist/master/privoxy-blocklist.sh --no-check-certificate
chmod +x privoxy-blocklist.sh
sed -i s/^SCRIPTCONF.*/SCRIPTCONF=\\/etc\\/privoxy\\/blocklist.conf/ privoxy-blocklist.sh

Als nächstes benötigen wir eine Konfigurationsdatei für unser Script.

nano /etc/privoxy/blocklist.conf

und füge dies ein:

# Config of privoxy-blocklist

# array of URL for AdblockPlus lists
# for more sources just add it within the round brackets
URLS=(
"https://easylist-downloads.adblockplus.org/malwaredomains_full.txt"
"https://easylist-downloads.adblockplus.org/antiadblockfilters.txt"
"https://easylist-downloads.adblockplus.org/fanboy-social.txt"
"https://easylist-downloads.adblockplus.org/easyprivacy.txt"
"https://easylist-downloads.adblockplus.org/easylist.txt"
"https://easylist-downloads.adblockplus.org/easylistgermany.txt"
"https://easylist-downloads.adblockplus.org/easylistgermany+easylist.txt"
)

# config for privoxy initscript providing PRIVOXY_CONF, PRIVOXY_USER and PRIVOXY_GROUP
INIT_CONF="/etc/conf.d/privoxy"

# !! if the config above doesn't exist set these variables here !!
# !! These values will be overwritten by INIT_CONF !!
PRIVOXY_USER="root"
PRIVOXY_GROUP="root"
PRIVOXY_CONF="/etc/privoxy/config"

# name for lock file (default: script name)
TMPNAME="$(basename ${0})"
# directory for temporary files
TMPDIR="/tmp/${TMPNAME}"

# Debug-level
# -1 = quiet
# 0 = normal
# 1 = verbose
# 2 = more verbose (debugging)
# 3 = incredibly loud (function debugging)
DBG=0

Achtet zum Beispiel auf die Zeile

"https://easylist-downloads.adblockplus.org/easylistgermany.txt

Diese ist Länderspezifisch. In dem Fall für Deutschland. Ihr könnt diese aber auch für Niederlande nehmen mit „easylistdutch.txt“ . Oder einfach weitere Länder darunter hinzufügen. Weitere Listen findet ihr auf https://easylist.adblockplus.org/de/

Oder ihr öffnet euren Ad-Blocker im Firefox und ruft die URLs, also die Listen direkt ab.
Install_Privoxy_Adblocker_04

Achtet auf die erste Zeile beim einfügen. Das diese auch korrekt übernommen wurde.

  • Speichert nun die Einstellungen mit den beiden Tasten „STRG +X“ und „Y“

Step 4

Damit unser Script auch auf dem OpenWRT ausgeführt wird, müssen wir ggf. die Datei abändern.
Nun können wir das Script laufen lassen und uns die Regel für unseren Blocker laden.

/etc/privoxy/privoxy-blocklist.sh

Probiert es aber erst aus, wenn ihr keine Fehlermeldung bekommt, klappt es, wenn ihr die Fehlermeldung „-ash: /etc/privoxy/privoxy-blocklist.sh: not found“ bekommt, funktioniert „bash“ nicht bei euch und ihr könnt nun leider abbrechen.

Step 5

Damit unsere Liste wöchentlich auf den neusten Stand gebracht wird, können wir über die Web-GUI noch einen Crontab hinterlegen. Dazu gehen wir unter System auf „Scheduled Tasks“ und fügen dieses hinzu und drücken auf „Submit“.

@weekly /etc/privoxy/privoxy-blocklist.sh

Step 6

Damit wir auch eine Config haben auf die unser Privoxy zugreifen kann, hinterlegen wir eine Configdatei:

nano /etc/privoxy/config

mit folgendem Inhalt:

confdir /etc/privoxy
logdir /var/log
filterfile default.filter
logfile privoxy

actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on.
actionsfile default.action # Main actions file

filterfile user.filter

listen-address 192.168.1.1:8118
toggle 1
enable-remote-toggle 1
enable-remote-http-toggle 0
enable-edit-actions 1
enforce-blocks 0
buffer-limit 4096
forwarded-connect-retries 0
accept-intercepted-requests 1
allow-cgi-request-crunching 0
split-large-forms 0
keep-alive-timeout 300
socket-timeout 300
permit-access 192.168.1.0/24
debug 8192 # Errors - *we highly recommended enabling this*

Achtet auf die Netzwerk Adressen. Bei mir sind diese 192.168.1.1 – 255

Step 7Firewall_Portforward

Damit unsere neuen Regel auch greifen, müssen wir unsere Firewall auch sagen das wir diese Regeln nun beachten wollen.

Dazu öffnen wir die Config:

nano /etc/config/firewall

und fügen unterhalb der anderen Regeln, dies ein:

config redirect
        option proto 'tcp'
        option target 'DNAT'
        option dest 'lan'
        option _name 'transparent-proxy for HTTP'
        option src 'lan'
        option dest_port '8118'
        option src_dport '80'
        option dest_ip '192.168.1.1'
        option src_dip '!192.168.1.1'

Jetzt starten wir noch die Firewall neu und schon greifen unsere neuen Regeln:

/etc/init.d/firewall restart
/etc/init.d/privoxy restart

Wenn ihr die Regeln für eine gewisse Zeit unterbrechen wollt, geht per Web-GUI auf Network->Firewall und dort auf „Port-Forwards“ hier könnt ihr die Regel an und aus schalten.

 

Falls Privoxy einmal abschmiert, muss dieser manuell neugestartet werden.
Das möchte man natürlich nicht immer, daher kann man sich einen kleinen Watchdog bauen, der diesen Job für einen übernimmt.
Dazu erstellen wir eine Datei.

nano /etc/check_privoxy.sh
#! /bin/bash

case "$(pidof privoxy | wc -w)" in

0)  echo "Restarting:     $(date)" >> /var/log/privoxy.txt
    /etc/init.d/privoxy restart
    ;;
1)  # all ok
        #echo "All Good at privoxy: $(date)" >> /var/log/privoxy.txt
    ;;
*)  echo "Removed double privoxy: $(date)" >> /var/log/privoxy.txt
    kill $(pidof privoxy | awk '{print $1}')
    /etc/init.d/privoxy restart
    ;;
esac

Nach dem Speichern und dem setzen von chmod +x fügen wir den Cronjob ebenfalls bei den Scheduled Tasks ein.

* * * * * /etc/check_privoxy.sh

 

 

Herzlichen Glückwunsch, der AD-Blocker ist nun aktiv!

Wenn euch das Tutorium gefallen hat, würde ich mich über eine kleine Aufmerksamkeit  freuen.
Ausgang des Tutoriums


11 Comments

Add a Comment

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.