ROAMSWITCH SERVER 1.1.0+ · Zuletzt aktualisiert: 2026-09-18

RoamSwitch Server Edition-Bedienungsanleitung

Offizielle Installations-, Bereitstellungs- und Betriebsreferenz für Cloud VPS (AWS, GCP, Azure, Linode, DigitalOcean), Bare-Metal-Rechenzentren und Container-Hosts.

1. Übersicht und Anforderungen

RoamSwitch Server Edition ist eine headless (keine GUI-Abhängigkeiten) autonome Verteidigungs- und Integritätsüberwachungssuite, die für Linux-Server entwickelt wurde, die dem öffentlichen Internet ausgesetzt sind.

Im Gegensatz zur Client-Edition, die Profile basierend auf dem Wi-Fi-Status dynamisch wechselt, erzwingt die Server-Edition Inbound Default Drop, Critical Path File Integrity Monitoring (FIM), präventive Kernel-LPE-Abwehr (Frag Gap), eBPF-Laufzeit-Bedrohungserkennung, SSH-Sperrschutz und automatisierte Mehrkanal-Notfallwarnungen (Telegram/LINE/Webhook).

Null-Telemetrie-Architektur
RoamSwitch überträgt keine Diagnosetelemetrie, Host-IP-Metadaten, Datei-Hashes oder Systemprotokolle an externe Server. Externe Netzwerkbibliotheken sind in der Daemon-Binärdatei nicht enthalten, wodurch vollständige Vertraulichkeit vor Ort gewährleistet ist.

Systemanforderungen

2. Installationsverfahren

Die Verwendung der offiziell signierten Repositorys gewährleistet eine automatische Abhängigkeitsauflösung und nahtlose Aktualisierungen über Ihren Standard-Systempaketmanager.

2.1 APT (Ubuntu/Debian/Raspberry Pi OS)

# 1. Repository-Signaturschlüssel registrieren
curl -fsSL https://lafine.net/apt/roamswitch-archive-keyring.asc \
  | sudo gpg --dearmor -o /usr/share/keyrings/roamswitch-archive-keyring.gpg

# 2. Repository hinzufügen
echo "deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/roamswitch-archive-keyring.gpg] https://lafine.net/apt stable main" \
  | sudo tee /etc/apt/sources.list.d/roamswitch.list

# 3. Installieren
sudo apt update && sudo apt install roamswitch-server

2.2 DNF/RPM (Fedora/RHEL/AlmaLinux/Rocky Linux)

# 1. GPG-Schlüssel importieren
sudo rpm --import https://lafine.net/rpm/RPM-GPG-KEY-roamswitch

# 2. Repository-Konfigurationsdatei hinzufügen
sudo curl -fsSL -o /etc/yum.repos.d/roamswitch.repo https://lafine.net/rpm/fedora/roamswitch.repo

# 3. Installieren
sudo dnf install roamswitch-server

2.3 openSUSE (zypper)

sudo rpm --import https://lafine.net/rpm/RPM-GPG-KEY-roamswitch
sudo zypper addrepo https://lafine.net/rpm/opensuse/roamswitch.repo
sudo zypper refresh && sudo zypper install roamswitch-server
Paket gegenseitiger Ausschluss (Konflikte)
Die Client Edition (roamswitch) und die Server Edition (roamswitch-server) deklarieren gegenseitige Paketkonflikte. Wählen Sie in Headless-Serverumgebungen immer roamswitch-server aus.

3. Ersteinrichtung und Serviceüberprüfung

3.1 Servicestatus

Nach der Installation startet roamswitch-server.service sofort und wird beim Systemstart aktiviert.

sudo systemctl status roamswitch-server.service

3.2 Interaktiver Setup-Assistent

Starten Sie mit dem folgenden Befehl den interaktiven Einrichtungsassistenten, um Ports, Wartungs-Quell-IPs, Benachrichtigungskanäle und die Eindämmungsaktion interaktiv zu konfigurieren (Enter übernimmt jeweils den Standardwert).

