Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.
 
Inhaltsverzeichnis
Vorwort
Teil I Grundlagen
1 Einleitung
2 Testumgebung einrichten
3 Live-Umgebung einrichten
4 Website planen
Teil II Joomla! benutzen
5 Website-Frontend kennenlernen
6 Administrations-Backend bedienen
7 Content verwalten
8 Contentpflege konfigurieren
9 Menüs aufbauen
10 Layout und Design anpassen
11 Benutzerverwaltung einrichten
12 Mehrsprachigkeit aktivieren
13 System konfigurieren
Teil III Joomla! erweitern
14 Erweiterungen aktivieren
15 Offizielle Joomla!-Komponenten
16 Empfohlene Erweiterungen
17 Joomla! als Content-Management‐System
18 Joomla! als Community-Plattform
19 Joomla! als Online-Shop
Teil IV Joomla! warten
20 Wartung allgemein
21 Joomla! und Content deployen
22 Sicherheit ausbauen
23 Performance- und Suchmaschinenoptimierung
24 Notfallmaßnahmen
Teil V Joomla!-Erweiterungen entwickeln
25 Grundlagen zur Erweiterungsentwicklung
26 Templates entwickeln
27 Plugins entwickeln
28 Module entwickeln
29 Komponenten entwickeln
30 Erweiterungen veröffentlichen
Stichwortverzeichnis

Jetzt Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Joomla! 3 von Richard Eisenmenger
Das umfassende Handbuch
Buch: Joomla! 3

Joomla! 3
Pfeil 22 Sicherheit ausbauen
Pfeil 22.1 reCAPTCHA/NoCaptcha aktivieren
Pfeil 22.2 Administrations-Backend absichern
Pfeil 22.2.1 Backend-Verschleierung über AdminExile
Pfeil 22.2.2 Zusätzliches Serverpasswort einrichten
Pfeil 22.2.3 Websitezugriff anhand der IP einschränken
Pfeil 22.3 SSL aktivieren
Pfeil 22.3.1 Beschaffung eines SSL-Zertifikats
Pfeil 22.3.2 SSL-Aktivierung und -Konfiguration beim Webhoster
Pfeil 22.3.3 SSL-Aktivierung in Joomla!
Pfeil 22.3.4 Ausmerzen nachgeladener HTTP-Elemente
Pfeil 22.4 Starke Passwörter einsetzen
Pfeil 22.5 Verzeichnis- und Dateirechte prüfen
Pfeil 22.6 Vulnerable Extensions List kennen
 
Zum Seitenanfang

22.2    Administrations-Backend absichern Zur vorigen ÜberschriftZur nächsten Überschrift

Der Backend-Login von Joomla! ist ein gefundenes Fressen für Brute-Force-Angriffe, bei denen über automatisierte Login-Versuche Millionen von Passwörtern nacheinander durchprobiert werden, bis vielleicht eines funktioniert. Die Schwäche für solche Angriffe begründet sich in der eindeutigen Backend-URL (/administrator/index.php) und dem Standard-Administratornamen Super Benutzer. Während Sie den Namen leicht über BenutzerVerwalten • Klick auf Super Benutzer anpassen (und dabei auch ein sicheres Passwort vergeben, wie in Abschnitt 22.4, »Starke Passwörter einsetzen«, beschrieben), ist die /administrator/index.php-URL zu tief in Joomla! verdrahtet, um sie zu ändern.

Typische Google-Analytics-Echtzeitansicht eines Brute-Force-Angriffs; besonders auffällig ist die Herkunft der »Besucher«, da es sich um eine deutschsprachige Website handelt.

Abbildung 22.4    Typische Google-Analytics-Echtzeitansicht eines Brute-Force-Angriffs; besonders auffällig ist die Herkunft der »Besucher«, da es sich um eine deutschsprachige Website handelt.

 
Zum Seitenanfang

22.2.1    Backend-Verschleierung über AdminExile Zur vorigen ÜberschriftZur nächsten Überschrift

Die kleine kostenlose Erweiterung AdminExile schafft Abhilfe, indem sie die Backend-Login-Seite nur dann anzeigt, wenn ein beliebig festlegbarer URL-Parameter mit angegeben wurde, z. B. http://IhrDomainName.de/administrator/index.php?GeheimesWort. Diesen kennt kein Brute-Force-Angreifer, bei Aufruf der normalen Login-Seite landet der Backend-Interessent dann entweder auf der Homepage oder einer 404-Fehlerseite.

Nach der Installation des Plugins erreichen Sie die Konfiguration über ErweiterungenPlugins • Klick auf System - AdminExile. Über die vier der fünf Reiter verteilen sich verschiedene Aspekte der Backend-Absicherung. (Der Reiter Mail Link steuert keine Sicherheitsaspekte, sondern lediglich Hinweis-E-Mails für andere Administratoren, falls Sie die Backend-Zugangs-URL verändern.)

