In diesem Blogbeitrag erfährst du, wie du durch einfache Massnahmen die Sicherheit deiner Contao-Installation erhöhen kannst und so Contao noch besser vor ungewollten Zugriffen und Hackerangriffen schützt.

Installiere Contao immer getrennt von anderen Systemen

Sicherheit fängt bereits bei der Installation von Contao an. Achte darauf, dass du für jede Contao-Installation eine eigene (Sub-)Domain, Verzeichnisstruktur und Datenbank verwendest. Auf keinen Fall solltest du fremde Software wie WordPress, Joomla! oder Matomo innerhalb der Contao-Verzeichnisstruktur oder selben Datenbank installieren. Am besten ist es, wenn du jede Contao-Installation auf einem separaten Hosting-Account installierst. Dadurch sind die Systeme voneinander abgeschottet und ein Angreifer, der Zugriff auf eines der Systeme erhält, kann nicht auf alle Systeme zugreifen.

Nutze SSH, FTPS oder SFTP anstatt FTP

Um Dateien auf den Server zu übertragen, solltest du keine ungesicherte FTP-Verbindung verwenden. Bei FTP werden Benutzername und Passwort im Klartext übertragen! Nutze immer eine sichere Verbindung wie SSH, FTPS oder SFTP. Wenn du einen SSH-Zugang nutzt, dann kannst du die Sicherheit zusätzlich erhöhen, indem du anstatt von Passwörtern mit SSH-Keys arbeitest.

Verschlüsselte Übertragung per HTTPS

Die Übertragung per HTTPS ist heutzutage Standard und solltest du daher immer einsetzen. Die meisten Hoster bieten dafür kostenlose Zertifikate, wie z. B. von Let's Encrypt, an. Es ist zu empfehlen, dass du bereits in der Entwicklungsphase HTTPS aktivierst.

Richtiger Umgang mit Passwörtern

Dieses Thema ist enorm wichtig und gleichzeitig nichts Neues. Sei ehrlich zu dir, befolgst du tatsächlich die Empfehlungen? Wiederholung kann nicht schaden, deswegen hier noch mal die wichtigsten Punkte beim Umgang mit Passwörtern und Zugangsdaten.

Lange Passwörter nutzen

Ein sicheres Passwort ist so gestaltet, dass es weder von nahestehenden Personen noch von Bots bzw. mithilfe einer Brute-Force-Attacke geknackt werden kann. Daher ist es wichtig, dass du beim Festlegen eines guten Passwortes bestimmte Kriterien beachtest. Ein gutes Kennwort besteht - entgegen dem was man leider noch immer in vielen Empfehlungen liest - nicht aus möglichst vielen Sonderzeichen, sondern ist vor allem eines: lang.
Wenn man genauer darüber nachdenkt, ist das eigentlich mathematisch auch völlig logisch. Ein Angreifer weiss im Idealfall ja nicht, welche Sonderzeichen du verwendet hast und muss somit ohnehin jegliche Möglichkeiten durchprobieren. Die Anzahl der  Kombinationsmöglichkeiten aus 6 Zeichen ist aber viel geringer, als die aus 30 Zeichen.

Moderne Supercomputer können mehrere Milliarden Kombinationen pro Sekunde durchprobieren. Wir halten also fest: Je länger dein Passwort, desto besser.

Über die beste Mindestlänge eines Passworts scheiden sich die Geister. Manchmal liest man 8, manchmal 12, andere sagen 30. Das hängt von vielen Faktoren ab und natürlich hat auch nicht jeder Angreifer einfach mal so einen Supercomputer im Keller stehen. Aber ein allgemeiner Hinweis: Aktuell ist die maximale Passwortlänge bei Contao auf 4096 Bytes begrenzt. Je nach benutzten Zeichen kannst du also wirklich, wirklich lange Passwörter nutzen. 100 Zeichen? Vielleicht schon etwas übertrieben aber absolut kein Problem! Merken kann man sich sowas natürlich nicht, dazu gleich mehr.