sudo roamswitch server setup
  1. Ports: Geben Sie die SSH-Wartungsports (Standard 22) und die öffentlichen Dienstports (Standard 80,443) jeweils durch Kommas getrennt ein.
  2. Wartungs-Quell-IPs: Geben Sie SSH-Bastion-/Überwachungs-IPs oder CIDRs an (z. B. 203.0.113.50/32); leer lassen, um SSH von jeder IP aus zuzulassen.
  3. Benachrichtigungskanäle: Aktivieren Sie jeweils Telegram-Bot, LINE Messaging API und/oder einen generischen Webhook (Slack / Discord / Teams).
  4. Reaktion auf ein kritisches eBPF-Ereignis: Wählen Sie isolate (Host isolieren), freeze (Prozess einfrieren) oder alert_only (nur benachrichtigen). Nach dem Speichern werden Sie aufgefordert, eine Testbenachrichtigung zu senden und den Dienst neu zu starten.
  5. Automatische Updates der Kernel-CVE-Daten (Standard n): Wählen Sie, ob die vom Container-Isolations-Audit verwendete Kernel-CVE-Datenbank einmal täglich anonym von lafine.net abgerufen werden soll (kein Query-String, keine Cookies, keine identifizierenden Header). Bleibt dies deaktiviert, läuft das Audit weiterhin gegen die eingebettete Baseline. Dies ist die einzige Ausnahme von der Zero-Network-Code-Richtlinie der Server Edition und ist standardmäßig deaktiviert (Opt-in).
  6. File-Scan-Guard-Einstellungen: legen Sie fest, ob die Virenprüfung für Mail-Relays, freigegebene Ordner und Upload-Ziele (§13) aktiviert werden soll, und legen Sie die Zielverzeichnisse fest. Optional, standardmäßig deaktiviert.
  7. Resource-Guard-Einstellungen: aktivieren Sie die Ressourcenerschöpfungs-Erkennung, die anhaltendes RSS-Wachstum (Speicherlecks/DoS) oder Absturzschleifen in netzwerkexponierten Diensten erkennt.
  8. Übersicht der dauerhaft aktiven Kernschutzfunktionen: zeigt die Kernabwehrmechanismen an, die unabhängig vom Assistenten stets aktiv sind — eingehendes Default-Drop, FIM, eBPF-Integration usw. (keine Eingabe erforderlich).
  9. Einstellungen für die Übergabe an einen Untersuchungsagenten (investigation): legen Sie fest, ob die Erstuntersuchung — bei kritischen eBPF-Ereignissen oder bei Erkennung von Manipulationen an Critical-Path-FIM/Abhängigkeits-Lockfiles, sofern jeweils nur eine Benachrichtigung ausgelöst wurde — automatisch an eine externe KI-Agenten-CLI (Claude Code / agy / Codex CLI / OpenCode oder einen benutzerdefinierten Befehl) delegiert werden soll (§10.1). Standardmäßig deaktiviert.
Hinweis zur Telegram-Chat-ID
Die Chat-ID einer Supergruppe ist eine negative Zahl, die mit -100 beginnt (z. B. -1001234567890). Den korrekten Wert finden Sie im Feld "chat":{"id":...} der Antwort von curl -s "https://api.telegram.org/bot<token>/getUpdates".

3.3 30-Punkte-Server-Sicherheitsaudit

sudo roamswitch status --server

Führt eine sofortige 30-Prüfung der Firewall-Regeln, der Frag Gap-Abschwächung, der Yama LSM-Einschränkungen, Berechtigungen und der Docker-Port-Offenlegung durch und ergibt eine Sicherheitsbewertung und -note von 0–100 (S bis C).

4. Firewall- und Portregeln

Die Konfigurationsdatei /etc/roamswitch/server.conf unterliegt aus Gründen des Schutzes vertraulicher Informationen zwingend den Berechtigungen 0600 (nur root kann lesen/schreiben). Das Format ist flaches key=value; Abschnittsüberschriften wie [network] werden ignoriert.