Erweiterung AdminExile
JED-Kategorie Access & SecuritySite Security
Download http://www.richeyweb.com/development/joomla-plugins/71-adminexile-for-joomla-16?start=8 (Falls dieser Link nicht mehr funktioniert, suchen Sie über das Textfeld rechts oben nach »adminexile«.)
Zweck Plugin zur Verschleierung der Backend-Login-Seite und Führen einer Blacklist zur Vereitelung von Brute-Force-Angriffen
  • Administrations-Backend verstecken
    In der einfachsten Absicherungskonfiguration geben Sie im Reiter Plugin (siehe Abbildung 22.5) in das Feld URL Access Key die geheime Buchstaben- und Zeichenkombination ein, die ab sofort ans Ende der Backend-URL angehängt werden muss. Über dem Textfeld sehen Sie ein Beispiel, wie die finale URL aussieht.

    AdminExile ergänzt die Backend-Administrations-URL um beliebige Wörter, die Brute-Force-Angreifer hoffentlich nicht kennen.

    Abbildung 22.5    AdminExile ergänzt die Backend-Administrations-URL um beliebige Wörter, die Brute-Force-Angreifer hoffentlich nicht kennen.

    Mit Use Key + Value erweitern Sie die URL-Ergänzung um eine zusätzliche Zeichenkombination, die einem Gleichheitszeichen folgt. Grund für diese weitere Variante ist, dass URL-Parameter in der Regel immer aus einer Variablen und einem ihr zugewiesenen Wert bestehen, wie Sie z. B. an der gerade aufgerufenen Backend-URL erkennen (?option=com_plugins). Steht der Schalter auf Ja, geben Sie neben Key Value deshalb ein weiteres Wort ein.

    Allow Re-Entry erlaubt einen Zugriff auf das Backend ohne URL-Ergänzung, falls der Benutzer innerhalb der letzten Minute schon einmal eingeloggt war. Belassen Sie den Schalter auf Nein.

    Redirect URL ist die Adresse, zu der Benutzer oder Brute-Force-Bots umgeleitet werden, falls sie die alte /administrator-URL ohne URL-Ergänzung antesten. Die Platzhalter {HOME} leiten auf die Homepage und {404} auf die 404-Fehlerseite, Sie können aber beliebige andere URLs eintragen.

  • Backend-Login auf bestimmte IPs einschränken
    Stellen Sie den Schalter Enable IP Security im Reiter IP Security auf Ja, öffnen sich zwei Formulare zur Verwaltung einer sogenannten White- und Blacklist zur Freigabe bzw. Verweigerung jeglichen Zugriffs von einer bestimmten IP oder einem IP-Bereich. Dabei erlaubt AdminExile Zugriffe, die zwar durch die Blacklist ausgeschlossen, aber wieder in der Whitelist freigeschaltet wurden. Denn über die Blacklist blockieren Sie in der Regel komplette IP-Bereiche, z. B. verhindert der Eintrag »10.0.0.0/8« den Zugriff von den IPs 10.0.0.0 bis 10.255.255.255. Per Whitelist machen Sie dann wieder gezielte Ausnahmen. Auf diese Weise sperren Sie z. B. das gesamte Internet über einen Blacklist-Eintrag »0.0.0.0« aus und erlauben nur den Zugriff von der an Ihren Internetanschluss vergebenen IP, die Sie über https://www.whatismyip.com erfahren und in der Whitelist über den Button Add eintragen. Tipp: Stellen Sie den Schalter Email Admin auf Ja, um eine E-Mail zu erhalten, falls mindestens drei Zugriffsversuche einer geblacklisteten IP erfolgten.

    Achtung: Falls Sie von Ihrem Internetprovider jeden Tag eine neue dynamische IP erhalten, tragen Sie in der Whitelist den IP-Bereich des Providers ein. Die erfahren Sie entweder direkt über den Provider oder durch eine Google-Suche nach »internet-provider ip-bereich«. Eine andere Möglichkeit ist, IP-Bereiche von bekannten Spam- und Angriffsnetzwerken zu blacklisten, fündig werden Sie bei einer Suche nach »common ip range blacklist«.

  • Brute-Force-Login-Versuche abwehren
    Im Reiter Brute Force stellen Sie den Schalter Detect Brute Force auf Ja, um die Anzahl erlaubter Backend-Login-Versuche einzuschränken. Max Attempts ist die Anzahl der Versuche, Time Penalty die Wartezeit in Minuten, die abgelaufen sein muss, bevor eine erneute Anmeldung erlaubt ist. Über den Penalty Multiplier multiplizieren Sie Wartezeit zusätzlich, falls der Angreifer die Standardwartezeit geduldig absitzt und dann das nächste Set von Login-Versuchen startet. Über die Email-Schalter aktivieren Sie Warnmails an Sie, falls solch ein Angriff stattfindet.

  • Frontend-Bonus: Benutzergruppen einschränken
    Dieser Reiter beschäftigt sich nicht mit der Zugangskontrolle des Backends, sondern des Frontends, und erlaubt die Angabe ausgesuchter Benutzergruppen, die sich nicht ins Frontend einloggen dürfen. Eine schnell eingerichtete Sperre also, falls eine Benutzergruppe mit besonderen Rechten Schwierigkeiten bereitet.

 