Du kannst die Vorteile von langen Passwörtern zusätzlich noch mit der Empfehlung kombinieren, sowohl Gross- und Kleinbuchstaben, Zahlen als auch Sonderzeichen (z. B. # & ? * ! ?) zu nutzen. Weiter sollte es in keinem Wörterbuch zu finden sein und mit dir nahestehenden Personen oder persönlichen Daten im Zusammenhang stehen. Ebenso sind einfache Zahlen- oder Buchstabenfolgen oder eine Reihe benachbarter Tasten auf der Tastatur eine schlechte Wahl.

Zur Erstellung von starken und sicheren Passwörtern kannst du einen der vielen kostenlosen Passwortgeneratoren oder einen Passwortmanager verwenden. Dazu später noch mehr.

Um Passwortrichtlinien in Contao durchzusetzen, kannst du die Erweiterung contao-password-validation von terminal42 verwenden.

Unterschiedliche Passwörter pro Installation verwenden

Aus Bequemlichkeit ist die Versuchung gross, das gleiche Passwort für mehrere Contao-Installationen zu nutzen. Leider bedeutet das auch, dass ein Angreifer, der die Zugangsdaten zu einer Installation hat, leicht Zugang zu allen anderen Installationen erhält. Stattdessen solltest du für jede Installation ein einzigartiges und sicheres Passwort festlegen.

Einen Passwortmanager verwenden

Wenn du die vorherigen Ratschläge beherzigst, dann hast du zahlreiche Passwörter, die du dir nicht mehr merken kannst. Die Lösung ist ein Passwortmanager. Damit kannst du sichere Passwörter erzeugen und speichern, sodass du nicht mehr jedes Passwort auswendig lernen musst. Ausserdem bieten moderne Passwortmanager eine automatische Anmeldung an Webseiten und Apps, wodurch die Anmeldung beschleunigt und vereinfacht wird. Du merkst dir in Zukunft nur noch ein einziges starkes Master-Passwort und kannst dennoch sicher sein, dass deine Zugangsdaten geschützt sind. Zudem kannst du je nach Passwortmanager die Zugangsdaten gemeinsam im Team nutzen. Bekannte Tools sind unter anderem Enpass, Bitwarden, KeePass, 1Password und LastPass.

Zwei-Faktor-Authentifizierung aktivieren

Seit Contao 4.6 hast du die Möglichkeit, den Backend-Login per Zwei-Faktor-Authentifizierung (2FA) zu schützen. Hierbei wird ein zusätzlicher Code zur Bestätigung deines Kontos verlangt, nachdem du dein Passwort eingegeben hast. Dieser Code wird entweder von einer externen App wie Authy, Google Authenticator oder FreeOTP auf deinem Smartphone generiert. Bei vielen Passwortmanagern kann ebenfalls der 2FA-Code erzeugt werden. Die Zwei-Faktor-Authentifizierung ist eine ausgezeichnete Methode, um den Schutz deiner Contao-Installation drastisch zu erhöhen.

2FA lässt sich sogar für alle Backendbenutzer erzwingen. Dazu bearbeitest du die Datei config.yml wie folgt:

# config/config.yml
contao:
    security:
        two_factor:
            enforce_backend: true

Anschliessend noch einmal den Anwendungscache leeren und 2FA ist für alle Backend-User verpflichtend.

Bei trakked kannst du für dein Konto ebenfalls 2FA aktivieren.

So wenig Admins wie nötig

Die Zahl der Administratoren sollte so gering wie möglich gehalten werden. Denn je mehr Personen Zugang zum Contao-Backend haben, desto höher ist das Risiko, dass ein Angreifer unbemerkt in das System eindringen kann. Wenn du nicht unbedingt mehrere Administratoren brauchst, reduziere die Zahl auf ein Minimum.

Statt Admins solltest du Benutzergruppen mit eingeschränkten Rechten erstellen.

Hinterlege bei vorübergehenden Benutzern am besten immer ein Ablaufdatum und lösche regelmässig inaktive Benutzer.

Contao-Installtool schützen

Seit Contao Manager 1.6 und Contao 4.9 können die Datenbankmigrationen direkt über den Contao Manager durchgeführt werden. Somit ist es empfehlenswert, den Login des Installtools zu sperren. Die schnellste und einfachste Möglichkeit ist, dass du den Contao Manager öffnest und hier unter «Systemwartung» den Button «Installtool sperren» klickst. Alternativ kannst du auch manuell per SFTP oder über die Konsole im Verzeichnis /var eine leere Datei install_lock erstellen.

Eine weitere Möglichkeit ist der Schutz per htaccess. Du kannst den Zugriff auf Basis der IP-Adresse zulassen oder über Benutzername und Passwort einrichten.

Ab Contao 5 verschwindet das Contao-Installtool zur flüchtigen Erinnerung an gute alte Zeiten.

Contao Manager umbenennen

Du kannst ohne Probleme die contao-manager.phar.php in einen Namen deiner Wahl umbenennen. Dadurch wird es für Unbekannte schwieriger, den Login zum Contao Manager zu finden. Du kannst z. B. den Contao Manager in cm.phar.php umbenennen. Das erspart dir zusätzlich auch noch Tipparbeit im Browser ;-)