# --- Firewall ---
ssh_ports=22                     # SSH-Verwaltungsport (bleibt auch bei Notfall-Isolation erhalten)
allowed_ports=80,443             # Öffentliche Dienstports
whitelist_ips=203.0.113.10/32    # Wartungs-Quell-IP / CIDR (leer = alle erlaubt, früher admin_source_ips)
protect_docker_ports=true        # DOCKER-USER-Schutz (verhindert, dass Container die Firewall umgehen)
preserve_ssh_on_isolation=true   # SSH-Verwaltungspfad auch bei Notfall-Isolation erhalten (false = vollständige Sperre)

# --- eBPF-Laufzeitschutz ---
action_on_critical=isolate       # isolate | freeze (SIGSTOP+Netzwerksperre) | alert_only
ebpf_socket_path=/run/roamswitch/events.sock

# --- Egress-/C2-Blockierung & DNS-Sinkhole ---
egress_ip_blocklist_enabled=true # Standard true. Harmlos, solange kein Feed befüllt ist (blockiert nichts)
dns_sinkhole_enabled=false       # Standard false (um internes DNS/Split-Horizon-Setups nicht zu stören)
dns_sinkhole_provider=quad9      # quad9 | cloudflare | adguard | cleanbrowsing

# --- Container-Isolations-CVE-Daten (Opt-in) ---
cve_kernel_map_updates_enabled=false # Standard false. Die einzige Ausnahme für externe Kommunikation (einmal täglich, anonym)

# --- Benachrichtigungen ---
telegram_enabled=false
telegram_bot_token=
telegram_chat_id=
line_enabled=false
webhook_enabled=false
webhook_url=

# --- System ---
language=ja
fim_check_interval_secs=300      # Früher scan_interval genannt

Wenn Sie die Konfiguration direkt bearbeitet haben, starten Sie den Dienst neu, damit die Änderungen wirksam werden (roamswitch-server unterstützt kein Reload):

sudo roamswitch server restart

4.1 Richtlinien nach Schweregrad (guard.yaml, optional)

Wenn action_on_critical allein nicht granular genug ist, erstellen Sie /etc/roamswitch/guard.yaml (eine Vorlage liegt unter /etc/roamswitch/guard.yaml.example bei). Ist die Datei nicht vorhanden, wird automatisch eine gleichwertige Richtlinie aus dem action_on_critical-Wert von server.conf synthetisiert, sodass bestehende Installationen unverändert funktionieren.

policies:
  on_warning:
    action: log_and_notify
  on_critical:
    server_action: isolate_process
    kill_process: true
    fallback_to_host_isolation_after_retries: 3   # Eskaliert automatisch zur Host-Isolation, wenn derselbe Prozess erneut auftritt
  on_emergency:
    action: isolate_host_all
    kill_process: true

server_safeguards:
  maintenance_ssh_ports: [22]
  safety_timer_secs: 300   # Stellt nach der Host-Isolation automatisch wieder her, wenn innerhalb dieser Sekunden kein ack eintrifft (0 deaktiviert dies)

Sicherheitstimer: Sobald eine Host-Isolation (Air-Gap) auslöst, untersucht der Administrator die Ursache und bestätigt sie anschließend mit dem folgenden Befehl. Erfolgt innerhalb von safety_timer_secs keine Bestätigung, stellt RoamSwitch den Netzwerkzugriff automatisch wieder her, damit ein Fehlalarm den Server nicht dauerhaft vom Netz trennt.

sudo roamswitch server ack

4.2 Egress-/C2-Blockierung und DNS-Sinkhole

Bei egress_ip_blocklist_enabled=true (Standard) werden ausgehende Verbindungen zu bekannt bösartigen IPs über nftables blockiert. Zuerst wird der Feed unter /var/lib/roamswitch/threatfeed/malicious_ips.txt (verwaltet vom Update-Mechanismus) verwendet, mit Rückfall auf die leere, im Paket enthaltene Seed-Datei (/usr/share/roamswitch/threatfeed/) — solange kein Feed befüllt ist, blockiert der Standardwert true also nichts.

Wird dns_sinkhole_enabled=true gesetzt, erzwingt dies die Auflösung über einen filternden DNS-Resolver (Quad9 / Cloudflare / AdGuard / CleanBrowsing) und blockiert die Auflösung bekannt bösartiger Domains. Der Standardwert ist false, da dies internes DNS oder Split-Horizon-Setups beeinträchtigen kann.