Zum Seitenanfang

22.2.2    Zusätzliches Serverpasswort einrichten Zur vorigen ÜberschriftZur nächsten Überschrift

Ein Bug in Joomla!, schlecht vergebene Passwörter – es braucht nicht viel, um Hackern Tür und Tor zu öffnen. Hundertprozentige Sicherheit gibt es nicht, aber jeder Mechanismus, der das System eine weitere Stufe absichert, ist willkommen. Eine solche Sicherheitsmaßnahme ist die zusätzliche Passwortsperre auf Serverebene, noch bevor das Anmeldesystem von Joomla! greift.

Bei dieser Passwortsperre handelt es sich um die sogenannte Basic Authentication (deutsch: grundsätzliche Authentifizierung) des Apache Webservers. Dieser Mechanismus öffnet im Webbrowser ein einfaches Benutzername/Passwort-Fenster, bevor der Inhalt der Seite geladen wird (siehe Abbildung 22.6). Wer ein falsches Passwort eingibt, wird vom Webserver zurückgewiesen und erhält eine Fehlermeldung.

Über die »Basic Authentication« des Apache Webservers setzen Sie eine weitere Passwortsperre noch vor den Login-Mechanismus von Joomla!.

Abbildung 22.6    Über die »Basic Authentication« des Apache Webservers setzen Sie eine weitere Passwortsperre noch vor den Login-Mechanismus von Joomla!.

Für die Basic Authentication ergänzen Sie eine kleine Konfiguration im Administratorverzeichnis von Joomla! und erzeugen eine Datei, die ein verschlüsseltes Passwort enthält. (Möchten Sie die gesamte Website durch ein Passwort schützen, ignorieren Sie in den folgenden Schritten die Verzeichnisangabe /administrator/ und bearbeiten direkt die im Hauptverzeichnis liegende .htaccess-Datei.)

  1. Erzeugen Sie im Verzeichnis /administrator/ eine neue leere Datei mit Namen .htaccess, und öffnen Sie sie zur Bearbeitung, in FileZilla z. B. per Rechtsklick-Kontextmenü auf die Datei • Ansehen/Bearbeiten. In einer lokalen Installation legen Sie einfach eine leere Datei an und speichern sie unter /joomla3test/administrator/.htaccess. (Unter Windows speichern Sie sie zunächst als htaccess.txt und benennen sie nach der Bearbeitung über den Explorer um, indem Sie an Anfang und Ende einen Punkt setzen.)

  2. Fügen Sie folgendes Konfigurationsfragment in die Datei ein:

    AuthUserFile /AbsoluterPfadZuIhrerJoomlaInstallation/.htpasswd
    AuthType Basic
    AuthName "Verhaeltnismaessig geheimer Zugang zum Reiseforum"
    Require valid-user

    Die erste Zeile bezieht sich mit der Direktive AuthUserFile auf eine Passwortdatei, die in Kürze erzeugt und im selben Verzeichnis wie die .htaccess-Datei gespeichert wird. Tragen Sie vor /.htpasswd den absoluten Serverpfad inkl. /administrator/-Verzeichnis ein. In einer lokalen Testumgebung unter Windows ist das beispielsweise c:\xampp\htdocs\joomla3test\administrator (unter OS X /Applications/XAMPP/xamppfiles/htdocs/joomla3test/administrator und unter Linux /opt/lampp/htdocs/joomla3test/administrator). Der vollständige Pfad in einem angemieteten Webspace ist in der Regel länger und enthält z. B. Ihre Kundennummer. Sie erhalten den Pfad von Ihrem Webhoster oder innerhalb von Joomla! über SystemSysteminformationen • Reiter Konfigurationsdatei • Eintrag tmp_path abzüglich des abschließenden /tmp.

    Die zweite Zeile mit der Direktive AuthType beschreibt das Authentifizierungsverfahren, in diesem Fall die Basic Authentication. Es folgt die im Passwortfenster angezeigte Textmitteilung (AuthName) und schließlich die Mitteilung an den Webserver, dass ausschließlich authentifizierte Benutzer (valid-user) Webseiten in diesem Verzeichnis aufrufen dürfen.

  3. Speichern Sie die .htaccess-Datei, und erzeugen Sie eine neue Datei .htpasswd im selben Verzeichnis (bzw. htpasswd.txt unter Windows, Umbenennung dann wieder über den Explorer).

  4. Das Passwort ist verschlüsselt, Sie benötigen deshalb ein Tool für die Erzeugung. Davon gibt es zahlreiche im Internet, aber auch auf https://joomla-handbuch.com/wartung liegt eines für Sie bereit. Einfach Benutzername und Passwort eingeben und den erzeugten Code, das ist genau eine Zeile, in die Zwischenablage befördern, dann in die im Editor offene .htpasswd-Datei kopieren.

  5. Speichern Sie die Datei, und prüfen Sie, ob nun bei Aufruf der Administrations-URL die HTTP-Authentifizierungsabfrage erfolgt.

