Benutzer-Werkzeuge

Webseiten-Werkzeuge


guideos_adblocker

Dies ist eine alte Version des Dokuments!


GuideOS Adblocker Tool

Übersicht

Das GuideOS Adblocker Tool ist ein Zenity-basiertes Bash-Skript zur zentralen Verwaltung von Werbe-, Malware- und Phishing-Domains über die Systemdatei /etc/hosts. Das Programm kombiniert vordefinierte Blocklisten mit individuellen Einträgen und bietet eine komfortable grafische Oberfläche zur Aktivierung, Deaktivierung und Wiederherstellung des Originalzustands [file:5].

Eigenschaft Wert
Entwickler evilware666, helga & Copilot
Version 2.2
Lizenz MIT
Benutzeroberfläche Zenity (GTK-Dialoge)
Systemanforderungen Bash, Zenity, curl, sudo

Funktionen

  • Systemweite Blockierung von Domains über /etc/hosts
  • Integration vordefinierter Blocklisten (StevenBlack, BlocklistProject)
  • Verwaltung benutzerdefinierter Domain-Sperren
  • Automatisches Backup der originalen Hosts-Datei
  • Grafische Benutzeroberfläche mit Zenity
  • DNS-Cache-Leerung nach Änderungen
  • Aktualisierung von Blocklisten auf Knopfdruck
  • Wiederherstellung des Originalzustands

Installation

Abhängigkeiten

# Für Debian/Ubuntu-basierte Systeme
sudo apt install zenity curl
 
# Für Arch-basierte Systeme
sudo pacman -S zenity curl

Skript installieren

# Skript ausführbar machen
chmod +x guideos-adblocker-tool
 
# Optional: In Systempfad verschieben
sudo mv guideos-adblocker-tool /usr/local/bin/

Verwendung

Programm starten

guideos-adblocker-tool

Beim ersten Start wird nach dem sudo-Passwort gefragt, um Systemänderungen durchführen zu können.

Hauptmenü

Das Hauptmenü bietet folgende Optionen:

  • Blocklisten aktivieren & deaktivieren: Auswahl und Verwaltung von Blocklisten
  • Eigene Einträge hinzufügen: Individuelle Domains manuell blockieren
  • Eigene Einträge verwalten: Eigene Sperren anzeigen und löschen
  • Beenden: Programm schließen

Vordefinierte Blocklisten

Das Tool unterstützt folgende Blocklisten:

Blockliste Beschreibung URL
StevenBlack Komplett Blockt Pornografie, Social Media, Fake News, Glücksspiel github.com/StevenBlack/hosts
StevenBlack-Porn Blockt pornografische Inhalte github.com/StevenBlack/hosts/alternates/porn
BlocklistProject-Porn Zusätzliche Porno-Blockliste blocklistproject.github.io/Lists/porn.txt
BlocklistProject-Phishing Blockt Phishing-Seiten blocklistproject.github.io/Lists/phishing.txt

Dateien und Verzeichnisse

Datei/Verzeichnis Zweck
/etc/hosts Systemweite Hosts-Datei (wird modifiziert)
/etc/hosts.adblocker.bak Backup der originalen Hosts-Datei
/etc/hosts.active_lists Speichert aktive Blocklisten
/etc/hosts.lastupdate Zeitstempel der letzten Aktualisierung
~/.adblocker_custom Benutzerdefinierte blockierte Domains

Funktionsweise im Detail

Hosts-Datei Blockierung

Das Tool blockiert Domains durch Einträge in /etc/hosts:

0.0.0.0 ads.example.com
::1 ads.example.com

Anfragen an diese Domains werden zu 0.0.0.0 (nirgendwohin) bzw. ::1 (localhost IPv6) umgeleitet, wodurch die Seite nicht erreichbar ist.

Automatisches Backup

Beim ersten Start wird automatisch ein Backup erstellt:

# Backup-Funktion
backup_hosts() {
  if ! sudo test -f "$BACKUP_FILE"; then
    echo "$SUDO_PASS" | sudo -S cp /etc/hosts "$BACKUP_FILE"
  fi
}

Dies schützt vor Datenverlust und ermöglicht die vollständige Wiederherstellung.

Blocklisten-Aktualisierung

