devslife - brute-force-attacke

So machst du deine Website, deinen Blog, deine Community oder deinen Shop sicherer ( Folge 21 / 01 )

   

Damit du nicht zum Ziel von Cyberangriffen wirst, solltest du, wenn es um die Sicherheit deiner Website, deines Blogs, deiner Community oder deines Shops geht, nicht zimperlich sein. Die Sicherheit deines Internetangebotes sollte ganz weit oben auf deiner Agenda stehen.

Macht auf das Tor…

Unter Umständen haben es Angreifer nicht unbedingt nur auf deine Benutzer- oder Kundendaten oder gar Betriebsgeheimnisse abbgesehen, sondern vielmehr auf deine Datenbank- und (E-Mail-)Serverkapazitäten.

Diese Kapazitäten können für den Spamversand, zum Herstellen von Kryptowährungen und viele andere fiese, kleine Gemeinheiten zweckentfremdet werden, ohne dass du davon etwas bemerkst.

Vorsicht ist die Mutter der Porzellankiste

Um Datenklau, Mißbrauch und Zweckentfremdungen vorzubeugen ist eine möglichst gute Absicherung deines Systems die Mutter der Porzellankiste.

Aber, wie geht man das an? Welche Möglickeiten zur Absicherung gibt es? Was kannst du selber tun? In welchen Fällen solltest du das lieber Fachleuten überlassen?

Diesen Fragen gehe ich in dem Special „Sicher ist sicher“ nach. In mehreren Folgen werde ich euch anhand von praktischen, verständlichen Beispielen zeigen, wie ihr Sicherungsmaßnahmen umsetzen könnt.

Die .htaccess Datei – Eine kleine, simple Konfigurationsdatei, die dir sicher zur Seite steht!

Was ist eine .htaccess Datei?

Die .htaccess Datei ist eine ganz spezielle Konfigurationsdatei. Sie teilt dem Webserver (Apache) mit, wie verschiedene Arten von Informationen bereitgestellt und wie HTTP-Anfragen behandelt werden sollen. Mit einer .htaccess Datei hast du ein mächtiges Instrument, mit dem du dein Webangebot sicherer machen kannst.

Du kannst z. B. bestimmte Verzeichnisse sperren oder nur kennwortgeschützten Zutritt zu diesen Verzeichnissen gewähren. Mit einer .htaccess kannst du aber auch von fehlerverursachenden oder nicht mehr existierenden Seiten Umleitungen auf hilfreiche, intakte Seiten vornehmen. Oder aber einfach nur von HTTP zu HTTPS umleiten.

Wo finde ich die .htaccess Datei?

Du findest die .htaccess Datei auf deinem Apache-Webserver in der Regel im Hauptverzeichnis, ggf. aber auch in einem oder mehreren Unterverzeichnissen.

Abb. 1: Wo finde ich die .htaccess Datei? Möglicherweise im Hauptverzeichnis „public“ deines Internetauftrittes, hier am Beispiel eines V-Servers.

So fügst Regeln zu deiner .htaccess Datei hinzu

Um eine .htaccess Datei zu ändern, reicht ein gewöhnlicher Texteditor als Werkzeug. Wenn du es professioneller angehen willst, empfehle ich dir Notepad++ oder Atom.

Bevor du eine bestehende .htaccess Datei änderst, solltes du eine Sicherungskopie davon erstellen. Denn wenn du neue Regeln zu deiner .htaccess hinzufügst und die bestehende Datei auf dem Webserver überschreibst, kann es schon mal vorkommen, dass sich ein Fehler eingeschlichen hat oder die neuen Regeln mit bestehenden Konfigurationen auf deinem Webserver nicht harmonieren.

Mit einer fehlerhaften .htaccess Datei funktioniert deine Website unter Umständen nicht mehr. In diesem Fall ist es natürlich gut, wenn du die fehlerhafte Datei mit deiner Sicherungskopie überschreiben kannst : )

Für den Download sowie den Upload deiner .htaccess Datei vom bzw. auf den Webserver kannst du ein gängiges SFTP-Programm verwenden, FileZilla zum Beispiel.

Nützliche .htaccess Regeln (Direktiven), die dein Website oder dein Webangebot sicherer machen

1. Verzeichnis-Listing / Anzeige der Verzeichnisstruktur deaktivieren

Wenn du die Ordner- und Dateistruktur deines Webspaces im Browser nicht anzeigen lassen und deaktivieren willst, kannst du das mit Hilfe des nachfolgenden Regel tun.

Beachte: Bei den meisten Webhostern ist die Anzeige der Verzeichnisstruktur aus Sicherheitsgründen bereits standardgemäß deaktiviert.

# Deaktiviert das "Verzeichnis-Listing"
Options -Indexes
.htaccess

2. Zugriff auf ein Verzeichnis per .htaccess verhindern

Wenn du ein Webverzeichnis vor der Öffentlichkeit verbergen möchtest, kannst du in dem zu verbergenden Verzeichnis eine .htaccess mit folgendem Inhalt ablegen.

Beachte: Diese Regel wirkt sich automatisch auch auf die Unterverzeichnisse aus!

# Zugriff auf ein Verzeichnis verhindern
Deny from all 
.htaccess

3. Zugriff einzelner oder mehrerer IP-Adressen erlauben oder verbieten

Mit der Regel zum Blockieren von IP-Adressen können wir den Zugriff von bestimmten Besuchern verweigern oder zulassen.

Das Sperren bestimmter IP-Adressen ist sehr empfehlenswert, wenn du in den Log-Dateien ungewöhnliche Aktivitäten von unbekannten IP-Adressen bemerkst oder wenn du bereits IP-Adressen erfasst hast, über die wiederholt versucht wurde, in einen geschützten Bereich deines Webspaces einzudringen.

# Zugriff von einer IP-Adresse erlauben, alle anderen verbieten
order allow,deny
allow from 192.168.0.1
deny from all

# Zugriff mehreren IP-Adressen erlauben, alle anderen verbieten
order allow,deny
allow from 192.168.0.1
allow from 192.168.0.2
deny from all 

# Zugriff von einer IP-Adresse verbieten, alle anderen erlauben
order allow,deny
deny from 192.168.0.1
allow from all

# Zugriff von mehreren IP-Adressen verbieten, alle anderen erlauben
order allow,deny
deny from 192.168.0.1
deny from 192.168.0.2
allow from all
.htaccess

Der Kenn- oder Passwortschutz von Verzeichnissen oder Ordnern ist eine gute Möglichkeit Bereiche deiner Website besser abzusichern. Mit einem Passwortschutz kannst du aber auch nur einer kleinen Gruppe von Personen den Zugang zu Verzeichnissen auf deinem Webserver erlauben.

Für einen Kennwortschutz musst du zunächst eine Passwortdatei in einem Texteditor erstellen. Benenne die Datei wie folgt: .htpasswd

Trage nun in der Passwortdatei den/die Benutzernamen und das/die Passwort/Passwörter nach folgendem Schema ein:

benutzername:passwort (Passwort = MD5-Hash)

Beachte: Das Passwort darfst du nicht im Klartext eintragen, es sollte z. B. mit Hilfe des MD5-Algorithmus gehasht (verschlüsselt) werden!

Damit dir die MD5-Verschlüsselung von Passwörtern problemlos gelingt, kannst du beispielsweise diesen Htpasswd Generator nutzen. Dort gibst du den jeweiligen Benutzernamen sowie das Passwort im Klartext ein. Wenn du dann auf „generieren“ klickst, erhältst du die komplette Phrase für deine .htpasswd-Datei.

Beispiel:

Aus dem Benutzernamen: devslife und dem Passwort: M3in%K3NnW0rT wird:

devslife:$apr1$amiuehcr$94Nkpu0oT7IctG96yr8wl.

Nachdem du die .htpasswd-Datei fertiggestellt hast, kann du sie auf deinen Webserver in ein beliebiges, nicht öffentlich zugängliches Verzeichnis übertragen.

In dem Verzeichnis, dass du mittels eines Passwortes schützen willst, erstellst du eine .htaccess Datei mit folgendem Inhalt:

# .htaccess Datei für den Passwortschutz
AuthType Basic
AuthName "Dieser Bereich ist passwortgeschützt."
AuthUserFile /full/path/to/.htpasswd
Require valid-user
.htaccess

Beachte: Vergiss bitte nicht den Verzeichnispfad /full/path/to/ entsprechend deinem Verzeichnis, indem sich deine .htpasswd Datei befindet, abzuändern!

4. HTTP Strict Transport Security (HSTS) aktivieren

HSTS (HTTP Strict Transport Security) ist ein Sicherheitsmechanismus, der HTTPS-Verbindungen gegen Man-in-the-Middle-Angriffe und Session-Hijacking absichert. Mit der HTTPS-Erweiterung kannst du signalisieren, dass deine Website für einen bestimmten Zeitraum nur SSL/TLS-verschlüsselt abgerufen werden kann.

Im nachfolgenden Beispiel verwenden wir das Header-Feld Strict-Transport-Security. Die Angabe max-age=3153600 definiert dabei den Zeitraum von genau einem Jahr, die optionale Direktive includeSubDomains schließt alle Subdomains in diese Regel mit ein.

# HSTS aktivieren
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS"
.htaccess

Mit diesen Regeln oder Direktiven, hast du für den Anfang ein gutes Rüstzeug, um dein Webangebot ein Stück weit sicherer zu machen.

Lust auf mehr…

Selbstverständlich gibt es eine ganze Reihe weiterer Direktiven. Wenn du dich intensiver mit den allgemeinen HTTP Regeln / Direktiven für Apache-Webserver auseinandersetzen möchtes, empfehle ich dir das offizielle Apache HTTP Server Tutorial: .htaccess files

In der nächsten Folge werde ich speziell auf die .htaccess Datei für WordPress-Installationen und -Anwendungen eingehen und eine beispielhafte WordPress .htaccess Datei zum Download bereitstellen.

Wenn dir dieser Einstieg, die erste Folge „So machst du deine Website, deinen Blog, deine Community oder deinen Shop sicherer ( Folge 21/01 )“ gefallen hat, freue ich mich auf eine Bewertung von dir : )

Du kannst mir auch gerne einen Kommentar hinterlassen und mir deine Meinung zu diesem Beitrag mitteilen. Wenn du Anregungen und Fragen oder aber auch Vorschläge für weitere Themen hast, freue ich mich natürlich auch über einen Kommentar von dir.