RSS Facebook Google+ Twitter

Joomla-Bugs

Neuigkeiten: Aktuelle Joomla!-Version: 3.9.0
Willkommen Gast. Bitte einloggen oder registrieren.

Autor Thema: (Work in progress) Tutorial Verzeichnisschutz mit .htaccess  (Gelesen 19060 mal)

Verfasst von Chris Hoefliger aka Curly Brackets am 12. September 2012
Grundlage für diesen Artikel bilded dieses Tutorial über .htaccess - Dinge die dort erklärt werden, finden hier keine Wiederholung.

Was eine .htaccess Datei ist und welchem Zweck sie dient, wird hier nicht näher erläutert. Es geht aussschliesslich um das Thema Verzeichnisschutz. Die meisten Hoster bieten in ihrem Kundenbereich bereits Mittel und Wege an, bestimmte Verzeichnisse zu schützen. Auf diese Themen wird hier nicht näher eingegangen; nur soviel: es soll Konfigurationen geben, welche eine bestehende .htaccess kommentarlos überschreiben, und damit eine wohlüberlegte und möglicherweise liebevoll zusammengetragene Serverkonfiguration zerstören ....

Ein Verzeichnisschutz (oder auch eine Zugriffsbeschränkung) per .htaccess lässt sich prinzipiell auf zwei verschiedene Arten aufziehen:
  • Durch Authentifizierung (Abfrage von Usernamen / Passwort)
  • Durch Beschränkung des Zugriffs auf bestimmte Rechner [== IP Adressen]
Beide Methoden haben ihre Vor- und Nachteile. Beide Methoden setzten zudemm voraus, dass Der Indianer [== Apache] die dafür notwendigen Module lädt.
Es ist klar, dass man - wenn man keine fixe IP Adresse hat - kaum von der zweiten Möglichkeit Gebrauch machen kann, deshalb lassen wir den Gag mit den IP Adressen mal aussen vor. Authentifizierung setzt voraus, dass das Apache Modul mod_auth geladen ist, was bei einem anständigen Hoster hoffentlich der Fall ist. Der zuständige Mechanismus, der in .htaccess dafür genannt werden muss, heisst in der Sprache der Apachen AuthType Basic. Dieser Ausdruck legt somit die Art der Authentifizierung fest. AuthType Basic überträgt allerding dass Passwort unverschlüsselt! Dafür wird diese Methode von allen geläufigen Browsern und betriebssystemen unterstützt.

Eine Authentifizierung könnte in .htaccess folgendermassen aussehen:

# Hier wird Authentifiziert
AuthType Basic
AuthName 'Authentication required'
AuthUserFile /home/xxxx/.htpasswds/htpasswd.12xxxxxxxxxxxxxxxx-03-xxx67

order deny,allow
allow from all
require valid-user


AuthType Basic wurde schon erläutert
AuthName 'blabla' ist ein beliebiger Text, welcher der Browser im Authentifizierungsfenster ausgibt
AuthUserFile ist der Pfad zum Passwortfile
order deny,allow heisst, dass zunächst mal das gesamte Verzeichnis nicht zugänglich sein soll.
allow from all mit dieser Zeile könnte man jetzt den Zugriff auf bestimmte IP Adressen beschränken, das wollten wir aber ja nicht.
require valid-user erzwingt nun die Abfrage eines gültigen Usernamens und eines dazugehörenden Passwortes.

Was jetzt noch fehlt, ist die Ersellung einer Passwort-Datei. Wie gesagt, die meisten Hoster bieten Tools an, um Verzeichnisse zu schützen, und solche Tools sind sicherlich der einfachste Weg, auf einem Server einen geschützten Bereich anzulegen. Passwörter und Usernamen werden automatisch so verschlüsselt und in eine Datei (meist ausserhalb des Roots der Seite) gepackt, dass sie vor fremden Augen geschützt sind.

Es geht aber auch von Hand. Allerdings muss man wissen, dass ein Indianer niemals seine Passwörter einfach so herumliegen lässt: Überfällt man den Apachen und greift nach seinem Medizinbeutel, wird man enttäuscht sein:
Häuptling der Apachen:$6$ZwDhDoul$LBS/rmRRZj1L.TkMHsxTQAgMQrbjC5IOM1RkHSF/0i2S9iayvsi9bv6.8sB8GPD8GqA6ockXBHWmySXKUz7Wj1 könnte man in seinem Medizinbeutel finden, das hilft aber nicht weiter, alles ausser dem Usernamen ist verschlüsselt.

Um ein solches File selber herzustellen, braucht man ein Tool. phpBB.de zum Beispiel stellt einen solchen Passwort-Generator zur Verfügung.
« Letzte Änderung: 12.09.2012, 09:33:11 von Curls »
** Curls your uncle **
found a typo? - keep it, there's no charge! (but no reward either)
Joomla! 3.0.0_beta1 Beta [ Ember ] 06-September-2012 14:00 GMT on localhost using: wampserver2.2e - PHP 5.4.3 - Apache 2.2.22 - MySQL 5.5.24

Re: (Work in progress) Tutorial Verzeichnisschutz mit .htaccess
« Antwort #1 am: 11.09.2012, 16:08:29 »
Hallo Chris,

viiiiiel zu ausführlich. Was wir brauchen ist eine Step by Step-Anleitung, das Hintergrundwissen ist dabei zu vernachlässigen. Etwa so: Zuerst benötigen wir ein Passwort -> Passwortgenerator -> das folgende kopieren.
Nun erstellen wir eine .htaccess - Datei -> benötigen Editor ohne BOM ->
IM Ftp-client (beispiel Filezilla), alle versteckten Dateien sichtbar machen -> in das Unterverzeichnis hochladen
wir benötigen den absoluten Pfad -> wie finde ich den?
Wie setze ich die .htaccess ein ->1.) standalone  + unveränderte J! htaccess.txt  oder 2.) Passwortschutz als Zusatz in die J! .htaccess

so ungefähr.


.htaccess Passwort-schutz sieht i.d.R. so aus (ausreichend um Verzeichnis zu schützen, oder?) hier administrator verzeichnis

Zitat
AuthName "PRIVAT"
AuthType Basic
AuthUserFile /absoluterpfad/administrator/.htpasswd
require valid-user

Also mehr praktisch (am idealsten mit Screenshots) - keine Theorie.
« Letzte Änderung: 11.09.2012, 16:13:38 von La Geek »

Verfasst von Chris Hoefliger aka Curly Brackets am 11. September 2012
Grundlage für diesen Artikel bilded das Tutorial über .htaccess - Dinge die dort erklärt werden, finden hier keine Wiederholung.

Eine kleine Vorbemerkung: Gilt es, eine ganze Joomla! Installation zu schützen, kann man sie als Admin im Backend Offline schalten. Der Besucher sieht dann keinen Inhalt, sondern nur einen (editierbaren) Text, dass die Seite momentan nicht Verfügbar ist - sowie eine Login-Box. Sobald man sich als Admin anmeldet, wird die Seite sichtbar. Allerdings macht Nicholas Dionysopoulos im Joomla! Magazine darauf aufmerksam, dass diese Methode löchrig ist. ('Tschuldigung, der Artikel ist nicht wirklich in Deutsch, sondern in Googeutsch, will sagen automatisch übersetzt...)

Deshalb sollte man bei Joomla! Installationen, die nicht für den produktiven Einsatz geeignet sind, besser auf Nummer sicher gehen und das gesamte Verzeichnis mit einem Passwortschutz à la .htaccess versehen.
Ein Verzeichnisschutz (oder: Zugriffsbeschränkung) per .htaccess lässt sich prinzipiell ziemlich einfach realisieren:

Dazu braucht es zwei Dinge:
  • Eine .htaccess Datei, die den Server anweist, das Verzeichnis zu schützen
  • Eine Authentifizierungs-Datei, in der steht, welche User berechtigt sind, auf die Inhalte zuzugreifen und mit welchen Passwörtern sie sich zu Authentifizieren haben

Diese Datei (normalerweise wird sie .htpasswd genannt) kann auf zwei Arten erstellt werden:
  • Wir benützen das von unserem Hoster für diesen Zweck zur Verfügung gestellte Tool (im Hosting Panel zu finden). Dieser Weg ist die Rundum-Sorglos Lösung, weil man sich um nichts kümmern muss, die .htaccess wird ins richtige Verzeichnis gestellt, die Passwortdatei an einem sicheren Ort parkiert gelangt.
  • Wir benützen ein Tool wie es zum Beispiel dieses hier 1)

Im Verzeichnis, welches von fremden Zugriff geschützt werden soll, generiert man eine Datei (Achtung: einen anständigen Editor verwenden! Siehe Tutorial .htaccess) mit dem Namen .htaccess und folgendem Inhalt:

# Geschützter Bereich
AuthType Basic
AuthName 'Privat'
AuthUserFile /home/xxxx/.htpasswds/htpasswd.12xxxxxxxxxxxxxxxx-03-xxx67

order deny,allow
allow from all
require valid-user


Erklärungen:
AuthType Basic ist eine Authentifizierungsmethode.
AuthName 'Privat' ist ein beliebiger Text, welcher der Browser im Authentifizierungsfenster ausgibt.
AuthUserFile ist der Pfad zum Passwortfile (siehe unten)
order deny,allow heisst, dass zunächst mal das gesamte Verzeichnis nicht zugänglich sein soll.
allow from all mit dieser Zeile könnte man jetzt den Zugriff auf bestimmte IP Adressen beschränken, das macht hier keinen Sinn.
require valid-user erzwingt nun die Abfrage eines gültigen Usernamens und eines dazugehörenden Passwortes.

Das Authentifizierungsdatei (mit dem Usernamen/Passwort) gehört in ein Verzeichnis, auf welches Der Webserver Zugriff hat (und der Browser lieber nicht). Hierzu muss man aber dem Apatchen den exakt genauen Pfad zu dieser Datei angeben, was nicht ganz so einfach ist, wie man vielleicht vermutet. Aus Sicht eines Browsers lautet der Pfad vielleicht www .meinedomain.de/joomla/geheim/.htpasswd oder sowas; der Webserver sieht die Dinge aber aus einer völlig anderen Perspektive. Er muss wissen, wie der Pfad aus seiner Sicht heisst. Das wird dann völlig anders aussehen, z.B. /home/username/www/geheim/.htpasswd. Es gilt also, diesen Pfad herauszufinden. Bevor man nun alte Mails durchwühlt, um nachzusehen ob der Hoster nicht damals solche Infos mitgeliefert hat: Mit einem einfachen PHP Script kann der Pfad ermittelt werden.

Man schreibt eine Datei mit folgendem Inhalt

<?php echo $_SERVER['DOCUMENT_ROOT']; ?>

speichert diese Datei mit einem sinnvollen Namen, wie docroot.php und legt sie auf den Server. Dann ruft man sie auf und kriegt den Pfad zum Server Root zurück. Das ist nun der Pfad bis zum Root der Webseite - aus Sicht des Apachen. Allerdings muss jetzt aber noch ergänzt werden, der Teil bis zur Passwortdatei fehlt noch und muss von Hand ergänzt werden.

Der Verzeichnisschutz gilt für das Verzeichnis, in dem die Datei steht und in allen Unterverzeichnissen - solange dort keine .htaccess steht, die den Schutz wieder aufhebt.

1)Eine Google-Suche nennt eine ganze Heerschar von weiteren Passwort-Generatoren.

« Letzte Änderung: 12.09.2012, 09:51:09 von Curls »
** Curls your uncle **
found a typo? - keep it, there's no charge! (but no reward either)
Joomla! 3.0.0_beta1 Beta [ Ember ] 06-September-2012 14:00 GMT on localhost using: wampserver2.2e - PHP 5.4.3 - Apache 2.2.22 - MySQL 5.5.24

Re: (Work in progress) Tutorial Verzeichnisschutz mit .htaccess
« Antwort #3 am: 11.09.2012, 16:40:55 »
Manuell...... zuuuu  kompliziert.
Ich benutze immer den:

http://www.smartwebdesign.ch/services/passwd.php

der funzt auch.

Re: (Work in progress) Tutorial Verzeichnisschutz mit .htaccess
« Antwort #4 am: 11.09.2012, 16:44:38 »
Was deiner nicht kann, sind Umlaute - zumindest im Usernamen  ;)
Aber. von Hand heisst eigentlich nur, dass die konfig händisch gemacht wird, nicht dass man das passwort mit Bleistift und papier verschlüsselt, ich seh nicht genau, was du meinst...
** Curls your uncle **
found a typo? - keep it, there's no charge! (but no reward either)
Joomla! 3.0.0_beta1 Beta [ Ember ] 06-September-2012 14:00 GMT on localhost using: wampserver2.2e - PHP 5.4.3 - Apache 2.2.22 - MySQL 5.5.24

Re: (Work in progress) Tutorial Verzeichnisschutz mit .htaccess
« Antwort #5 am: 11.09.2012, 16:51:12 »
Was deiner nicht kann, sind Umlaute - zumindest im Usernamen  ;)

Braucht man Umlaute für einen Verzeichnisschutz? ;) Ich persönlich finde das schon kompliziert, was du da geschrieben hast, oder anders, ich verstehe das nicht.

Zitat
Es geht aber auch von Hand. Allerdings muss man wissen, dass ein Indianer niemals seine Passwörter einfach so herumliegen lässt: Überfällt man den Apachen und greift nach seinem Medizinbeutel, wird man enttäuscht sein:
Häuptling der Apachen:$6$ZwDhDoul$LBS/rmRRZj1L.TkMHsxTQAgMQrbjC5IOM1RkHSF/0i2S9iayvsi9bv6.8sB8GPD8GqA6ockXBHWmySXKUz7Wj1 könnte man in seinem Medizinbeutel finden, das hilft aber nicht weiter, alles ausser dem Usernamen ist verschlüsselt.