Blocklisten werden von extern heruntergeladen und verarbeitet:

  1. Download der Listen via curl
  2. Erkennung des Formats (Hosts-Format oder Domain-Liste)
  3. Normalisierung auf 0.0.0.0 Format
  4. Entfernung von Duplikaten via sort -u
  5. Zusammenführung mit eigenen Einträgen
  6. DNS-Cache-Leerung

DNS-Cache leeren

Nach jeder Änderung wird der DNS-Cache geleert:

sudo systemd-resolve --flush-caches

Dies stellt sicher, dass Änderungen sofort wirksam werden.

Eigene Domains blockieren

Domain hinzufügen

  1. Menüpunkt „Eigene Einträge hinzufügen“ wählen
  2. Domain eingeben (z.B. ads.example.com oder https://tracking.site.com/path)
  3. URL wird automatisch bereinigt (Protokoll und Pfad entfernt)
  4. Sowohl die Domain als auch die www.-Variante werden blockiert
  5. Eintrag wird in ~/.adblocker_custom gespeichert
  6. Sofortige Aktivierung in /etc/hosts

Domain entfernen

  1. Menüpunkt „Eigene Einträge verwalten“ wählen
  2. Zu löschende Domains auswählen
  3. Bestätigung der Löschung
  4. Entfernung aus ~/.adblocker_custom und /etc/hosts

Skript-Struktur

Hauptfunktionen

Funktion Beschreibung
require_sudo() Fragt sudo-Passwort ab und validiert es
backup_hosts() Erstellt Backup der Hosts-Datei
restore_hosts() Stellt originale Hosts-Datei wieder her
enable_adblock() Aktiviert ausgewählte Blocklisten
add_custom_entry() Fügt benutzerdefinierte Domain hinzu
manage_custom_entries() Verwaltet eigene Einträge
update_blocklists() Aktualisiert alle Blocklisten
count_custom_entries() Zählt eigene Einträge
show_cache_hint() Zeigt Erfolgshinweis mit Cache-Info
main_menu() Hauptmenü-Schleife

Konfigurationsvariablen

CUSTOM_FILE="$HOME/.adblocker_custom"
BACKUP_FILE="/etc/hosts.adblocker.bak"
 
declare -A BLOCKLISTS
BLOCKLISTS["Name"]="https://url-zur-liste"

Workflow-Beispiel

Erste Verwendung

  1. Programm starten: guideos-adblocker-tool
  2. Sudo-Passwort eingeben
  3. Automatisches Backup der Hosts-Datei
  4. Automatische Aktualisierung aller Blocklisten
  5. Hauptmenü erscheint

Blocklisten aktivieren

  1. „Blocklisten aktivieren & deaktivieren“ wählen
  2. Gewünschte Listen per Checkbox auswählen
  3. Bestätigung mit „OK“
  4. Download und Integration der Listen
  5. DNS-Cache wird geleert
  6. Erfolgsmeldung mit Anzahl blockierter Domains

Eigene Domain blockieren

  1. „Eigene Einträge hinzufügen“ wählen
  2. Domain eingeben: tracking.example.com
  3. Domain wird sofort blockiert
  4. Anzeige der Gesamtzahl eigener Einträge
  5. Browser neu starten für sofortige Wirkung

Erweiterte Nutzung

Neue Blockliste hinzufügen

Das Skript kann erweitert werden:

# Im BLOCKLISTS-Array hinzufügen:
BLOCKLISTS["Meine eigene Liste"]="https://example.com/blocklist.txt"

Unterstützte Formate:

  • Hosts-Format: Zeilen mit 0.0.0.0 oder 127.0.0.1 oder ::1
  • Domain-Format: Eine Domain pro Zeile

Automatische Aktualisierung via Cron

# Crontab bearbeiten
crontab -e
 
# Täglich um 3 Uhr morgens aktualisieren
0 3 * * * /usr/local/bin/guideos-adblocker-tool --update-silent 2>&1 | logger -t adblocker

Hinweis: Das Skript müsste für –update-silent erweitert werden (nicht in aktueller Version enthalten).

Fehlersuche

Blockliste wird nicht geladen

  • Internetverbindung prüfen: ping 8.8.8.8
  • URL manuell testen: curl -I https://url-zur-liste
  • Proxy-Einstellungen überprüfen
  • Firewall-Regeln kontrollieren

Domain wird nicht blockiert

  • Browser-Cache leeren (Strg+Shift+Entf)
  • Browser komplett schließen und neu starten
  • DNS-Cache manuell leeren: sudo systemd-resolve –flush-caches
  • Hosts-Datei prüfen: grep „domain.com“ /etc/hosts
  • HTTPS-Verbindungen können trotz Blockierung Zertifikatsfehler zeigen

Wiederherstellung schlägt fehl

  • Backup-Datei prüfen: sudo cat /etc/hosts.adblocker.bak
  • Manuelle Wiederherstellung: sudo cp /etc/hosts.adblocker.bak /etc/hosts
  • Original-Hosts erstellen: sudo cp /etc/hosts.adblocker.bak /etc/hosts

Berechtigungsprobleme

  • Sudo-Rechte überprüfen: sudo -v
  • Benutzer in sudoers-Datei prüfen: groups $USER
  • Zenity installiert: which zenity

Zenity-Dialoge erscheinen nicht

  • Zenity installiert: sudo apt install zenity oder sudo pacman -S zenity
  • X11/Wayland Session läuft: echo $DISPLAY
  • Als anderer Benutzer: xhost +SI:localuser:$(whoami)

Sicherheitshinweise

Wichtige Hinweise zur Verwendung:

  • Das Tool benötigt sudo-Rechte für Systemänderungen
  • Backup wird automatisch erstellt, sollte aber zusätzlich gesichert werden
  • Übermäßiges Blockieren kann legitime Websites beeinträchtigen
  • Manche Websites funktionieren nicht ohne Werbenetzwerke
  • Änderungen betreffen alle Benutzer des Systems
  • Browser-Cache muss geleert werden für sofortige Wirkung

Vorteile und Nachteile

Vorteile

  • Systemweite Blockierung (alle Browser und Anwendungen)
  • Keine Browser-Extensions nötig
  • Bessere Performance durch weniger Netzwerkanfragen
  • Funktioniert auch bei Apps außerhalb des Browsers
  • Einfache grafische Bedienung
  • Open Source und transparent

Nachteile

  • Keine selektive Blockierung pro Browser
  • Kann legitime Inhalte blockieren
  • Manche Websites erkennen Adblocker
  • Manuelle Aktualisierung der Listen erforderlich
  • Keine Statistiken oder Protokollierung
  • DNS-over-HTTPS (DoH) umgeht /etc/hosts

Alternative Ansätze

Methode Vorteile Nachteile
Browser-Extension Selektiv, Whitelisting Nur Browser, mehrere Extensions nötig
Pi-hole Netzwerkweit, Statistiken Separate Hardware/VM erforderlich
/etc/hosts (dieses Tool) Systemweit, einfach Keine feingranulare Kontrolle
DNS-Server (AdGuard DNS) Keine Installation Abhängigkeit von Drittanbieter

Weiterentwicklung

Mögliche Erweiterungen:

  • Automatische Updates via Cron-Job
  • Whitelist-Funktion für Ausnahmen
  • Import/Export von eigenen Listen
  • Statistiken über blockierte Requests
  • Benachrichtigungen bei Blocklisten-Updates
  • Kategorisierung von eigenen Einträgen
  • Integration von Regex-Patterns
  • Temporäre Deaktivierung einzelner Listen

Code-Beispiele

Domain manuell zur Hosts-Datei hinzufügen

# IPv4 und IPv6 blockieren
echo "0.0.0.0 ads.example.com" | sudo tee -a /etc/hosts
echo "::1 ads.example.com" | sudo tee -a /etc/hosts
 
# DNS-Cache leeren
sudo systemd-resolve --flush-caches

Alle Adblocker-Einträge anzeigen

# Eigene Einträge anzeigen
cat ~/.adblocker_custom
 
# Anzahl blockierter Domains
grep -c "^0.0.0.0" /etc/hosts

Backup wiederherstellen

# Original wiederherstellen
sudo cp /etc/hosts.adblocker.bak /etc/hosts
 
# DNS-Cache leeren
sudo systemd-resolve --flush-caches

Siehe auch

Lizenz

Das GuideOS Adblocker Tool ist unter der MIT-Lizenz veröffentlicht.

Copyright (c) 2024 evilware666, helga & Copilot

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
guideos_adblocker.1769867535.txt.gz · Zuletzt geändert: von ktt73

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki