Sitemap | Nicht eingeloggt

Layout: V2_DayTime
V2_DayTime
| V2
V2
| V2 Dark
V2 Dark
| Alle

DE

Tux

Werbung blockieren mit dnsmasq

Wie funktioniert diese AdBlock-Variante?

Wenn ADseiten geladen werden im Internet, werden üblicherweise per DNS-Server Anfragen auf Drittseiten (zum Beispiel ads.google.com) umgeleitet und der Inhalt dann von diesen Seiten zur Verfügung gestellt.
Da bevor eine DNS Anfrage gesendet wird, die Hostsdatei auf dem lokalen Rechner abgefragt wird, kann man diese ADSeiten umleiten auf eine IP Adresse, die nicht verfügbar ist. Normalerweise leitet man die Anfragen auf 127.0.0.1 (oder localhost) um.

Wenn man selber einen DNS-Server betreibt, kann man auch dem DNS-Server beibringen die Anfragen auf seine Loopbackadresse umzuleiten, was wir in dieser Anleitung machen.

Voraussetzungen

Installation

curl installieren

curl wird so installiert:

sudo apt-get install curl

sed installieren

sed wird so installiert:

sudo apt-get install sed

Hostfile vorbereiten

Die eigene Hostsdatei bereiten wir zuerst vor:

sudo nano /etc/hosts

Hier fügen wir eine eigene Zeile zuunterst ein:

#ADBLOCKING

Nach diesem Eintrag werden die Einträge aus der Datei, die wir gleich herunterladen eingefügt.

Nano beenden kannst Du mit ctrl-x und Y oder J um zu speichern

Und sichern die Datei:

sudo cp /etc/hosts /etc/hosts.eigene_backup

Vorbereiteter Hostfile-Anhang von meinem Server einbinden

Dafür wechseln wir auf eine Root-Console:

sudo su

Jetzt brauchen wir nur noch folgenden Befehl auszuführen:

curl -s -A "Mozilla/5.0" http://easelee.ddns.net/inhalt/downloads/hosts sed -e '/START/d' >> /etc/hosts

Die Datei kann man überprüfen ob die Daten angekommen sind:
sudo nano /etc/hosts
Wenn hier Einträge unterhalb #ADBLOCKING stehen, hat es funktioniert!

Wenn Du jetzt eine Seite mit viel Werbung öffnest, wird die Werbung nicht mehr angezeigt und auch gar nicht mehr geladen.

Automatisiertest Update einrichten

Script erstellen

Shellscript erstellen in /home/USER:

cd ~

sudo nano update_adblocker.sh

Diesen Inhalt einfügen:

#!/bin/sh
sudo cp /etc/hosts.eigene_backup /etc/hosts
sudo sh -c "curl -s -A \"Mozilla/5.0\" http://easelee.ddns.net/inhalt/downloads/hosts | sed -e '/START/d' >> /etc/hosts"
sudo service dnsmasq restart

...und die Datei ausführbar machen:

chmod +x update_adblocker.sh

Cronjob einrichten

Root-Crontab zur Bearbeitung öffnen:

sudo crontab -e

Nach unten Scrollen und folgendes nach der Linie # m h dom mon dow, wie hier angezeigt einfügen:

# m h dom mon dow command

#Update des hostfiles mit den neuesten Adblockdaten
30 3 1 * * cd /home/pi && sudo ./update_adblocker.sh

#weitere Cronaufgaben hier listen

Jetzt wird das Script an jedem ersten Tag des Monats um 3:30 Uhr ausgeführt.

ACHTUNG:
Wenn Du später die Hostsdatei anpasst, wird sie jeweils wieder mit der in hosts.eigene_backup überschrieben!
Es macht also Sinn, die Änderungen (zusätzlich) in die Backupdatei zu schreiben.

Infos zum Dokument
Author: Christoph Iseli
Datum: 25.03.2015
Letzte Änderung: 03.07.2015

0 Kommentare

Einen neuen Kommentar hinzufügen

Info: Wenn Du eingeloggt bist, musst Du keine Userdaten mehr eingeben.

Ort:
(Optional)

Kommentar:

Impressum
Programmierung: Christoph Iseli | Design: Christoph Iseli
Webseitencode: Darf frei kopiert / verwendet werden (Downloads) | Inhalt: Darf frei verwendet werden, solange ein Link auf diese Seite mitgegeben wird.