Ordner mit Passswort schützen
Linuchs
- html
- sonstiges
Moin,
auf meinem Linux-Server möchte ich einen Ordner und seine Unterordner mit einem Passwort gegen fremden Aufruf schützen. Es kommt die Meldung
Internal Server Error
.../musik/.htaccess
AuthUserFile /opt/users/www/php/muster.de/musik/.htpasswd
AuthGroupFile /dev/null
AuthName "Geschützer Bereich "
AuthType Basic
<Limit GET POST PUT>
require valid-user
deny from all
Satisfy Any
</Limit>
.../musik/.htpasswd
saschi:uR5hMXxicjYAQ
Kalle:$apr1$d.Qjukyv$rrvy428pjTCcGIYq0VwZZ.
Der erste User stammt aus einer Datei von 2009 (anderes Projekt, anderer Server), das Passwort des zweiten habe ich heute generiert mit http://www.htaccesstools.com/htpasswd-generator/ Wieso sind die so unterschiedlich lang?
Der Provider ist TwooIt, in meinem FTP-Programm heisst der Ordner /muster.de/musik mit phpinfo() sehe ich unter _SERVER["PWD"] den Wert /opt/users/www/php/muster.de
Wie schütze ich diesen Ordner erfolgreich?
Gruß, Linuchs
Tach!
auf meinem Linux-Server möchte ich einen Ordner und seine Unterordner mit einem Passwort gegen fremden Aufruf schützen. Es kommt die Meldung
Internal Server Error
Schau ins ErrorLog des Servers nach der konkreten Meldung.
Der erste User stammt aus einer Datei von 2009 (anderes Projekt, anderer Server), das Passwort des zweiten habe ich heute generiert mit http://www.htaccesstools.com/htpasswd-generator/ Wieso sind die so unterschiedlich lang?
Unterschiedliche Verschlüsslungsmethoden. Heutzutage macht man das besser als damals.
Wie schütze ich diesen Ordner erfolgreich?
Mit den richtigen Direktiven. Vielleicht hast du einen 2.4er Apachen, da ist das anders zu notieren als beim 2.2er.
dedlfix.
Hallo dedlfix,
Schau ins ErrorLog des Servers nach der konkreten Meldung.
Wo ist das? Das Verzeichnis cgi-bin ist leer. Geprüft mit Filezilla. Unter dem Suchbegriff error
gibt's bei phpinfo keine Ordner- oder Datei-Angabe.
Unter Core => error_log steht no value
(local value) und no value
(master value) und log_errors = Off
Mit den richtigen Direktiven. Vielleicht hast du einen 2.4er Apachen, da ist das anders zu notieren als beim 2.2er.
Ja, Apache/2.4.26 (Unix) OpenSSL/1.0.1t mod_fcgid/2.3.9
Hier die komplette Meldung, wenn ich den geschützten Ordner aufrufe:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at webmaster@osmer.de to inform them of the time this error occurred, and the actions you performed just before this error.
More information about this error may be available in the server error log.
Ich kann also mit der momentanen Konfiguration keinen Passwortschutz einrichten?
Linuchs
Tach!
Schau ins ErrorLog des Servers nach der konkreten Meldung.
Wo ist das?
Das ist eine Konfigurationssache des Apachen. Vielleicht ist es unter /var/log/apache/ oder /var/log/httpd/ oder ganz woanders. Da musst du gegebenenfalls deinen Administrator befragen. Bei einigen Hostern kommt man auch gar nichts ans Error-Log.
Das Verzeichnis cgi-bin ist leer.
Das ist ja auch kein Logfile-Verzeichnis.
Geprüft mit Filezilla. Unter dem Suchbegriff
error
gibt's bei phpinfo keine Ordner- oder Datei-Angabe.
PHP und dessen Einstellungen haben damit gar nichts zu tun.
Mit den richtigen Direktiven. Vielleicht hast du einen 2.4er Apachen, da ist das anders zu notieren als beim 2.2er.
Ja, Apache/2.4.26 (Unix) OpenSSL/1.0.1t mod_fcgid/2.3.9
Dann schau mal in die Dokumentation des Apachen, wie man das jetzt machen muss.
Hier die komplette Meldung, wenn ich den geschützten Ordner aufrufe:
500er Fehler sind generell nichtssagend in Richtung Webseitenbesucher. Da hilft auch kein vollständiger nichtssagender Text. Nur das Error-Log gibt Auskunft über die genaue Ursache.
More information about this error may be available in the server error log.
Das ist der einzige zielweisende Satz in dem ganze Text.
Ich kann also mit der momentanen Konfiguration keinen Passwortschutz einrichten?
Doch, mit den Direktiven entsprechend deiner Version vom Webserver.
dedlfix.
Schau ins ErrorLog des Servers nach der konkreten Meldung.
Wo ist das?
Da wo es in der Serverkonfiguration konfiguriert ist.
Das Verzeichnis cgi-bin ist leer.
Das wäre auch ein schlechter Ort dafür, da gehören schließlich Programme hin.
Unter Core => error_log steht
no value
(local value) undno value
(master value) und log_errors = Off
Dann solltest du den Admin des Servers darum bitten, log_errors auf den (i.A.) sinnvolleren Wert On zu stellen. error_log kann ruhig leer bleiben, dann landen die Log-Ausgaben in STDERR und der Apache kümmert sich um den Rest (wo dessen Error-Log ist, s.o.).
Hallo Linuchs,
Hier die komplette Meldung, wenn ich den geschützten Ordner aufrufe:
Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator at webmaster@osmer.de to inform them of the time this error occurred, and the actions you performed just before this error. More information about this error may be available in the server error log.
Die 500er Meldungen sind absichtlich nichtssagend, damit man einem potenziellen Hacker nichts verrät. Nur wer nichts weiß, kann auch nichts verraten 😉
Bis demnächst
Matthias
saschi:uR5hMXxicjYAQ Kalle:$apr1$d.Qjukyv$rrvy428pjTCcGIYq0VwZZ.
Beides Passwörter sind schlecht, genauer: unsicher, "gehascht". Das Obere ist wohl MD5, das untere Apache-MD5. Der Apache 2.4 versteht mit bcyrypt "gehaschte" Passwörter, die auf folgende Weise erzeugt werden können:
PHP:
$apachepassword = password_hash( $password, PASSWORD_BCRYPT );
Ergebnis: etwas wie:
"$2y$10$fSdkqk5HVN8YjDAAWmAPQucFtNJI7GM2rlQFPCDhdr719HyfPV6Wy"
Shell:
user="hugo";
pass="hallo"
apachepasswordline=`htpasswd -Bbn "$user" "$pass"`
echo $apachepasswordline
Ergebnis: Etwas wie:
hugo:$2y$05$Stz/8OKhna7Iy4W3GbKW.OM4W2hrhJ5TGWQBHElaX04Ht5lkMFmR.
In den folgenden Zeilen mischst Du fröhlich alte und neue Syntax:
require valid-user # vor und nach 2.4 deny from all # vor 2.4 Satisfy Any # vor 2.4
Das geht, wenn überhaupt, nur wenn das Modul "mod_access_compat" installiert und aktiviert ist.