Testserver-Installation optional machen (--with-testserver)
This commit is contained in:
@@ -17,7 +17,7 @@ und droppt Pakete bereits auf Netzwerk-Ebene.
|
||||
| `aria_geoblock.ini` | Konfiguration (Laenderliste, Chain, Logging, ...) |
|
||||
| `aria-geoblock.service` | systemd-Unit, fuehrt `--apply` aus |
|
||||
| `aria-geoblock.timer` | systemd-Timer: beim Booten + einmal taeglich |
|
||||
| `install_aria_geoblock.sh` | Installer: kopiert alles nach `/opt/aria-geoblock`, richtet Timer + Testserver ein |
|
||||
| `install_aria_geoblock.sh` | Installer: kopiert alles nach `/opt/aria-geoblock`, richtet Timer ein (Testserver optional, siehe unten) |
|
||||
| `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.service` | systemd-Unit, startet den Test-Webserver dauerhaft |
|
||||
@@ -37,8 +37,21 @@ Das:
|
||||
(bestehende `.ini` wird NICHT ueberschrieben, neue landet als `.example`)
|
||||
- legt `/var/log/aria_geoblock/` an
|
||||
- installiert + aktiviert `aria-geoblock.timer` (`systemctl enable --now`)
|
||||
- installiert + startet `aria-geoblock-testserver.service` (Test-Webserver,
|
||||
siehe Abschnitt "Verbindungstest" unten)
|
||||
|
||||
**Der Test-Webserver wird standardmaessig NICHT installiert.** Wer ihn
|
||||
braucht (siehe Abschnitt "Verbindungstest" unten), haengt die Option
|
||||
`--with-testserver` an:
|
||||
|
||||
```bash
|
||||
sudo ./install_aria_geoblock.sh --with-testserver
|
||||
# optional mit eigenem Zielverzeichnis:
|
||||
sudo ./install_aria_geoblock.sh --with-testserver /opt/aria-geoblock
|
||||
```
|
||||
|
||||
Nur dann wird `aria_geoblock_testserver.py` kopiert und
|
||||
`aria-geoblock-testserver.service` installiert + gestartet (offener Port
|
||||
8899 standardmaessig). Ohne die Option bleibt der Port zu — nachtraeglich
|
||||
installieren geht jederzeit per erneutem Aufruf mit `--with-testserver`.
|
||||
|
||||
Danach `/opt/aria-geoblock/aria_geoblock.ini` anpassen (Laenderliste!) und
|
||||
einmal manuell testen:
|
||||
@@ -80,7 +93,9 @@ Request. Er weiss selbst NICHTS von Laendern/Blocklisten — der eigentliche
|
||||
Test ist der Netzwerkeffekt: **geblockte** IPs erreichen ihn gar nicht erst
|
||||
(iptables droppt vor dem TCP-Handshake), **erlaubte** IPs bekommen die Seite.
|
||||
|
||||
Laeuft nach `install_aria_geoblock.sh` automatisch als
|
||||
Wird nur installiert, wenn `install_aria_geoblock.sh` mit der Option
|
||||
`--with-testserver` aufgerufen wurde (Default: nicht installiert, siehe
|
||||
Abschnitt "Installation" oben). Ist er installiert, laeuft er als
|
||||
`aria-geoblock-testserver.service` auf Port `8899` (einstellbar unter
|
||||
`[testserver]` in `aria_geoblock.ini`, siehe unten).
|
||||
|
||||
|
||||
+55
-12
@@ -7,17 +7,27 @@
|
||||
# aktualisiert.
|
||||
#
|
||||
# Nutzung (als root, im Verzeichnis mit allen Repo-Dateien):
|
||||
# sudo ./install_aria_geoblock.sh [ZIELVERZEICHNIS]
|
||||
# sudo ./install_aria_geoblock.sh [--with-testserver] [ZIELVERZEICHNIS]
|
||||
#
|
||||
# Installiert ausserdem optional einen kleinen Test-Webserver
|
||||
# (aria_geoblock_testserver.py + aria-geoblock-testserver.service), gegen
|
||||
# den man von aussen connecten kann um die Geoblocking-Regeln zu pruefen.
|
||||
# Der kleine Test-Webserver (aria_geoblock_testserver.py +
|
||||
# aria-geoblock-testserver.service), gegen den man von aussen connecten
|
||||
# kann um die Geoblocking-Regeln zu pruefen, wird NUR installiert wenn
|
||||
# die Option --with-testserver angegeben wird. Ohne die Option passiert
|
||||
# in Sachen Testserver gar nichts (kein Copy, kein systemd-Unit, kein
|
||||
# offener Port).
|
||||
#
|
||||
# Beispiele:
|
||||
# sudo ./install_aria_geoblock.sh
|
||||
# sudo ./install_aria_geoblock.sh --with-testserver
|
||||
# sudo ./install_aria_geoblock.sh --with-testserver /opt/aria-geoblock
|
||||
# sudo ./install_aria_geoblock.sh /opt/aria-geoblock
|
||||
#
|
||||
# Benoetigt im selben Verzeichnis:
|
||||
# aria_geoblock.py
|
||||
# aria_geoblock.ini
|
||||
# aria-geoblock.service
|
||||
# aria-geoblock.timer
|
||||
# (nur bei --with-testserver:)
|
||||
# aria_geoblock_testserver.py
|
||||
# aria-geoblock-testserver.service
|
||||
#
|
||||
@@ -31,11 +41,32 @@ if [[ $EUID -ne 0 ]]; then
|
||||
fi
|
||||
|
||||
SRC_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
INSTALL_DIR="${1:-/opt/aria-geoblock}"
|
||||
|
||||
WITH_TESTSERVER=0
|
||||
INSTALL_DIR=""
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
--with-testserver)
|
||||
WITH_TESTSERVER=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"
|
||||
|
||||
for f in aria_geoblock.py aria_geoblock.ini aria-geoblock.service aria-geoblock.timer \
|
||||
aria_geoblock_testserver.py aria-geoblock-testserver.service; do
|
||||
REQUIRED_FILES=(aria_geoblock.py aria_geoblock.ini aria-geoblock.service aria-geoblock.timer)
|
||||
if [[ "$WITH_TESTSERVER" -eq 1 ]]; then
|
||||
REQUIRED_FILES+=(aria_geoblock_testserver.py aria-geoblock-testserver.service)
|
||||
fi
|
||||
|
||||
for f in "${REQUIRED_FILES[@]}"; do
|
||||
if [[ ! -f "$SRC_DIR/$f" ]]; then
|
||||
echo "FEHLER: $f fehlt in $SRC_DIR - bitte komplettes Repo verwenden." >&2
|
||||
exit 1
|
||||
@@ -67,20 +98,28 @@ echo "==> Lege Log-Verzeichnis an: $LOG_DIR"
|
||||
mkdir -p "$LOG_DIR"
|
||||
chmod 750 "$LOG_DIR"
|
||||
|
||||
echo "==> Installiere Test-Webserver nach $INSTALL_DIR"
|
||||
cp "$SRC_DIR/aria_geoblock_testserver.py" "$INSTALL_DIR/aria_geoblock_testserver.py"
|
||||
chmod 755 "$INSTALL_DIR/aria_geoblock_testserver.py"
|
||||
|
||||
echo "==> Installiere systemd-Units"
|
||||
echo "==> Installiere systemd-Units (Geoblock-Timer)"
|
||||
sed "s#__INSTALL_DIR__#$INSTALL_DIR#g" "$SRC_DIR/aria-geoblock.service" \
|
||||
> /etc/systemd/system/aria-geoblock.service
|
||||
cp "$SRC_DIR/aria-geoblock.timer" /etc/systemd/system/aria-geoblock.timer
|
||||
|
||||
if [[ "$WITH_TESTSERVER" -eq 1 ]]; then
|
||||
echo "==> --with-testserver gesetzt: installiere Test-Webserver nach $INSTALL_DIR"
|
||||
cp "$SRC_DIR/aria_geoblock_testserver.py" "$INSTALL_DIR/aria_geoblock_testserver.py"
|
||||
chmod 755 "$INSTALL_DIR/aria_geoblock_testserver.py"
|
||||
|
||||
sed "s#__INSTALL_DIR__#$INSTALL_DIR#g" "$SRC_DIR/aria-geoblock-testserver.service" \
|
||||
> /etc/systemd/system/aria-geoblock-testserver.service
|
||||
else
|
||||
echo "==> Test-Webserver wird NICHT installiert (Option --with-testserver nicht angegeben)."
|
||||
fi
|
||||
|
||||
systemctl daemon-reload
|
||||
systemctl enable --now aria-geoblock.timer
|
||||
|
||||
if [[ "$WITH_TESTSERVER" -eq 1 ]]; then
|
||||
systemctl enable --now aria-geoblock-testserver.service
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "==> Fertig."
|
||||
@@ -89,6 +128,10 @@ echo " Jetzt sofort testen: systemctl start aria-geoblock.service && journal
|
||||
echo " Timer-Status: systemctl list-timers aria-geoblock.timer"
|
||||
echo " Naechste/letzte Läufe: systemctl status aria-geoblock.timer"
|
||||
echo " Log-Datei: $LOG_DIR/aria_geoblock.log"
|
||||
if [[ "$WITH_TESTSERVER" -eq 1 ]]; then
|
||||
echo " Test-Webserver: systemctl status aria-geoblock-testserver.service"
|
||||
echo " Port/Bind/Log siehe [testserver] in $INSTALL_DIR/aria_geoblock.ini"
|
||||
else
|
||||
echo " Test-Webserver: nicht installiert (spaeter nachruesten mit: sudo $0 --with-testserver $INSTALL_DIR)"
|
||||
fi
|
||||
echo " checkmk-Plugin: siehe aria_geoblock_checkmk im Repo (manuell kopieren, README beachten)"
|
||||
|
||||
Reference in New Issue
Block a user