Oxid-Admin mit SSL und Verzeichnisschutz absichern


Backends von Webanwendungen waren in der Vergangenheit häufig das Einfallstor für Angriffe. Zwar hat sich bis heute vieles gebessert, aber es ist ratsam, dennoch etwas für die Sicherheit zu tun.

Der Oxid-Admin ist so ein Bereich, der sonst von niemandem außerdem Administrator zu benutzen ist. Nun gibt es ein paar Dinge, die Sie tun können, um den Oxid-Admin besser zu schützen.


Stellen Sie um auf SSL/HTTPS

Wenn Ihr Webserver bereits für SSL eingerichtet ist und Sie Ihren Shop auch aufrufen können, wenn Sie das http: am Anfang der Adresse in https: ändern, funktioniert HTTPS bereits. Beginnen Sie mit der Datei config.inc.php im Wurzelverzeichnis des Shops und suchen Sie den Eintrag, der mit $this->sAdminSSLURL beginnt und tragen Sie hier, falls noch nicht geschehen, die Adresse zum Oxid-Admin mit https: beginnend ein, zum Beispiel:

$this->sAdminSSLURL = 'https://www.meintollershop.de/admin';

Leeren Sie anschließend den Cache. Wenn Sie den Oxid-Admin jetzt aufrufen, erreichen Sie ihn über eine gesicherte Verbindung.

Verzeichnisschutz mit .htaccess

Um den Admin vor unbefugten Zugriffen zu schützen, können Sie ihn gleich doppelt mittels .htaccess schützen.

1. Zugriff auf eine IP-Adresse beschränken

Dies ist dann sinnvoll, wenn Sie eine feste IP-Adresse haben. Bedenken Sie, dass der Zugriff auf den Oxid-Admin von Computern an anderen Orten so nicht mehr möglich ist. Wenn Sie sich nicht auf eine oder wenige IP-Adressen festlegen möchten, machen Sie mit Schritt 2 weiter.

Erstellen Sie im Verzeichnis /admin Ihres Shops eine neue Datei mit dem Namen „.htaccess“ und schreiben Sie Folgendes hinein:

Order Deny,Allow
Deny From All
Allow From <Ihre statische IP-Adresse>

Sie können den Zugriff auch für mehrere IP-Adressen erlauben, indem Sie sie hintereinander, durch Leerzeichen getrennt, in die mit Allow From beginnende Zeile eintragen.

2. Kennwortschutz einrichten

Wenn Sie die Datei .htaccess bereits angelegt haben, können Sie darin einen Verweis auf eine Passwortdatei erstellen. Diese muss sich nicht im gleichen Verzeichnis befinden (ich bevorzuge die Methode, solche Dateien an einem Ort zu speichern, der per HTTP gar nicht erreichbar ist, zum Beispiel /var/www/benutzer/files/pass).

Die Datei .htaccess kann dann so aussehen:


AuthType Basic
AuthName "Melden Sie sich an."
Require valid-user
Order deny,allow
AuthUserFile /var/www/benutzer/files/pass/oxid-admin

In der letzten Zeile steht der Verweis auf die Datei, in der sich Benutzernamen und Kennwörter befinden.

Diese Passwortdatei, hier oxid-admin genannt, könnte so aussehen:

shopadmin:rK3z.mwQ/rmNQ

In dieser Datei kann sich je Zeile ein Benutzer und ein Kennwort befinden. Der Benutzername wird im Klartext, das Kennwort unter Linux MD5-verschlüsselt gespeichert.

Benutzername:<MD5-verschlüsseltes Kennwort>

So abgesichert verlangt der Webserver beim Versuch, den Shop-Admin aufzurufen, zunächst die per .htaccess festgelegten Zugangsdaten. Es ist ratsam, diese im Browser zu speichern, da sonst beim Arbeiten mit dem Admin solche Meldungen heraufbeschworen werden können, die sonst sehr störend sein können.

Nutzen für die Sicherheit

Und was bringt das jetzt für die Sicherheit? Die Nutzung von HTTPS erschwert ein Abhören von Daten enorm. Theoretisch wäre es möglich, dass jemand bei der Nutzung einer herkömmlichen HTTP-Verbindung Anmeldedaten abhört und sich Zugang zu sensiblen Kundendaten verschafft.

Der .htaccess-Schnutz verhindert ein Aufrufen des Oxid-Admins 1. ohne bekannte IP, sofern umgesetzt und 2. ohne gültige Zugangsdaten. Der Webserver muss also nicht einmal die Admin-Seite ausliefern, solange sich niemand erfolgreich angemeldet hat.


3 Gedanken zu „Oxid-Admin mit SSL und Verzeichnisschutz absichern

  1. Hallo!
    Die aufgezählten und erklärten Möglichkeiten waren mir auch vor dem Lesen schon bekannt aber ich finde es gut, dass Sie sich die Mühe gemacht haben, sie aufzuschreiben! Trotz der Kenntnis dieser Sicherungsmechanismen rütteln mich solche Beiträge schon noch mal wach und lassen mich über den Sicherheits-Aspekt noch einmal nachdenken.
    In Zukunft werde ich meinen Kunden auch empfehlen, ihren Shop (oder auch andere Backendzugänge) doppelt abzusichern – denn durch diese einfachen Mittel erhält man ein angenehmes Gefühl von „ich bin gut geschützt“.

  2. Zur Absicherung des Admin Bereichs hatte ich vor ein paar Monaten einmal versucht, das Backend nur über eine andere Domain erreichbar zu machen (in etwa shop: mein-shop.de -> admin: mein-admin.de). Oxid scheint das nicht zu unterstützen. ( siehe http://www.oxid-esales.com/forum/showthread.php?t=6419 )

    Hat solch ein Setup schon mal jemand hinbekommen?

    • Hallo,
      ich habe das mal eben ausprobiert, klappt leider auch in der aktuellen Oxid-Version nicht. Scheinbar orientiert sich der Admin auch an den Angaben in sShopURL.
      Am besten lässt du das mal den Entwicklern zukommen, es wird ja zurzeit auch intensiv am neuen Admin 2.0 gearbeitet.

Kommentare sind geschlossen.