4.3 Eingangsportscan-Erkennung

Erkennt Quell-IPs, die in kurzer Zeit viele verschiedene Ports kontaktiert haben, durch Abgleich von nftables-Log-Regeln mit journald (standardmäßig aktiviert). Scan-Quellen mit hoher Konfidenz können für eine festgelegte Dauer automatisch blockiert werden. Bei gemeinsamer Nutzung mit RoamSwitch Sensor (eine andere Funktion als §10.1 — Voll-Port-Prüfungs-Probes eines gepaarten Sensors werden zur Fehlalarmvermeidung ausgeschlossen) wird die eigene IP des Sensors automatisch ausgeschlossen.

# --- Eingangsportscan-Erkennung (standardmäßig aktiviert) ---
port_scan_detect_enabled=true              # false zum Deaktivieren
port_scan_detect_min_distinct_ports=15     # Wird als Scan gewertet, wenn Verbindungen mindestens so viele verschiedene Ports erreichen
port_scan_detect_window_secs=300           # Aggregationsfenster für die Erkennung (Sekunden)
port_scan_block_enabled=true               # Blockiert die erkannte Scan-Quell-IP automatisch
port_scan_block_duration_secs=600          # Dauer der automatischen Blockierung (Sekunden)

Den Erkennungsverlauf können Sie mit dem Befehl roamswitch port-scan einsehen.

5. Ausfallsichere SSH-Sperrverhinderung

Eine versehentliche Sperrung aufgrund einer Fehlkonfiguration der Firewall ist eine untragbare Betriebskatastrophe. RoamSwitch Server Edition umfasst mehrstufige Schutzmaßnahmen:

6. Containerschutz (Docker / Podman)

Das Standardverhalten von Docker erstellt benutzerdefinierte iptables-Regeln, die Standard-Host-Firewalls umgehen und Container-Ports (z. B. -p 8080:8080) direkt dem Internet zugänglich machen.

Wenn protect_docker_ports=true (Standard) gesetzt ist, fügt RoamSwitch am Anfang der DOCKER-USER-Kette Prüfregeln ein, sodass auch containergebundener Datenverkehr den Richtlinien für allowed_ports und whitelist_ips unterliegt. Dies verhindert zuverlässig die versehentliche Offenlegung von z. B. Entwicklungsdatenbank-Containern.

Zusätzlich überwacht ein Echtzeit-Wächter docker events und benachrichtigt Sie in dem Moment, in dem ein Container mit --privileged startet oder ein /var/run/docker.sock-Bind-Mount verwendet wird – ein Risiko für einen Container-Ausbruch. Keine Konfiguration nötig, immer aktiv, und nur benachrichtigend (keine automatische Blockierung).

7. Integritätsüberwachung kritischer Pfaddateien (FIM)

Überwacht über 150 wichtige Binärdateien (/bin/login, /usr/bin/sudo, /usr/sbin/sshd), Authentifizierungskonfigurationen (/etc/shadow, /etc/pam.d/) und Systemd-Einheiten mithilfe von SHA-256-Hashes.

7.1 Manuelle Hash-Verifizierung

sudo roamswitch fim verify

7.2 Ereignisgesteuerte Erkennung (sofort)

Überwachte Dateien werden einzeln über fanotify (FAN_CLASS_NOTIF, Ereignisse bei abgeschlossenem Schreibvorgang) beobachtet, sodass eine Manipulation sofort erneut gehasht und erkannt wird, statt auf den nächsten periodischen Scan zu warten. Der periodische Scan (Standard fim_check_interval_secs=300 Sekunden) bleibt als Rückfallebene für eventuell verpasste Ereignisse bestehen.

7.3 Automatische Baseline-Synchronisierung bei Betriebssystem-Updates

Unter Debian/Ubuntu konfiguriert die Paketinstallation automatisch den DPkg::Post-Invoke-Hook unter /etc/apt/apt.conf.d/99roamswitch-fim. Unter Fedora/RHEL/Rocky/AlmaLinux/openSUSE übernimmt eine systemd.path-Einheit (roamswitch-fim-update.path), die /var/lib/rpm überwacht, dieselbe Rolle.

