Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
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:
- Download der Listen via
curl - Erkennung des Formats (Hosts-Format oder Domain-Liste)
- Normalisierung auf
0.0.0.0Format - Entfernung von Duplikaten via
sort -u - Zusammenführung mit eigenen Einträgen
- 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
- Menüpunkt „Eigene Einträge hinzufügen“ wählen
- Domain eingeben (z.B.
ads.example.comoderhttps://tracking.site.com/path) - URL wird automatisch bereinigt (Protokoll und Pfad entfernt)
- Sowohl die Domain als auch die
www.-Variante werden blockiert - Eintrag wird in
~/.adblocker_customgespeichert - Sofortige Aktivierung in
/etc/hosts
Domain entfernen
- Menüpunkt „Eigene Einträge verwalten“ wählen
- Zu löschende Domains auswählen
- Bestätigung der Löschung
- Entfernung aus
~/.adblocker_customund/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
- Programm starten:
guideos-adblocker-tool - Sudo-Passwort eingeben
- Automatisches Backup der Hosts-Datei
- Automatische Aktualisierung aller Blocklisten
- Hauptmenü erscheint
Blocklisten aktivieren
- „Blocklisten aktivieren & deaktivieren“ wählen
- Gewünschte Listen per Checkbox auswählen
- Bestätigung mit „OK“
- Download und Integration der Listen
- DNS-Cache wird geleert
- Erfolgsmeldung mit Anzahl blockierter Domains
Eigene Domain blockieren
- „Eigene Einträge hinzufügen“ wählen
- Domain eingeben:
tracking.example.com - Domain wird sofort blockiert
- Anzeige der Gesamtzahl eigener Einträge
- 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.0oder127.0.0.1oder::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 zenityodersudo 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.