Re: (Work in progress) Tutorial Verzeichnisschutz mit .htaccess
« Antwort #6 am: 11.09.2012, 16:55:49 »
Möglicherweise muss ich das umformulieren. Was ich meine, ist folgendes:
Ein Passwortfile enthält niemals Passwörter im Klartext, sondern normalerweise einen Hash des Passworts.

Gut, wenn du mir sagst dass das nicht  verständlich ist. Ich werd mir überlegen, wie ich das klarer formulieren kann. Ich möchte nicht der Einzige sein, der auch lesen kann, was er geschrieben hat...
** Curls your uncle **
found a typo? - keep it, there's no charge! (but no reward either)
Joomla! 3.0.0_beta1 Beta [ Ember ] 06-September-2012 14:00 GMT on localhost using: wampserver2.2e - PHP 5.4.3 - Apache 2.2.22 - MySQL 5.5.24

Re: (Work in progress) Tutorial Verzeichnisschutz mit .htaccess
« Antwort #7 am: 11.09.2012, 17:04:23 »
Schaus nochmals an, ist die Sache jetzt verständlicher?
** Curls your uncle **
found a typo? - keep it, there's no charge! (but no reward either)
Joomla! 3.0.0_beta1 Beta [ Ember ] 06-September-2012 14:00 GMT on localhost using: wampserver2.2e - PHP 5.4.3 - Apache 2.2.22 - MySQL 5.5.24

OKEE, ich versuchs zu kürzen.



Verfasst von Chris Hoefliger aka Curly Brackets am 11. September 2012
Grundlage für diesen Artikel bilded das Tutorial über .htaccess - Dinge die dort erklärt werden, finden hier keine Wiederholung.

Ein Verzeichnisschutz (oder auch eine Zugriffsbeschränkung) per .htaccess lässt sich prinzipiell ziemlich einfach realisieren:
Im Verzeichnis, welches von fremden Zugriff geschützt werden soll, generiert man eine Datei (Achtung: einen anständigen Editor verwenden! Siehe Tutorial .htaccess) mit dem Namen .htaccess und folgendem Inhalt:

# Geschützter Bereich
AuthType Basic
AuthName 'Privat'
AuthUserFile /home/xxxx/.htpasswds/htpasswd.12xxxxxxxxxxxxxxxx-03-xxx67

order deny,allow
allow from all
require valid-user


AuthType Basic ist eine Authentifizierungsmethode.
AuthName 'Privat' ist ein beliebiger Text, welcher der Browser im Authentifizierungsfenster ausgibt.
AuthUserFile ist der Pfad zum Passwortfile (siehe unten. Achtung: Der Webserver braucht zugriff auf diese Datei)
order deny,allow heisst, dass zunächst mal das gesamte Verzeichnis nicht zugänglich sein soll.
allow from all mit dieser Zeile könnte man jetzt den Zugriff auf bestimmte IP Adressen beschränken, das macht hier keinen Sinn.
require valid-user erzwingt nun die Abfrage eines gültigen Usernamens und eines dazugehörenden Passwortes.

Was jetzt noch fehlt, ist die Erstellung einer Passwort-Datei. Die meisten Hoster bieten Tools an, um Verzeichnisse zu schützen, und solche Tools sind sicherlich der einfachste und sicherste Weg, auf einem Server einen geschützten Bereich anzulegen. Passwörter werden automatisch verschlüsselt und in eine Datei (meist sogar noch ausserhalb des Roots der Seite - aber immer noch im Blickfeld des Apache) gepackt, sodass sie vor fremden Augen geschützt sind.

Es geht aber auch von Hand. Für die Erzeugung eines Passworts (respektive eines Passwort-Files) muss allerdings zu einem Tool gegriffen werden. phpBB.de stellt einen Passwort-Generator zur Vefügung. Eine Google-Suche nennt eine ganze Heerschar von weiteren Passwort-Generatoren ...

Der Verzeichnisschutz gilt für das Verzeichnis, in dem die Datei steht und in allen Unterverzeichnissen - solange dort keine .htaccess steht, die den Schutz wieder aufhebt.
** Curls your uncle **
found a typo? - keep it, there's no charge! (but no reward either)
Joomla! 3.0.0_beta1 Beta [ Ember ] 06-September-2012 14:00 GMT on localhost using: wampserver2.2e - PHP 5.4.3 - Apache 2.2.22 - MySQL 5.5.24

Re: (Work in progress) Tutorial Verzeichnisschutz mit .htaccess
« Antwort #9 am: 11.09.2012, 17:07:56 »
Am hilfreichsten wäre das Folgende:

"Als erstes brauche ich ein verschlüsseltes Pw. Um diese zu erstellen, gibt es zwei Möglichkeiten:

1.) der Provider bietet das an, aufzufinden im Kundenpanel
2.) ich nutze einen Passwortgenerator.

Sehen wir uns den zweiten Schritt an -> Aufrufen er Website, eingeben, generieren, kopieren

Wir haben nun das verschl. Pw


Ferner benötigen wir noch den absoluten Pfad. Dazu laden wir diese Datei ins Verzeichnis und rufen sie per browser auf.

Wir haben nun den absoluten Pfad
Nun erstellen wir eine .htaccess mit notepad++. Dazu geben wir das folgende ein.
als Zweites erstellen wir die .htpasswd , dazu geben wir das ein:

und laden beides per FTP in das Verzeichnis hoch.



Wozu die auth... sind,etc.., ist in dem Zusammenhang vollkommen unwichtig. Es soll ja eine Anleitung sein, kein Grundkurs :)



PS: Hab ich geschrieben, während du einen Beitrag verfasst hast, ich lass das jetzt erst mal so stehen, ob es auf deinen Beitrag passt, schau ich mir hinterher an :)

Re: (Work in progress) Tutorial Verzeichnisschutz mit .htaccess
« Antwort #10 am: 11.09.2012, 17:29:17 »
Ich lass meinen Beitrag mal auch so stehen...
** Curls your uncle **
found a typo? - keep it, there's no charge! (but no reward either)
Joomla! 3.0.0_beta1 Beta [ Ember ] 06-September-2012 14:00 GMT on localhost using: wampserver2.2e - PHP 5.4.3 - Apache 2.2.22 - MySQL 5.5.24

Re: (Work in progress) Tutorial Verzeichnisschutz mit .htaccess
« Antwort #11 am: 11.09.2012, 17:30:45 »
Zwischenfrage: Funktioniert der phpbb.de Passwort generator? Ich habe schon einige gehabt, da konnte man seine .htaccess vergessen.

Nachtrag: ich habe auch schon Generatoren bei Providern erlebt, die eine J! oder WP .htaccess zerschießen :(
« Letzte Änderung: 11.09.2012, 17:32:55 von La Geek »

Re: (Work in progress) Tutorial Verzeichnisschutz mit .htaccess
« Antwort #12 am: 11.09.2012, 17:32:25 »
Gute Frage, ich probier das gleich mal...
** Curls your uncle **
found a typo? - keep it, there's no charge! (but no reward either)
Joomla! 3.0.0_beta1 Beta [ Ember ] 06-September-2012 14:00 GMT on localhost using: wampserver2.2e - PHP 5.4.3 - Apache 2.2.22 - MySQL 5.5.24

Re: (Work in progress) Tutorial Verzeichnisschutz mit .htaccess
« Antwort #13 am: 11.09.2012, 18:27:52 »
Ich lass meinen Beitrag mal auch so stehen...
Finde ich schon viel besser. Die Erlärungen zu auth könnte man auf der HTML-Seite als Info-kasten bringen. Was ich noch vermisse, ist "der absolute Pfad". Den braucht man ja auch. Da ist schon eine "datei to go" :)

http://software-lupe.de/component/content/article/187-s-l-tipps/sonstiges/331-der-absolute-pfad

Mal sehen, vielleicht haben Andere auch eine Meinung :).
« Letzte Änderung: 11.09.2012, 18:30:57 von La Geek »

Re: (Work in progress) Tutorial Verzeichnisschutz mit .htaccess
« Antwort #14 am: 11.09.2012, 19:00:08 »
Genau deshalb bin ich im Moment noch etwas zurückhaltend, ich glaub das wäre der Wichtigste Punkt. Ich brauch noch ein wenig Zeit...
** Curls your uncle **
found a typo? - keep it, there's no charge! (but no reward either)
Joomla! 3.0.0_beta1 Beta [ Ember ] 06-September-2012 14:00 GMT on localhost using: wampserver2.2e - PHP 5.4.3 - Apache 2.2.22 - MySQL 5.5.24

 

BloQcs design by Bloc
| SMF © 2011, Simple Machines
Joomla-Bugs.de is not affiliated with or endorsed by The Joomla! Project™. Use of the Joomla!® name, symbol, logo and related trademarks is permitted under a limited license granted by Open Source Matters, Inc.