Unter Debian/Ubuntu hängt /etc/apt/apt.conf.d/99roamswitch-fim einen DPkg::Post-Invoke-Hook an. Legitime Paketaktualisierungen über sudo apt upgrade aktualisieren automatisch die FIM-Baseline und verhindern so falsch-positive Warnungen.

sudo roamswitch fim update

8. eBPF Runtime Guard und Falco-Integration

Bindet sich in Kernel-Space-eBPF-Ereignisse (Falco/Tetragon) ein, um Frag Gap Kernel-Privilegieneskalation, Container-Escapes und nicht autorisierte Reverse-Shells zu erkennen.

8.1 Anti-Bloat-Architektur

Herkömmliche Sicherheitsagenten leiden unter schwerer Syslog-Explosion und Festplattenverschleiß. RoamSwitch stellt über einen dedizierten UNIX-Domänen-Socket (/run/roamswitch/events.sock) eine direkte Verbindung zu Falco her:

8.2 Autonome Eindämmung

Beim Erkennen eines kritischen Angriffs gibt RoamSwitch sofort SIGSTOP aus, um die PID des störenden Prozesses einzufrieren, und wendet die nftables Air-Gap-Isolation an.

9. Notfallwarnungen (Telegram / LINE / Webhook)

Sendet sofortige Warnungen an externe Benachrichtigungskanäle, wenn Portanomalien, FIM-Manipulationen oder eBPF-Eindämmungsereignisse auftreten:

[notifications]
language = ja
# Telegram: Bot-Token und Chat-ID
telegram_bot_token = "123456789:ABCdefGHIjklMNOpqrSTUvwxYZ"
telegram_chat_id = "-1001234567890"

# LINE: Messaging-API-Kanalzugriffstoken und Benutzer-ID
line_channel_access_token = "YOUR_LINE_ACCESS_TOKEN"
line_user_id = "U1234567890abcdef1234567890abcdef"

# Generischer Webhook (Slack, Discord, Teams, eigene Monitoring-Plattform)
webhook_url = "https://hooks.slack.com/services/T00/B00/XXXXX"

Auch ohne konfigurierte externe Kanäle wird jeder gesendete Alarm zusätzlich lokal für die letzten 7 Tage aufbewahrt. Prüfen Sie ihn mit roamswitch notifications.

10. KI-Agent / MCP-Integration (Modellkontextprotokoll)

Die RoamSwitch Server Edition enthält roamswitch-mcp und ermöglicht es KI-Agenten (Claude, Gemini, Cursor), den Zustand und die Lage der Infrastruktur zu überwachen.

Nur-Lese-Sicherheitsgarantie
Um zu verhindern, dass Prompt-Injection-Angriffe die Infrastruktur gefährden, ist die MCP-Schnittstelle ausschließlich schreibgeschützt. KI-Agenten können über MCP keine Ports öffnen, die Isolation aufheben oder Sicherheitskonfigurationen ändern. Für die Behebung ist ein authentifizierter lokaler TTY-Shell-Zugriff erforderlich.

Konfigurationsbeispiel („claude_desktop_config.json“)

{
  "mcpServers": {
    "roamswitch": {
      "command": "/usr/bin/roamswitch-mcp",
      "args": []
    }
  }
}

10.1 Übergabe an einen Untersuchungsagenten (investigation — Delegation der automatisierten Erstuntersuchung an einen KI-Agenten)

Während roamswitch-mcp aus §10 Abfragen des KI-Clients eines Menschen bedient, ist die investigation-Übergabe ein separater Mechanismus, bei dem der Daemon selbst, ausgelöst durch ein Erkennungsereignis, autonom eine externe KI-Agenten-CLI startet. Zielereignisse sind kritische eBPF-Ereignisse, die als reine Benachrichtigung eingestuft wurden (keine automatische Isolierung oder Prozesseinfrierung ausgelöst haben), sowie Manipulationserkennungen bei Critical-Path-FIM und Abhängigkeits-Lockfiles. Bei Aktivierung erstellt der Daemon zunächst einen lokalen, heuristikbasierten Erst-Triage-Bericht (Wahrscheinlichkeit eines Fehlalarms, Begründung, vorgeschlagene nächste Schritte) und startet dann die konfigurierte KI-Agenten-CLI als Subprozess mit diesem Bericht, um weitere Untersuchung und Zusammenfassung zu delegieren. Standardmäßig deaktiviert.

