Dokumentation / Monitoring und Sicherheit
Übersicht
Sicherheitsbewertungen für deine Odoo-Dienste, Fail2ban auf deinen Servern und eine Security-Seite, die zeigt, woher Angriffe kommen.
calmo.cloud prüft jeden Live- und Testdienst einmal am Tag auf die häufigsten Sicherheitsprobleme im Produktivbetrieb und bewertet das Ergebnis mit einer Note von A bis F. Auf Servern kann Fail2ban laufen, das Brute-Force-Logins blockiert, und die Seite Security zeigt, woher diese Versuche kommen.
Was geprüft wird #
Security Insights führt einen festen Katalog von Black-Box-Prüfungen gegen den Plattform-Hostname jedes Odoo-Dienstes und gegen die Adresse seines Servers aus. In deinem Odoo wird nichts installiert. Die Prüfungen decken ab:
- Logins und Daten: Funktioniert der Standard-Login
admin / adminnoch? Ist ein privater Anhang ohne Login erreichbar? - Offene Endpunkte: Sind der Datenbank-Manager, die Datenbankliste oder
/website/infoaus dem Internet erreichbar? Zeigen Fehlerseiten Python-Tracebacks? - Transportsicherheit: Wird HTTP auf HTTPS umgeleitet? Ist das Zertifikat gültig und stark? Werden TLS 1.0, TLS 1.1 und schwache Cipher abgelehnt? Sind HSTS und die übrigen Sicherheits-Header gesetzt?
- Offene Ports: Antworten PostgreSQL, die eigenen Ports von Odoo, das Traefik-Dashboard oder die Docker-API aus dem Internet?
- Serverschutz: Ist Fail2ban auf dem Server aktiv? Wird die Odoo-Version noch unterstützt?
Dienste auf calmo.cloud bekommen die Sicherheits-Header und die Sperren für den Datenbank-Manager und /website/info von ihrem Proxy. Die meisten Prüfungen bestehen deshalb, ohne dass du etwas tun musst. Die vollständige Liste findest du unter Sicherheitsprüfungen.
Punkte und Note #
Jeder Dienst startet mit 100 Punkten. Jede fehlgeschlagene Prüfung zieht ihre Punkte ab, und die Note richtet sich allein nach der Punktzahl:
| Note | Punkte |
|---|---|
| A | 95–100 |
| B | 80–94 |
| C | 65–79 |
| D | 50–64 |
| E | 35–49 |
| F | unter 35 |
Ein kritischer Befund zieht 40 Punkte ab, ein einziger reicht also für ein D. Ein erfolgreicher Login mit admin / admin zieht alle 100 ab. Prüfungen, die sich nicht verifizieren ließen, etwa weil der Datenbankname unbekannt ist, ziehen nichts ab und markieren das Ergebnis als unvollständig. Ist die Login-Seite selbst nicht erreichbar, bekommt der Dienst keine Note, bis sie es wieder ist.
Schweregrade #
Der Schweregrad einer Prüfung ergibt sich aus ihren Punkten:
| Schweregrad | Bedeutung |
|---|---|
| Critical | Ein unmittelbares, ausnutzbares Risiko, zum Beispiel ein offener Datenbank-Port oder ein funktionierendes Standardpasswort. So schnell wie möglich beheben. |
| Warning | Eine Härtungsempfehlung. Sie erlaubt keine direkte Kompromittierung, schwächt aber die mehrschichtige Verteidigung. |
| Info | Nur zur Information und ohne Punkte, zum Beispiel die Bestätigung, dass die Login-Seite erreichbar ist. |
Wie die Prüfungen laufen #
- Die Prüfungen laufen täglich für jeden laufenden Live- und Testdienst. Demosysteme, Kopien, Vorschau-Deployments und Agent-Kopien von Coding-Agents werden nicht geprüft und bekommen keine Bewertung. Login-Versuche auf Demosystemen zählen trotzdem für Fail2ban-Sperren.
- Klicke im Tab Security eines Dienstes auf Run checks now, um den Katalog jederzeit auszuführen. Die Prüfungen laufen im Hintergrund, und der Tab zeigt die Ergebnisse nach ein bis zwei Minuten.
- Eine Prüfung, die sich nicht verifizieren lässt, überschreibt keinen Fehler, der zuvor bestätigt wurde.
Der Security-Tab #
Der Tab Security eines Odoo-Dienstes zeigt:
- die Note, die Punktzahl von 100 und den Zeitpunkt der letzten Prüfung
- Zähler für Prüfungen, die Aufmerksamkeit brauchen (fehlgeschlagen), geprüft werden müssen (nicht verifiziert oder übersprungen), bestanden haben und nicht gelaufen sind
- jede Prüfung mit ihrem Ergebnis, den abgezogenen Punkten und der Anleitung zur Behebung; Check details zeigt, was beobachtet wurde, etwa die Zertifikatsnote oder die erkannte Odoo-Version
Fehlgeschlagene Prüfungen stehen oben, kritische vor Warnungen. Ein Badge am Tab Security zeigt, wie viele Prüfungen fehlschlagen, eingefärbt nach der schlimmsten davon. Mit Refresh oder dem Schalter Live refresh aktualisierst du die Seite, während du an einer Lösung arbeitest.
Dashboard #
Das Widget Security Status im Dashboard fasst dein Team zusammen:
- Rated A: wie viele deiner geprüften Odoos die beste Note haben
- Needs attention: Odoos mit der Note D oder schlechter
- Protected servers: Server mit aktiviertem Fail2ban
- Bans (24h): IP-Adressen, die in den letzten 24 Stunden gesperrt wurden, mit der Zahl der fehlgeschlagenen Logins
Es zählen nur deine eigenen Odoos. Odoos, die ein anderes Team mit dir teilt, werden im Dashboard dieses Teams bewertet.
Fail2ban #
Fail2ban überwacht die SSH- und Odoo-Logins auf einem Server und sperrt IP-Adressen, die zu oft scheitern:
| Jail | Sperre nach | Sperrdauer |
|---|---|---|
| SSH | 5 fehlgeschlagenen Logins innerhalb von 10 Minuten | 1 Stunde |
| Odoo login | 10 fehlgeschlagenen Logins innerhalb von 10 Minuten | 15 Minuten |
Zum Aktivieren öffnest du die Einstellungen des Servers, wechselst zum Tab Fail2ban und schaltest es ein. Danach deployst du die Odoo-Dienste auf diesem Server neu, damit ihre Logins überwacht werden. Fail2ban lässt sich nicht wieder ausschalten, sobald es installiert ist. Provisionierungsvorlagen haben für neue Server den Schalter Enable Fail2ban. Die Fail2ban-Metriken kommen über die Servermetriken, aktiviere deshalb auch Telegraf auf dem Server.
Der Server ordnet die Adressen, die er sieht, mit einer lokalen Kopie der Datenbank DB-IP City Lite einem Land und einer Stadt zu. An calmo.cloud werden nur die Zahlen pro Land und Stadt gesendet. IP-Adressen verlassen deinen Server nie.
Die Security-Seite #
Sobald auf einem deiner Server Fail2ban aktiviert ist, erscheint Security im Panel-Menü. Für einen Zeitraum von einer Stunde bis 30 Tagen zeigt die Seite:
- Protected servers, aktuell gesperrte IP-Adressen, Bans und fehlgeschlagene Logins
- Attack origins: einen interaktiven Globus mit den Ländern, aus denen fehlgeschlagene Logins kommen, neben einer Liste dieser Länder. Wähle ein Land in der Liste oder auf dem Globus aus, um es an beiden Stellen hervorzuheben. Ziehe den Globus, um ihn zu drehen.
- Failed login attempts über alle Server, aufgeteilt in SSH- und Odoo-Logins
- Top attack sources: die wichtigsten Länder, Städte und die am häufigsten angegriffenen Server
- Odoo security ratings: jedes geprüfte Odoo nach Note gruppiert, die schlechtesten zuerst, jeweils mit einem Link zu seinem Tab Security
Die Seite aktualisiert sich, wenn du auf Refresh klickst. Mit Live refresh wird sie alle fünf Minuten aktualisiert. Die Seite Metrics jedes Servers hat außerdem einen eigenen Fail2ban-Bereich mit den fehlgeschlagenen Logins nach Land.
Kostenloser Odoo Security Check #
Der kostenlose Odoo Security Check führt denselben Katalog gegen jedes Odoo aus, das dir gehört oder das du testen darfst, auch wenn es nicht auf calmo.cloud gehostet ist. Du brauchst dafür kein Konto:
- Gib die Adresse des Odoo ein, zum Beispiel
odoo.example.com. - Gib optional unter Additional checks den Datenbanknamen an, falls dein Odoo ihn verbirgt. Die Prüfungen auf Standardpasswort und Login-Schutz brauchen ihn. Der Name wird nur für die Prüfungen verwendet und nicht gespeichert.
- Bestätige, dass das Odoo dir gehört oder du die Erlaubnis des Eigentümers hast, und klicke auf Check my Odoo.
Die Ergebnisse erscheinen Prüfung für Prüfung, sobald sie fertig sind. Sie werden eine Stunde lang aufbewahrt, und nur deine Browsersitzung kann sie öffnen. Einen teilbaren Link gibt es nicht.
Zwei Prüfungen unterscheiden sich von denen im Panel. Der öffentliche Check testet den Brute-Force-Schutz beim Login mit bis zu 50 fehlgeschlagenen Logins eines zufälligen Testkontos, und diese Versuche können in deinen Logs auftauchen. Statt dieses Tests prüft das Panel, ob Fail2ban auf dem Server des Dienstes aktiv ist. Der öffentliche Check überspringt seine Port-Prüfungen, wenn das Odoo hinter einem CDN liegt, weil dann nur das CDN antworten würde.
Befunde beheben #
Jede fehlgeschlagene Prüfung nennt, was beobachtet wurde und wie du es behebst. Die häufigsten Lösungen:
- Standard-Admin-Passwort: Ändere das Admin-Passwort in Odoo.
- Datenbank-Manager oder Datenbankliste erreichbar: Setze
list_db = Falseund ein starkesadmin_passwdin der Odoo-Konfiguration und deploye den Dienst neu. - Fail2ban nicht aktiv: Aktiviere Fail2ban in den Servereinstellungen, wie oben beschrieben.
- Odoo-Version nicht mehr unterstützt: Plane das Upgrade zuerst auf einer Kopie.
- HTTPS, Zertifikat oder Header: Prüfe, ob der Proxy des Servers und das Zertifikat des Dienstes in Ordnung sind. Siehe Domain hinzufügen.
Klicke nach einer Korrektur auf Run checks now, um zu bestätigen, dass der Befund verschwunden ist.
Security Insights ist ein Frühwarnsystem und kein Ersatz für ein vollständiges Audit. Es erkennt die häufigsten Fehlkonfigurationen im Produktivbetrieb. Kombiniere es mit regelmäßigen Backups, eingeschränktem SSH-Zugriff und Odoo-Updates.