Damit der Contao Manager auch nach der Umbenennung über das Backend aufgerufen werden kann, bitte noch folgenden Eintrag in der config.yml vornehmen und anschliessend über den Contao Manager (»Systemwartung« > »Prod.-Cache erneuern«) oder über die Konsole einmalig den Anwendungs-Cache leeren.

# config/config.yml
contao_manager:
    manager_path: cm.phar.php

Sobald du den Contao Manager umbenannt hast, kannst du den Pfad in trakked anpassen.

Contao Backend-URL ändern

Seit Contao 4.13 lässt sich der Pfad für den Backend-Login anpassen. Dazu kannst du in der config.yml folgende Anpassung durchführen:

# config/config.yml
contao:
    backend: 
        route_prefix: '/admin'

Bevor du diese Massnahme umsetzt, ist es jedoch wesentlich wichtiger, dass du 2FA aktivierst. Das «Verstecken» des Backends erhöht nur gefühlt die Sicherheit.

Beim Ändern der Contao Backend-URL musst du berücksichtigen, dass ggf. noch nicht alle Extensions damit umgehen können.

Regelmässige Contao Updates

Wie bei jeder anderen Software sind für Contao regelmässige Updates unerlässlich, um Fehler zu beheben und Sicherheitslücken zu schliessen. Contao besteht derzeit aus mehr als 180 Paketen. Das bedeutet, dass Sicherheitslücken nicht nur in den Contao-Core-Paketen auftreten können, sondern auch in allen anderen abhängigen Paketen. Aus dem Grund solltest du regelmässig Updates installieren und alle Pakete aktualisieren, auch wenn für Contao selbst aktuell gar keine Sicherheitslücke bekannt ist.

trakked überwacht für dich deine Contao-Installationen und du wirst sofort per E-Mail informiert, wenn in einem der über 180 Pakete eine Sicherheitslücke auftritt. Zudem lassen sich mit trakked Updates wesentlich schneller und einfacher installieren.

Aktuelle PHP-Version nutzen

Neben den Contao-Updates ist auch eine aktuelle PHP-Version ein wichtiger Bestandteil und sollte regelmässig aktualisiert werden. In der Regel aktualisieren die Hoster die PHP-Version automatisch. Ein Wechsel auf eine neuere Minor oder Major-Version von PHP ist allerdings immer manuell zu erledigen.

Auch hier kann dich trakked unterstützen. trakked überwacht für dich die PHP-Version und zeichnet den Verlauf der verschiedenen Versionen auf. Sollte die verwendete PHP-Version veraltet sein, wirst du darüber benachrichtigt.

Fazit

Wenn du deine Contao-Installation absichern möchtest, gibt es einige einfache Massnahmen, die du ergreifen kannst. Ob du alle Ratschläge umsetzt, ist natürlich dir überlassen. Am wichtigsten sind regelmässige Updates, sichere Kennwörter und 2FA, sowie Contao-Installationen immer getrennt von anderen Systemen zu installieren.

Hast du weitere Anmerkungen, Ergänzungen oder Tipps, dann hinterlasse uns gerne einen Kommentar.

Einen Kommentar schreiben

Was ist die Summe aus 9 und 4?