# An /etc/roamswitch/guard.yaml anhängen (eine von server.conf getrennte Datei)
investigation:
  enabled: true
  command: "claude"                 # "claude" | "agy" | "codex" | "opencode" | ein beliebiger benutzerdefinierter Befehl
  args: ["-p"]                      # Der Prompt wird automatisch als letztes Argument angehängt
  timeout_secs: 180

Dieselben Einstellungen können auch über den interaktiven Assistenten von sudo roamswitch server setup (§3.2, letzter Schritt) konfiguriert werden. Wählen Sie aus Voreinstellungen für Claude Code (claude -p), agy (agy -p --dangerously-skip-permissions), Codex CLI (codex exec), OpenCode (opencode run) oder einen benutzerdefinierten Befehl. Bei einer erneuten Ausführung wird die passende Voreinstellung anhand der gespeicherten Konfiguration automatisch ausgewählt.

Hinweis zu Prompt Injection
Die investigation-Übergabe leitet Details des Erkennungsereignisses — Prozessnamen, Dateipfade und andere Zeichenketten, die ein Angreifer teilweise kontrollieren könnte — als Teil des an den KI-Agenten gesendeten Prompts weiter. Die Konfiguration des Tools in einem Modus, der Berechtigungsprüfungen überspringt, wie --dangerously-skip-permissions, erhöht das Risiko, dass böswillige Eingaben den Agenten zu unbeabsichtigten Aktionen veranlassen. Der Assistent zeigt diese Warnung an, wenn agy ausgewählt wird. In Umgebungen mit nicht vertrauenswürdigem Log-Eingabepfad empfehlen wir eine Tool-Konfiguration, die Berechtigungsprüfungen nicht überspringt.

Die investigation-Übergabe wird niemals aufgerufen, während das Netzwerk getrennt ist (z. B. während eines aktiven Air-Gap oder eines Zustands, der isolate_host_all entspricht).

11. CLI-Befehls-Spickzettel

Befehl Privilegien Beschreibung
sudo roamswitch status --server root Zeigen Sie den 30-Punkte-Serverstatus-Score an und überprüfen Sie die Aufschlüsselung
sudo roamswitch ports root Überwachen Sie offene Überwachungsports und gebundene Prozesse
sudo roamswitch fim verify root Überprüfen Sie die SHA-256-Integrität kritischer Pfadsystemdateien
roamswitch notifications Benutzer Zeigt den Benachrichtigungsverlauf (alle gesendeten Alarme) der letzten 7 Tage
sudo roamswitch server setup root Starten Sie den interaktiven Erstkonfigurationsassistenten
sudo roamswitch fim update root Aktualisieren Sie die FIM SHA-256-Basisdatenbank
sudo roamswitch server config set <key> <value> root Ändert und speichert einen einzelnen Konfigurationsschlüssel (Liste siehe §4)
sudo roamswitch airgap enable / disable root Manuelles Auslösen / Aufheben der Air-Gap-Notabschaltung
sudo roamswitch emergency-restore Wurzel Hebt die gesamte eBPF-/Firewall-Isolation auf und stellt die ursprüngliche Baseline wieder her
roamswitch port-scan Benutzer Zeigt den Erkennungsverlauf der Eingangsportscan-Erkennung (§4.3) (Quell-IP, ob automatisch blockiert und Blockierdauer)
roamswitch sensor [key|list|pair|unpair|request-audit|results] Benutzer/root Pairing mit gegenseitigem Vertrauen per Pairing-Code mit RoamSwitch Sensor. pair --addr <ip> --code <code> zum Pairen, request-audit fordert ein aktives Schwachstellen-Audit an (Ergebnis mit results abrufen). Erfordert sensor_pairing_enabled: true (standardmäßig aus). Details siehe Sensor-Betriebshandbuch

12. Fehlerbehebung und FAQ

