148 lines
7.4 KiB
Bash
148 lines
7.4 KiB
Bash
#!/bin/bash
|
|
###############################################################################
|
|
# AdGuard Shield - Uninstaller
|
|
# Autor: Patrick Asmus
|
|
# E-Mail: support@techniverse.net
|
|
# Lizenz: MIT
|
|
#
|
|
# Dieses Script befindet sich im Installationsverzeichnis und kann daher
|
|
# ohne die originalen Installationsdateien ausgeführt werden:
|
|
# sudo bash /opt/adguard-shield/uninstall.sh
|
|
###############################################################################
|
|
|
|
# INSTALL_DIR ergibt sich aus dem Verzeichnis, in dem dieses Script liegt
|
|
INSTALL_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
SERVICE_FILE="/etc/systemd/system/adguard-shield.service"
|
|
WATCHDOG_SERVICE_FILE="/etc/systemd/system/adguard-shield-watchdog.service"
|
|
WATCHDOG_TIMER_FILE="/etc/systemd/system/adguard-shield-watchdog.timer"
|
|
|
|
# Farben
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
CYAN='\033[0;36m'
|
|
BOLD='\033[1m'
|
|
NC='\033[0m'
|
|
|
|
print_header() {
|
|
echo ""
|
|
echo -e "${BLUE}"
|
|
echo " ▄▄▄ ▓█████▄ ▄████ █ ██ ▄▄▄ ██▀███ ▓█████▄ ██████ ██░ ██ ██▓▓█████ ██▓ ▓█████▄ "
|
|
echo "▒████▄ ▒██▀ ██▌ ██▒ ▀█▒ ██ ▓██▒▒████▄ ▓██ ▒ ██▒▒██▀ ██▌ ▒██ ▒ ▓██░ ██▒▓██▒▓█ ▀ ▓██▒ ▒██▀ ██▌"
|
|
echo "▒██ ▀█▄ ░██ █▌▒██░▄▄▄░▓██ ▒██░▒██ ▀█▄ ▓██ ░▄█ ▒░██ █▌ ░ ▓██▄ ▒██▀▀██░▒██▒▒███ ▒██░ ░██ █▌"
|
|
echo "░██▄▄▄▄██ ░▓█▄ ▌░▓█ ██▓▓▓█ ░██░░██▄▄▄▄██ ▒██▀▀█▄ ░▓█▄ ▌ ▒ ██▒░▓█ ░██ ░██░▒▓█ ▄ ▒██░ ░▓█▄ ▌"
|
|
echo " ▓█ ▓██▒░▒████▓ ░▒▓███▀▒▒▒█████▓ ▓█ ▓██▒░██▓ ▒██▒░▒████▓ ▒██████▒▒░▓█▒░██▓░██░░▒████▒░██████▒░▒████▓ "
|
|
echo " ▒▒ ▓▒█░ ▒▒▓ ▒ ░▒ ▒ ░▒▓▒ ▒ ▒ ▒▒ ▓▒█░░ ▒▓ ░▒▓░ ▒▒▓ ▒ ▒ ▒▓▒ ▒ ░ ▒ ░░▒░▒░▓ ░░ ▒░ ░░ ▒░▓ ░ ▒▒▓ ▒ "
|
|
echo " ▒ ▒▒ ░ ░ ▒ ▒ ░ ░ ░░▒░ ░ ░ ▒ ▒▒ ░ ░▒ ░ ▒░ ░ ▒ ▒ ░ ░▒ ░ ░ ▒ ░▒░ ░ ▒ ░ ░ ░ ░░ ░ ▒ ░ ░ ▒ ▒ "
|
|
echo " ░ ▒ ░ ░ ░ ░ ░ ░ ░░░ ░ ░ ░ ▒ ░░ ░ ░ ░ ░ ░ ░ ░ ░ ░░ ░ ▒ ░ ░ ░ ░ ░ ░ ░ "
|
|
echo " ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ "
|
|
echo " ░ ░ ░ "
|
|
echo -e "${NC}"
|
|
echo -e "${GREEN} Uninstaller${NC}"
|
|
echo -e "${BLUE} Autor: Patrick Asmus${NC}"
|
|
echo -e
|
|
echo -e "${BLUE} E-Mail: support@techniverse.net${NC}"
|
|
echo -e "${BLUE} Web: https://www.patrick-asmus.de${NC}"
|
|
echo ""
|
|
echo -e "${BLUE}───────────────────────────────────────────────────────────────────────────────────────────────────────────────${NC}"
|
|
echo ""
|
|
echo -e "${BLUE} Repo: https://git.techniverse.net/scriptos/adguard-shield${NC}"
|
|
echo ""
|
|
echo -e "${BLUE}═══════════════════════════════════════════════════════════════════════════════════════════════════════════════${NC}"
|
|
echo ""
|
|
}
|
|
|
|
check_root() {
|
|
if [[ $EUID -ne 0 ]]; then
|
|
echo -e "${RED}Dieses Script muss als root ausgeführt werden!${NC}" >&2
|
|
echo "Bitte mit 'sudo $0' ausführen."
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
do_uninstall() {
|
|
check_root
|
|
|
|
# Prüfen ob installiert
|
|
if [[ ! -d "$INSTALL_DIR" ]]; then
|
|
echo -e "${RED}AdGuard Shield ist nicht installiert (Verzeichnis nicht gefunden: $INSTALL_DIR)!${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "${YELLOW}Deinstalliere AdGuard Shield aus: ${BOLD}$INSTALL_DIR${NC}"
|
|
echo ""
|
|
|
|
# Sicherheitsabfrage
|
|
read -rep " Wirklich deinstallieren? [j/N]: " confirm
|
|
if [[ "${confirm,,}" != "j" ]]; then
|
|
echo -e "${GREEN}Deinstallation abgebrochen.${NC}"
|
|
exit 0
|
|
fi
|
|
echo ""
|
|
|
|
# Watchdog-Timer stoppen und deaktivieren
|
|
if systemctl is-active adguard-shield-watchdog.timer &>/dev/null 2>&1; then
|
|
systemctl stop adguard-shield-watchdog.timer
|
|
echo " ✅ Watchdog-Timer gestoppt"
|
|
fi
|
|
if systemctl is-enabled adguard-shield-watchdog.timer &>/dev/null 2>&1; then
|
|
systemctl disable adguard-shield-watchdog.timer
|
|
echo " ✅ Watchdog-Timer deaktiviert"
|
|
fi
|
|
|
|
# Service stoppen und deaktivieren
|
|
if systemctl is-active adguard-shield &>/dev/null; then
|
|
systemctl stop adguard-shield
|
|
echo " ✅ Service gestoppt"
|
|
fi
|
|
if systemctl is-enabled adguard-shield &>/dev/null; then
|
|
systemctl disable adguard-shield
|
|
echo " ✅ Service deaktiviert"
|
|
fi
|
|
if [[ -f "$SERVICE_FILE" ]]; then
|
|
rm -f "$SERVICE_FILE"
|
|
echo " ✅ Service-Datei entfernt"
|
|
fi
|
|
rm -f "$WATCHDOG_SERVICE_FILE" "$WATCHDOG_TIMER_FILE"
|
|
if [[ -f "$WATCHDOG_SERVICE_FILE" ]] || [[ -f "$WATCHDOG_TIMER_FILE" ]]; then
|
|
echo " ✅ Watchdog-Dateien entfernt"
|
|
fi
|
|
systemctl daemon-reload
|
|
|
|
# iptables Chain aufräumen
|
|
if [[ -f "$INSTALL_DIR/iptables-helper.sh" ]]; then
|
|
bash "$INSTALL_DIR/iptables-helper.sh" remove || true
|
|
fi
|
|
|
|
# Dateien entfernen
|
|
read -rep " Konfiguration und Logs behalten? [j/N]: " keep
|
|
if [[ "${keep,,}" == "j" ]]; then
|
|
rm -f "$INSTALL_DIR/adguard-shield.sh"
|
|
rm -f "$INSTALL_DIR/iptables-helper.sh"
|
|
rm -f "$INSTALL_DIR/unban-expired.sh"
|
|
rm -f "$INSTALL_DIR/external-blocklist-worker.sh"
|
|
rm -f "$INSTALL_DIR/external-whitelist-worker.sh"
|
|
rm -f "$INSTALL_DIR/report-generator.sh"
|
|
rm -f "$INSTALL_DIR/adguard-shield-watchdog.sh"
|
|
rm -f "$INSTALL_DIR/uninstall.sh"
|
|
rm -rf "$INSTALL_DIR/templates"
|
|
echo " ✅ Scripts entfernt (Konfiguration und Logs behalten)"
|
|
echo ""
|
|
echo -e "${YELLOW} Konfiguration verbleibt in: $INSTALL_DIR/adguard-shield.conf${NC}"
|
|
echo -e "${YELLOW} Logs verbleiben in: /var/log/adguard-shield*.log${NC}"
|
|
else
|
|
rm -rf "$INSTALL_DIR"
|
|
rm -rf /var/lib/adguard-shield
|
|
rm -f /var/log/adguard-shield.log*
|
|
rm -f /var/log/adguard-shield-bans.log
|
|
echo " ✅ Alles entfernt"
|
|
fi
|
|
|
|
echo ""
|
|
echo -e "${GREEN}Deinstallation abgeschlossen.${NC}"
|
|
}
|
|
|
|
print_header
|
|
do_uninstall
|