InfraFenceInfraFence

Live Security Operations

Loslegen

Was der Installer macht

Jeder Schritt von install.sh von InfraFence, die reine Leseprüfung (Preflight) vor jeder Änderung und der Probelauf, der den Plan zeigt, ohne den Server anzutasten.

Zuletzt aktualisiert:

InfraFence ist für Produktionsserver gebaut: Der Installer prüft den Server nur lesend, bevor er etwas ändert, und lässt in Ruhe, was er nicht sicher ändern kann.

Die Schritte

  1. Token und root. Ohne --token auf einem noch nicht registrierten Server bricht er mit Install token is required ab; der Probelauf braucht kein Token. Er muss als root laufen.
  2. System. Nur Linux; er erkennt das Init-System (systemd, upstart oder sysvinit) und die Architektur (amd64 oder arm64).
  3. Zertifikate. Auf Systemen der RHEL-Familie oder wenn curl den Download nicht verifizieren kann, fügt er das Zertifikat ISRG Root X1 (Let's Encrypt) einem eigenen Bundle hinzu, /etc/infrafence/ca-bundle.pem, und auf Systemen der RHEL-Familie auch den Zertifikaten des Systems. Das Zertifikat steckt im Installer und wird nie heruntergeladen; wo openssl vorhanden ist, wird es zuerst gegen seinen festen SHA-256-Fingerabdruck geprüft.
  4. Abhängigkeiten. Fehlende curl, iptables oder ca-certificates werden mit apt-get, dnf oder yum installiert; auf rpm-Systemen wird iptables als iptables-nft installiert, wo es das Paket gibt, damit seine Regeln dasselbe Backend wie firewalld und nftables nutzen. Läuft gerade ein anderer Paketvorgang, wartet er bis zu 5 Minuten (Another package operation is running — waiting for it to finish...). Er führt nie von sich aus dpkg --configure -a aus und repariert keine kaputten Pakete.
  5. Download. Das Agent-Binary für die Architektur wird aus dem neuesten GitHub-Release geladen (github.com und release-assets.githubusercontent.com, die einzige Download-Quelle) und gegen seine veröffentlichte SHA-256-Prüfsumme geprüft. Die Prüfsumme ist Pflicht: Lässt sie sich nicht laden oder passt sie nicht, wird nichts installiert. --skip-checksum installiert ohne sie und ist unsicher.
  6. Leseprüfung. Er führt infrafence-agent preflight aus, bevor er irgendetwas installiert (siehe unten).
  7. ipset. Wird nur installiert, wenn es fehlt, nicht mit --no-ipset abgelehnt wurde und die Prüfung es für sicher hält: Ein Paketmanager ist verfügbar und kein Paketvorgang läuft.
  8. Installation. Das Binary kommt nach /usr/local/bin/infrafence-agent, der Dienst wird angelegt, aktiviert und gestartet.
  9. Registrierung. Der Agent registriert sich mit deinem Token und speichert sein eigenes Token in /etc/infrafence/config.json. Das Installationstoken wird nicht aufbewahrt.
  10. Startprüfung. Er prüft, ob der Dienst läuft, und gibt aus, wo die Logs zu lesen sind.

Download, Registrierung und Dienststart melden ihr Ergebnis an das Dashboard (nur mit den ersten Zeichen des Tokens), damit sich eine fehlgeschlagene Installation nachverfolgen lässt.

Die reine Leseprüfung (Preflight)

infrafence-agent preflight untersucht den Server und ändert nichts. Der Installer führt sie vor der Installation aus, der Agent bei jedem Start und danach einmal täglich, und du kannst sie jederzeit ausführen:

bash
sudo infrafence-agent preflight
sudo infrafence-agent preflight --json

Die Ausgabe beginnt mit InfraFence preflight (read-only — nothing was changed), dann folgt eine Zeile pro Befund mit seiner Stufe: ok, info, warn oder block. Ohne --json ist der Exit-Status 2, wenn ein Befund block ist, sonst 0.

Sie prüft:

  • Firewall: ob iptables installiert und nutzbar ist, und sein Backend; ob ipset vorhanden ist; andere Firewall-Manager und Sicherheitstools (ufw, firewalld, CSF, fail2ban, CrowdSec, netfilter-persistent, Docker, Kubernetes).
  • Webserver: nginx, Apache (apache2 oder httpd), Caddy und LiteSpeed.
  • Wer die Konfiguration verwaltet: Hosting-Panels und Konfigurationsmanagement-Tools (Ansible, Puppet, Chef, Salt). Ist eines vorhanden, ändert InfraFence die Webserver-Konfiguration nie.
  • Pakete: den Paketmanager und laufende Paketvorgänge.
  • Ressourcen: freien Speicherplatz auf / (Warnung unter 200 MB), verfügbaren Arbeitsspeicher (Warnung unter 128 MB), den SELinux-Modus.

Das Ergebnis erreicht auch das Dashboard: Der Tab Host des Servers zeigt es unter Kompatibilität des Servers.

Der Probelauf

bash
curl -fsSL https://github.com/infrafence/infrafence-agent/releases/latest/download/install.sh | sudo bash -s -- --dry-run

Er braucht kein Token und ändert auch auf Systemen der RHEL-Familie nichts: Der Schritt mit den Zertifikaten gilt nur für diesen Lauf. Er lädt den Agenten herunter, führt die reine Leseprüfung aus und gibt Dry run — nothing was installed or changed. aus, gefolgt von dem, was ein echter Lauf tun würde: Binary und Dienst installieren, ipset installieren oder nicht, die Firewall-Ketten INFRAFENCE anlegen (angesprungen aus INPUT und, wenn Docker vorhanden ist, aus DOCKER-USER) und registrieren. Änderungen an der Webserver-Konfiguration und das Blockieren eingehenden Verkehrs von Bedrohungslisten bleiben aus, bis du sie im Dashboard einschaltest.

Was er nie tut

  • Er ändert nie deine bestehenden Firewall-Regeln: Alles liegt in den eigenen Ketten des Agenten.
  • Er schließt nie halbfertige Konfigurationen anderer Pakete ab (dpkg --configure -a), was Dienste neu starten könnte.
  • Er ändert nie eine Konfiguration, die einem Hosting-Panel, LiteSpeed oder einem Konfigurationsmanagement-Tool gehört.