Q1. Wird RoamSwitch meine SSH-Sitzung unerwartet trennen?

Nein. RoamSwitch lässt bestehende ESTABLISHED/RELATED-Verbindungszustände sowie ssh_ports (Standard 22) bedingungslos zu. Selbst bei einer durch einen schweren Angriff ausgelösten Air-Gap-Notisolation bleibt Ihre administrative Sitzung dank preserve_ssh_on_isolation=true (Standard) erhalten.

Q2. Wie erhalte ich wieder Zugriff, wenn ich versehentlich ausgesperrt wurde?

Melden Sie sich über die Web-Verwaltungskonsole Ihres Cloud-Anbieters (VNC / serielle Konsole) an und führen Sie sudo roamswitch emergency-restore aus, um die Notisolation aufzuheben, oder sudo systemctl stop roamswitch-server, um den Dienst zu stoppen.

Q3. Wie mache ich Ports für neu hinzugefügte Webdienste (z. B. Nginx) verfügbar?

Führen Sie sudo roamswitch server config set allowed_ports 80,443,3000 aus (oder bearbeiten Sie /etc/roamswitch/server.conf direkt) und starten Sie anschließend sudo roamswitch server restart.

13. File Scan Guard (Schutz von Mail-Relays, Freigabeordnern und Upload-Endpunkten)

Eine optionale Funktion, die nur relevant ist, wenn dieser Host ein Verzeichnis besitzt, in dem Dateien für andere gespeichert werden – ein Mail-Relay, eine Samba/NFS-Freigabe, ein Datei-Upload-Endpunkt. Die integrierte YARA-Engine scannt clamav_scan_dirs stets ohne externe Abhängigkeit; mit clamav_enabled=true wird ClamAV als Zweitmeinung hinzugefügt. Bestätigte Bedrohungen werden automatisch nach /var/lib/roamswitch/quarantine verschoben, und der Betreiber wird benachrichtigt.

# --- File Scan Guard (ClamAV, Opt-in) ---
# Die integrierte YARA-Engine scannt clamav_scan_dirs stets bedingungslos.
clamav_enabled=false             # true aktiviert die zusätzliche Prüfung über clamdscan
clamav_scan_dirs=                # Absolute Pfade zum Scannen (kommagetrennt)
clamav_scan_interval_secs=86400  # Scan-Intervall (Sekunden, mindestens 3600)
clamav_freshclam_interval_secs=7200  # Automatisches Update-Intervall der Signaturdatenbank (Sekunden, mindestens 1800)

Auch über den interaktiven Assistenten sudo roamswitch server setup konfigurierbar; Konfiguration und Quarantänestatus lassen sich über das MCP-Tool get_file_scan_guard_status prüfen.

14. Log Audit (Erkennung und Benachrichtigung bei Protokollmuster-Anomalien)

Ein periodischer journalctl-Scan wandelt Protokollmeldungen in Vorlagen um, um neue Muster (bisher nicht gesehene Protokollformen) und Häufigkeitsanomalien (eine statistische Spitze, Z-Score > 3,0) zu erkennen. Da kein zusätzlicher Daemon oder externe Abhängigkeit nötig ist, handelt es sich um einen leichtgewichtigen Mechanismus, der standardmäßig aktiviert ist. Erkennungen werden über dieselben Benachrichtigungskanäle wie File Scan Guard und FIM gesendet (Telegram / LINE / Webhook). Etwaige API-Schlüssel oder Token, die in einer Protokollzeile auftauchen könnten, werden automatisch maskiert, bevor sie in die Benachrichtigung aufgenommen werden.

# --- Log Audit (standardmäßig aktiviert) ---
log_audit_enabled=true           # false zum Deaktivieren
log_audit_interval_secs=1800     # Scan-Intervall in Sekunden (Minimum 300)

Kann auch über den interaktiven Assistenten sudo roamswitch server setup konfiguriert werden; die neuesten Erkennungsergebnisse lassen sich über den CLI-Befehl roamswitch audit-logs oder das MCP-Tool audit_security_logs abrufen.

← Server-Edition-Whitepaper Zur Linux-Installationsseite →