Hinweis: Auf diese Weise sichern Sie beliebige Serververzeichnisse ab. Sie passen lediglich den absoluten Pfad hinter AuthUserFile an und achten darauf, die erzeugte .htpasswd-Datei an die korrekte Stelle zu legen. Das funktioniert auch für die gesamte Joomla!-Installation, z. B. für ein Testsystem, allerdings erzeugen Sie dann keine neue .htaccess-Datei, sondern fügen die vier Authentifizierungsdirektiven ans Ende der vorhandenen.

Info: Die Authentifizierungskonfiguration ist sehr sensibel. Falls Sie sich jetzt nicht einloggen können, hat sich entweder beim Eingeben der .htaccess-Direktiven oder des Passworts ins Login-Fenster oder in den .htpasswd-Generator ein Tippfehler eingeschlichen. Wiederholen Sie dann einfach den gesamten in diesem Abschnitt vorgestellten Prozess, und löschen Sie Ihren Browsercache vor dem nächsten Login-Versuch.

 
Zum Seitenanfang

22.2.3    Websitezugriff anhand der IP einschränken Zur vorigen ÜberschriftZur nächsten Überschrift

Über die .htaccess-Datei lässt sich ein weiteres signifikantes Sicherheits-Feature aktivieren, mit dem Sie so gut wie jeden Angreifer abblocken: IP-Sperren. Dazu müssen Sie Ihre öffentliche IP-Adresse kennen und konfigurieren den Apache Webserver so, dass er nur Anfragen von dieser entgegennimmt. Alle anderen anonymen Server-Requests werden dann kurzerhand ignoriert. Hinweis: Mithilfe der eingangs vorgestellten Erweiterung AdminExile gestaltet sich die Erzeugung von IP-Sperren etwas komfortabler.

Für eine Sperre der gesamten Website öffnen und bearbeiten Sie die .htaccess-Datei aus dem Hauptverzeichnis von Joomla!; soll nur der Administrationsbereich abgeriegelt werden, bearbeiten Sie die .htaccess-Datei aus dem Ordner /administrator/. (Erzeugen Sie gegebenenfalls eine neue leere Datei, falls sie noch nicht existiert.) Ergänzen Sie folgende Zeilen:

Require all denied
Require local
Require ip 123.456.789.000

Die erste Zeile sperrt für ausnahmslos jeden Besucher den Zugriff auf das Verzeichnis (all denied – für alle verweigert). Die weiteren Zeilen heben dieses strikte Verbot für einige Ausnahmen auf:

  • Require local stellt sicher, dass Sie von Ihrem Arbeitsrechner (local) Zugriff haben.

  • Die dritte Zeile (und beliebig viele darauf folgende Zeilen) dient der Freischaltung einer externen IP.

Anstelle der Beispiel-IP 123.456.789.000 setzen Sie Ihre öffentliche IP, die Sie herausfinden, indem Sie in Google »what is my ip« eingeben oder die Website http://www.whatismyip.com besuchen.

Hinweis: Die Require-Direktive gilt ab Apache 2.4, der mit dem XAMPP-System installiert wurde. Ältere Versionen des Webservers benutzen die Direktiven deny from all und allow from 123.456.789.000.

Speichern Sie die .htaccess-Datei, und testen Sie die IP-Sperre.

 


Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück
 Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Joomla! 3 Joomla! 3
Jetzt Buch bestellen

 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Rheinwerk-Shop: HTML5 und CSS3
HTML5 und CSS3


Zum Rheinwerk-Shop: Schrödinger lernt HTML5, CSS und JavaScript
Schrödinger lernt HTML5, CSS und JavaScript


Zum Rheinwerk-Shop: Einstieg in PHP 7 und MySQL
Einstieg in PHP 7 und MySQL


Zum Rheinwerk-Shop: PHP 7 und MySQL
PHP 7 und MySQL


Zum Rheinwerk-Shop: Erfolgreiche Websites
Erfolgreiche Websites


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo

 
 


Copyright © Rheinwerk Verlag GmbH 2019
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

 
Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern