Server Tools: Firewall, Fail2Ban, Logs und Status
Systemnahe Befehle von Server Tools: UFW-Firewall (Status, Ports erlauben und sperren), Fail2Ban (Jails, gesperrte IPs, entbannen), Log-Viewer mit Suche und das System-Status-Dashboard.
Firewall, Fail2Ban, Logs und Status
Firewall (UFW)
Alias: fw. Voraussetzung ist ufw. Ohne das Paket melden die Befehle UFW is not installed.
server-tools firewall status
server-tools firewall allow --port 443 --proto tcp
server-tools firewall deny --port 8080
| Befehl | Wirkung |
|---|---|
status |
Gibt ufw status verbose aus |
allow --port <n> [--proto tcp\|udp] |
ufw allow <n>/<proto>, ohne --proto ufw allow <n> (TCP und UDP) |
deny --port <n> [--proto tcp\|udp] |
ufw deny <n>/<proto> bzw. ufw deny <n> |
Der Port muss eine Zahl von 1 bis 65535 sein. Jede Änderung landet im Audit-Log.
Im Menü "Firewall Management" gibt es zusätzlich:
- Remove rule: zeigt
ufw status numbered, fragt nach der Regelnummer und nach einer Bestätigung und löscht die Regel. - Enable/Disable firewall: schaltet je nach aktuellem Zustand ein oder aus, nach einer Bestätigung. Beim Einschalten warnt das Tool, dass SSH (Port 22) erlaubt sein muss. Eine Regel dafür legt es nicht an.
Fail2Ban
Alias: f2b. Voraussetzung ist fail2ban-client.
server-tools fail2ban status
server-tools fail2ban banned
server-tools fail2ban unban --ip 203.0.113.10
| Befehl | Wirkung |
|---|---|
status |
Alle aktiven Jails mit aktuell und insgesamt gesperrten IPs |
banned |
Gesperrte IPs, nach Jail gruppiert |
unban --ip <ipv4> |
Sucht die IP in allen Jails, fragt Unban IP '<ip>' from all jails? und entbannt sie überall, wo sie gesperrt ist |
Für unban muss die IP eine gültige IPv4-Adresse sein. Ist sie in keinem Jail gesperrt, endet der Befehl mit einem Fehler.
Logs
Alias: log.
server-tools logs webserver --domain example.com --lines 100
server-tools logs webserver-errors --domain example.com
server-tools logs mysql --lines 20
server-tools logs audit --filter "Created database"
server-tools logs search --pattern "timeout" --domain example.com
| Aktion | Quelle |
|---|---|
webserver (Alias apache) |
Zugriffslog des Webservers, mit --errors das Fehlerlog |
webserver-errors (Alias apache-errors) |
Fehlerlog des Webservers |
mysql |
ST_MYSQL_LOG_FILE |
audit |
ST_AUDIT_LOG, mit --filter nur passende Zeilen |
search |
Siehe unten |
Optionen:
--lines <n>begrenzt die Ausgabe, StandardST_LOG_LINES. Ein ungültiger Wert wird durch den Standard ersetzt.--domain <d>wählt die Logs einer Domain.
Welche Datei gelesen wird:
Ohne --domain |
Mit --domain |
|---|---|
<Log-Verzeichnis>/access.log bzw. error.log, das Verzeichnis ist ST_APACHE_LOG_DIR oder ST_NGINX_LOG_DIR je nach ST_WEBSERVER |
/var/www/<domain>/logs/access.log bzw. error.log, sonst <Log-Verzeichnis>/<domain>-access.log bzw. <domain>-error.log |
logs search durchsucht ohne --domain das globale Webserver-Fehlerlog, das MySQL-Log und das Audit-Log, mit --domain das Fehler- und das Zugriffslog der Domain. Das Muster ist ein regulärer Ausdruck ohne Beachtung der Groß- und Kleinschreibung. Je Datei erscheinen die letzten --lines Treffer. logs audit --filter arbeitet genauso.
Audit-Log
Jede ändernde Aktion schreibt eine Zeile nach ST_AUDIT_LOG (Rechte 600), sofern ST_AUDIT_LOGGING=true:
[2026-01-15 10:30:00] [INFO] user=root action=Created database: shop_db with user: shop_user
user ist der Wert von SUDO_USER, sonst der aktuelle User. Zeilenumbrüche in der Aktion werden entfernt. In der Praxis kommen die Stufen INFO und ERROR vor.
Status
server-tools status
Der Befehl braucht keine Optionen und funktioniert auch ohne Terminal (SSH-Aufruf, Cron). Er zeigt:
- Service Status: den Webserver-Service (
apache2odernginx),mysqlund allephp<Version>-fpm-Services der Versionen ausST_PHP_VERSIONS_TO_SCAN, die installiert sind. Mögliche Werte sindrunning,stopped,not installedundunknown (no systemd). - System Resources: Betriebssystem, Hostname, Load, Speicher (
free -h) und Datenträger (df -h). - Software Versions: Webserver, MySQL und die PHP-Versionen mit FPM-Socket.
- Configuration: die Ausgabe von
--config. - Backups: Inhalt von
ST_BACKUP_DIRund die Aufbewahrungsfrist.
Das Beispiel zeigt das Format des ersten Blocks, die Werte hängen vom Server ab:
=== Service Status ===
apache2 running
mysql running
php8.3-fpm running