Deinstall-Script hinzufuegen (komplett oder nur Testserver)
This commit is contained in:
@@ -21,6 +21,7 @@ und droppt Pakete bereits auf Netzwerk-Ebene.
|
|||||||
| `aria_geoblock_checkmk` | checkmk local-check Plugin (manuell kopieren) |
|
| `aria_geoblock_checkmk` | checkmk local-check Plugin (manuell kopieren) |
|
||||||
| `aria_geoblock_testserver.py` | Kleiner Test-Webserver, um die Regeln von aussen zu pruefen |
|
| `aria_geoblock_testserver.py` | Kleiner Test-Webserver, um die Regeln von aussen zu pruefen |
|
||||||
| `aria-geoblock-testserver.service` | systemd-Unit, startet den Test-Webserver dauerhaft |
|
| `aria-geoblock-testserver.service` | systemd-Unit, startet den Test-Webserver dauerhaft |
|
||||||
|
| `uninstall_aria_geoblock.sh` | Deinstaller: raeumt Timer/Service/Testserver/Regeln wieder ab (siehe unten) |
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
@@ -66,6 +67,39 @@ und **einmal taeglich** (mit bis zu 15min Zufallsversatz, damit nicht alle
|
|||||||
Hosts gleichzeitig ipdeny.com anfragen). Verpasste Laeufe (Host war aus)
|
Hosts gleichzeitig ipdeny.com anfragen). Verpasste Laeufe (Host war aus)
|
||||||
werden dank `Persistent=true` beim naechsten Boot nachgeholt.
|
werden dank `Persistent=true` beim naechsten Boot nachgeholt.
|
||||||
|
|
||||||
|
## Deinstallation
|
||||||
|
|
||||||
|
`uninstall_aria_geoblock.sh` macht die Installation wieder rueckgaengig.
|
||||||
|
Zwei Modi:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Alles runter: Timer/Service, Testserver (falls installiert),
|
||||||
|
# iptables/ipset-Regeln, Installationsverzeichnis
|
||||||
|
sudo ./uninstall_aria_geoblock.sh
|
||||||
|
|
||||||
|
# Nur den Test-Webserver entfernen, Geoblocking selbst bleibt aktiv
|
||||||
|
sudo ./uninstall_aria_geoblock.sh --testserver-only
|
||||||
|
```
|
||||||
|
|
||||||
|
Weitere Optionen:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo ./uninstall_aria_geoblock.sh --purge-logs # zusaetzlich /var/log/aria_geoblock loeschen
|
||||||
|
sudo ./uninstall_aria_geoblock.sh /opt/aria-geoblock # abweichendes Zielverzeichnis (Default: /opt/aria-geoblock)
|
||||||
|
```
|
||||||
|
|
||||||
|
Ohne `--purge-logs` bleiben die bisherigen Logs unter
|
||||||
|
`/var/log/aria_geoblock` erhalten. Bei der Komplett-Deinstallation wird
|
||||||
|
VOR dem Loeschen automatisch `aria_geoblock.py --remove` ausgefuehrt, damit
|
||||||
|
die iptables-Regel und das `ipset` sauber aus dem Kernel entfernt werden
|
||||||
|
(kein verwaistes DROP, keine offene Verbindung bleibt blockiert). Fehlen
|
||||||
|
Script/Config bereits, wird gewarnt und man sollte manuell pruefen:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
iptables -L -n | grep -i geoblock
|
||||||
|
ipset list -n | grep -i geoblock
|
||||||
|
```
|
||||||
|
|
||||||
## Manuelle Nutzung (ohne systemd)
|
## Manuelle Nutzung (ohne systemd)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
Executable
+123
@@ -0,0 +1,123 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# ARIA Geoblocking - Deinstaller
|
||||||
|
#
|
||||||
|
# Macht die Installation von install_aria_geoblock.sh wieder rueckgaengig.
|
||||||
|
# Standardmaessig wird ALLES entfernt: Timer/Service, ggf. der Testserver,
|
||||||
|
# die iptables/ipset-Regeln und das Installationsverzeichnis. Mit
|
||||||
|
# --testserver-only wird NUR der Test-Webserver entfernt, das eigentliche
|
||||||
|
# Geoblocking (Timer, Regeln, Config) bleibt unangetastet.
|
||||||
|
#
|
||||||
|
# Nutzung (als root):
|
||||||
|
# sudo ./uninstall_aria_geoblock.sh [--testserver-only] [--purge-logs] [ZIELVERZEICHNIS]
|
||||||
|
#
|
||||||
|
# Beispiele:
|
||||||
|
# sudo ./uninstall_aria_geoblock.sh # alles runter
|
||||||
|
# sudo ./uninstall_aria_geoblock.sh --testserver-only # nur Testserver runter
|
||||||
|
# sudo ./uninstall_aria_geoblock.sh --purge-logs # alles + Logs loeschen
|
||||||
|
# sudo ./uninstall_aria_geoblock.sh /opt/aria-geoblock # abweichendes Zielverzeichnis
|
||||||
|
#
|
||||||
|
# Ohne --purge-logs bleibt /var/log/aria_geoblock erhalten (falls vorhanden),
|
||||||
|
# damit alte Laeufe/Fehler weiter nachvollziehbar sind.
|
||||||
|
#
|
||||||
|
# Ohne --testserver-only werden VOR dem Entfernen der Regeln automatisch
|
||||||
|
# "aria_geoblock.py --remove" ausgefuehrt, damit iptables/ipset sauber
|
||||||
|
# aufgeraeumt werden (kein verwaistes DROP, kein verwaistes ipset).
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
if [[ $EUID -ne 0 ]]; then
|
||||||
|
echo "Bitte als root ausfuehren (sudo ./uninstall_aria_geoblock.sh)." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
TESTSERVER_ONLY=0
|
||||||
|
PURGE_LOGS=0
|
||||||
|
INSTALL_DIR=""
|
||||||
|
for arg in "$@"; do
|
||||||
|
case "$arg" in
|
||||||
|
--testserver-only)
|
||||||
|
TESTSERVER_ONLY=1
|
||||||
|
;;
|
||||||
|
--purge-logs)
|
||||||
|
PURGE_LOGS=1
|
||||||
|
;;
|
||||||
|
-h|--help)
|
||||||
|
grep '^# ' "${BASH_SOURCE[0]}" | sed 's/^# \{0,1\}//'
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
INSTALL_DIR="$arg"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
INSTALL_DIR="${INSTALL_DIR:-/opt/aria-geoblock}"
|
||||||
|
LOG_DIR="/var/log/aria_geoblock"
|
||||||
|
|
||||||
|
stop_disable_rm_unit() {
|
||||||
|
local unit="$1"
|
||||||
|
if systemctl list-unit-files "$unit" >/dev/null 2>&1 && systemctl list-unit-files "$unit" | grep -q "$unit"; then
|
||||||
|
echo "==> Stoppe/deaktiviere $unit"
|
||||||
|
systemctl stop "$unit" >/dev/null 2>&1 || true
|
||||||
|
systemctl disable "$unit" >/dev/null 2>&1 || true
|
||||||
|
fi
|
||||||
|
if [[ -f "/etc/systemd/system/$unit" ]]; then
|
||||||
|
rm -f "/etc/systemd/system/$unit"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# --- Nur Testserver entfernen -----------------------------------------------
|
||||||
|
if [[ "$TESTSERVER_ONLY" -eq 1 ]]; then
|
||||||
|
echo "==> --testserver-only: entferne NUR den Test-Webserver, Geoblocking bleibt aktiv"
|
||||||
|
stop_disable_rm_unit "aria-geoblock-testserver.service"
|
||||||
|
rm -f "$INSTALL_DIR/aria_geoblock_testserver.py"
|
||||||
|
systemctl daemon-reload
|
||||||
|
echo ""
|
||||||
|
echo "==> Fertig. Testserver entfernt, Geoblock-Timer/Regeln unveraendert."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# --- Komplett-Deinstallation -------------------------------------------------
|
||||||
|
echo "==> Deinstalliere ARIA Geoblocking komplett ($INSTALL_DIR)"
|
||||||
|
|
||||||
|
# Testserver zuerst (falls vorhanden), damit kein Dienst mehr auf die
|
||||||
|
# Config/das Verzeichnis zugreift, waehrend wir aufraeumen.
|
||||||
|
stop_disable_rm_unit "aria-geoblock-testserver.service"
|
||||||
|
rm -f "$INSTALL_DIR/aria_geoblock_testserver.py"
|
||||||
|
|
||||||
|
# iptables/ipset-Regeln sauber abbauen, SOLANGE Script+Config noch da sind.
|
||||||
|
if [[ -f "$INSTALL_DIR/aria_geoblock.py" && -f "$INSTALL_DIR/aria_geoblock.ini" ]]; then
|
||||||
|
echo "==> Entferne iptables/ipset-Regeln (aria_geoblock.py --remove)"
|
||||||
|
if command -v python3 >/dev/null 2>&1; then
|
||||||
|
python3 "$INSTALL_DIR/aria_geoblock.py" --config "$INSTALL_DIR/aria_geoblock.ini" --remove || \
|
||||||
|
echo "WARNUNG: --remove ist fehlgeschlagen - iptables/ipset ggf. manuell pruefen (iptables -L, ipset list)." >&2
|
||||||
|
else
|
||||||
|
echo "WARNUNG: python3 nicht gefunden - Regeln konnten nicht automatisch entfernt werden. Manuell pruefen (iptables -L, ipset list)." >&2
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "WARNUNG: $INSTALL_DIR/aria_geoblock.py oder .ini nicht gefunden - ueberspringe automatischen Regel-Abbau. Manuell pruefen (iptables -L, ipset list)." >&2
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "==> Stoppe/deaktiviere Timer + Service"
|
||||||
|
stop_disable_rm_unit "aria-geoblock.timer"
|
||||||
|
stop_disable_rm_unit "aria-geoblock.service"
|
||||||
|
|
||||||
|
systemctl daemon-reload
|
||||||
|
|
||||||
|
echo "==> Entferne Installationsverzeichnis $INSTALL_DIR"
|
||||||
|
rm -rf "$INSTALL_DIR"
|
||||||
|
|
||||||
|
if [[ "$PURGE_LOGS" -eq 1 ]]; then
|
||||||
|
echo "==> --purge-logs gesetzt: entferne $LOG_DIR"
|
||||||
|
rm -rf "$LOG_DIR"
|
||||||
|
else
|
||||||
|
if [[ -d "$LOG_DIR" ]]; then
|
||||||
|
echo "==> Logs bleiben erhalten: $LOG_DIR (mit --purge-logs zusaetzlich loeschen)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "==> Fertig. ARIA Geoblocking wurde komplett deinstalliert."
|
||||||
|
echo " Kurze Kontrolle falls gewuenscht:"
|
||||||
|
echo " iptables -L -n | grep -i geoblock"
|
||||||
|
echo " ipset list -n | grep -i geoblock"
|
||||||
|
echo " systemctl list-timers | grep -i geoblock"
|
||||||
Reference in New Issue
Block a user