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
- Token und root. Ohne
--tokenauf einem noch nicht registrierten Server bricht er mitInstall token is requiredab; der Probelauf braucht kein Token. Er muss als root laufen. - System. Nur Linux; er erkennt das Init-System (systemd, upstart oder sysvinit) und die Architektur (
amd64oderarm64). - Zertifikate. Auf Systemen der RHEL-Familie oder wenn
curlden 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; woopensslvorhanden ist, wird es zuerst gegen seinen festen SHA-256-Fingerabdruck geprüft. - Abhängigkeiten. Fehlende
curl,iptablesoderca-certificateswerden mitapt-get,dnfoderyuminstalliert; auf rpm-Systemen wirdiptablesalsiptables-nftinstalliert, 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 ausdpkg --configure -aaus und repariert keine kaputten Pakete. - Download. Das Agent-Binary für die Architektur wird aus dem neuesten GitHub-Release geladen (
github.comundrelease-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-checksuminstalliert ohne sie und ist unsicher. - Leseprüfung. Er führt
infrafence-agent preflightaus, bevor er irgendetwas installiert (siehe unten). - ipset. Wird nur installiert, wenn es fehlt, nicht mit
--no-ipsetabgelehnt wurde und die Prüfung es für sicher hält: Ein Paketmanager ist verfügbar und kein Paketvorgang läuft. - Installation. Das Binary kommt nach
/usr/local/bin/infrafence-agent, der Dienst wird angelegt, aktiviert und gestartet. - Registrierung. Der Agent registriert sich mit deinem Token und speichert sein eigenes Token in
/etc/infrafence/config.json. Das Installationstoken wird nicht aufbewahrt. - 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:
sudo infrafence-agent preflight
sudo infrafence-agent preflight --jsonDie 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
iptablesinstalliert und nutzbar ist, und sein Backend; obipsetvorhanden ist; andere Firewall-Manager und Sicherheitstools (ufw, firewalld, CSF, fail2ban, CrowdSec, netfilter-persistent, Docker, Kubernetes). - Webserver: nginx, Apache (
apache2oderhttpd), 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
curl -fsSL https://github.com/infrafence/infrafence-agent/releases/latest/download/install.sh | sudo bash -s -- --dry-runEr 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.
