Adblock mit OpenWRT
Dieser Beitrag wurde 33579 mal angezeigt.
Hy Leute,
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 3
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.
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 7
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
Related Posts
Youtube Auto-Importer (20.12.12)
Facebook Importer für UE30Module
Raspberry Pi 3 – POS Mining für Altcoins
About Author
Sven
- Du hast Fragen? - Do you have a question? - Dir hat mein Beitrag geholfen? - If my articles helped you : - Spend me a Beer ;)
Add a Comment
Antworten abbrechen
Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.
Hallo, was kann ich machen wenn bash nicht funktioniert?
opkg install bash
😉
Muss dem Proxy nicht noch regelmäßig das Laden der Listen getriggert werden?
chmod u+x /etc/privoxy/privoxy-blocklist.sh
kann bash problem lösen
Wie viel Platz nimmt der adBlock Proxy zusätzlich ein? Ich habe aus einem Mini-NEXX Router,mit 8MB, ein Tor-Router geflasht und wollte wissen, ob der AdBlock noch raufpasst. LG Franky
Nicht viel. Sollten unter <5MB sein. Sind ja nur Filterregeln und ein Script das auf den neusten Stand hält.
Will bei mir leider nicht funktionieren, bekomme noch immer den ganzen Müll ^^
Kp. was ich falsch mache. Zumal mein IP-Raum auch 192.168.1.1 ist… :S
Warum muss man eigentlich den Proxy erst in Step 2 konfigurieren (landet dann offenbar alles in /etc/config/privoxy), und dann eine weitere Config in Step 6 anlegen (in /etc/privoxy/config)?
verwende doch einfach entsprechendes opak package inkl. GUI für LUCI https://github.com/openwrt/packages/blob/master/net/adblock/files/README.md
Guten tag,
ich habe einen TP-link Wa850 im Einsatz und Openwrt darauf installiert. Das Gerät ist per Lan mit dem Router verbunden und gibt anstandslos das Internet an die WLan Clients weiter. Jedoch kann Openwrt selber nicht auf das Internet zugreifen, also auch per ping google.com nur bad adress. Hast du eine Idee was ich machen kann dass Openwrt die Pakete irgendwie bekommt?