Apache2 und Verzeichnisschutz

#0
19.08.2004, 08:19
...neu hier

Beiträge: 8
#1 Hallo,

ich verwende SUSE Linux 9.1 prof und Apache2.

Ich möchte ein Verzeichnis "Sicherheit", das unter /srv/www/htdocs liegt, mit einem Passwortschutz versehen.
Deshalb habe ich in diesem Verzeichnis eine Datei ".htaccess" (640) mit folgendem Inhalt angelegt:

AuthUserFile /etc/apache2/.htpasswd
AuthName "squid-reports"
AuthType Basic
require valid-user
<Limit GET>
require user admin
</Limit>

Im Verzeichnis /etc/apache2 liegt die Datei .htpasswd (644) mit dem Inhalt: admin:"verschl. Passwort"

Inder Datei /etc/apache2/httpd.conf habe ich nur die folgenden Zeilen eingefügt:
<Directory /Sicherheit>
Options None
AllowOverride all
Order deny,allow
Deny from all
</Directory>

Trotzdem kann da noch jeder ohne Passworteingabe hineinsehen.
Was mache ich jetzt wieder falsch?

MfG

Rudi
Seitenanfang Seitenende
19.08.2004, 13:25
Member
Avatar Xeper

Beiträge: 5291
#2 In der .htaccess muss rein:

Code

AuthType Basic
AuthName "squid-reports"
AuthUserFile /etc/apache2/.htpasswd
AuthGroupFile /dev/null
require valid-user
Das da was von <Limit> reinkommt hab ich übrigens noch nie gehört. Könnte ja daran liegen - weiß ich nicht. Ich wüßte auch nicht was das großartig bewirken sollte weil ja das require schon davor festgelegt wurde - valid-user, heißt halt irgendein user der mit der .htpasswd übereinstimmt.
.htaccess und .htpasswd müssen vom apache lesbar sein.

Und das kommt in die httpd.conf:

Code

<Directory /Sicherheit>
AllowOverride AuthConfig
Options IncludesNoExec
Order allow,deny
Allow from all
</Directory>
Ich versteh gar nicht warum du da "Deny from all" reinschreibst, dann kann ja sowieso gar niemand auf das Verzeichnis zugreifen - ist ja nicht der Sinn der Sache.
__________
E-Mail: therion at ninth-art dot de
IRC: megatherion @ Freenode
Seitenanfang Seitenende
19.08.2004, 23:12
Member
Avatar Emba

Beiträge: 907
#3 laut apache doku sollte man nicht mit der .htaccess arbeiten, wenn man vollzugriff auf die httpd.conf hat - die .htaccess dient in fällen, in denen man nicht der admin des servers ist

desweiteren ist darauf zu achten, dass man die .htaccess gegen zugriffe schützt, wie dies standardmässig in der httpd.conf mit einem regex der fall ist

greez
Seitenanfang Seitenende
20.08.2004, 09:32
...neu hier

Themenstarter

Beiträge: 8
#4 Hallo,

ich habe die Änderungen gemacht aber es hat keinen Erfolg gebracht.
Das Verzeichnis ist immer noch für alle zugänglich.

Wie sehen denn die Einträge in der httpd.conf aus, wenn ich die .htaccess nicht benutzen soll?

MfG

Rudi
Seitenanfang Seitenende
20.08.2004, 11:11
Member
Avatar Emba

Beiträge: 907
#5 >Wie sehen denn die Einträge in der httpd.conf aus, wenn ich die .htaccess >nicht benutzen soll?

http://httpd.apache.org/docs-2.0/

greez
Seitenanfang Seitenende
20.08.2004, 12:09
...neu hier

Themenstarter

Beiträge: 8
#6 Ich habe jetzt die .htaccess wieder gelöscht und folgende Einträge in der httpd.conf stehen:

Include /etc/apache2/uid.conf
Include /etc/apache2/server-tuning.conf
ErrorLog /var/log/apache2/error_log
Include /etc/apache2/sysconfig.d/loadmodule.conf
Include /etc/apache2/listen.conf
Include /etc/apache2/mod_log_config.conf
Include /etc/apache2/sysconfig.d/global.conf
Include /etc/apache2/mod_status.conf
Include /etc/apache2/mod_info.conf
Include /etc/apache2/mod_usertrack.conf
Include /etc/apache2/mod_autoindex-defaults.conf
TypesConfig /etc/apache2/mime.types
DefaultType text/plain
Include /etc/apache2/mod_mime-defaults.conf
Include /etc/apache2/errors.conf
Include /etc/apache2/ssl-global.conf
<Directory />
Options All
AllowOverride None
Order deny,allow
Deny from All
</Directory>
AccessFileName .htaccess
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
DirectoryIndex index.html index.html.var
Include /etc/apache2/default-server.conf
Include /etc/apache2/sysconfig.d/include.conf
Include /etc/apache2/vhosts.d/*.conf

Es ist keine weitere Directory-Direktive und keine .htaccess mehr vorhanden.
Nach meinem beschrängten Verständnis sollte jetzt kein Zugriff auf irgendeineine URL mehr möglich sein, falls ich die Erläuterungen unter http://httpd.apache.org/docs-2.0/ richtig verstehe. Mein System bleibt allerdings weit offen wie ein Scheunentor. Wie kann das sein? Wr kann mir das erklären? Ich bin für jede Idee dankbar.

MfG

Rudi
Seitenanfang Seitenende
20.08.2004, 18:03
Member
Avatar Xeper

Beiträge: 5291
#7

Zitat

Mein System bleibt allerdings weit offen wie ein Scheunentor.
Was meinst du damit? Deine Regeln greifen nicht?
Schon mal in die error_log deines Apache's geschaut? - da stehen die wichtigsten und informativsten Dinge drin.
__________
E-Mail: therion at ninth-art dot de
IRC: megatherion @ Freenode
Seitenanfang Seitenende
23.08.2004, 09:03
...neu hier

Themenstarter

Beiträge: 8
#8 Genau so ist es. Ich habe eigentlich zur Zeit nur eine Regel definiert: Kein Zugriff auf die auf dem Server hinterlegten Seiten möglich.
<Directory />
Options All
AllowOverride None
Order deny,allow
Deny from All
</Directory>

Aber auch das geht nicht.

In der error_log steht nichts, was mir weiterhilft, da Apache davon ausgeht, dass alles in Ordnung ist.
Seitenanfang Seitenende
23.08.2004, 10:53
Member
Avatar Xeper

Beiträge: 5291
#9

Zitat

In der error_log steht nichts, was mir weiterhilft, da Apache davon ausgeht, dass alles in Ordnung ist.
Da behaupte ich jetzt, dass das nicht stimmt. In der error_log steht immer wenn ein Zugriff aufgrund einer Server Einstellung verweigert und/oder unterbunden wird.

Zitat

<Directory />
Options All
AllowOverride None
Order allow,deny
Allow from All
</Directory>
Ist bei mir auch "default behaviour", hat nichts für das Verzeichnis was du mit Passwort Schutz versehen willst, zu sagen. Du machst hier immer noch was falsch warum Deny from All? und Order deny,allow? Dann kann ja niemand drauf zugreifen - das verstehe ich nicht.

Allerdings benutz ich auch .htaccess

Hier mal ein Beispiel eines Verzeichnises das durch Passwort Schutz gesichert ist:

Zitat

<Directory "/usr/local/apache2/htdocs/phpmyadmin">
AllowOverride AuthConfig
Options IncludesNoExec
Order allow,deny
Allow from all
SSLRequireSSL
</Directory>
und in der .htaccess

Zitat

AuthType Basic
AuthName "phpmyadmin - a restricted area"
AuthUserFile /usr/local/apache2/htdocs/phpmyadmin/.htpasswd
AuthGroupFile /dev/null
require valid-user
Und in der .htpasswd natürlich das nötige, was man halt so mit htpasswd erstellen kann ;)
__________
E-Mail: therion at ninth-art dot de
IRC: megatherion @ Freenode
Dieser Beitrag wurde am 23.08.2004 um 10:55 Uhr von Xeper editiert.
Seitenanfang Seitenende
25.08.2004, 11:44
...neu hier

Themenstarter

Beiträge: 8
#10

Zitat

Xeper postete

Zitat

In der error_log steht nichts, was mir weiterhilft, da Apache davon ausgeht, dass alles in Ordnung ist.
Da behaupte ich jetzt, dass das nicht stimmt. In der error_log steht immer wenn ein Zugriff aufgrund einer Server Einstellung verweigert und/oder unterbunden wird.
Apache schreibt deshalb nichts in die error_log, da jeder auf alle URL's zugreifen kann und niemand abgewiesen wird.

Zitat

Xeper postete

Zitat

<Directory />
Options All
AllowOverride None
Order allow,deny
Allow from All
</Directory>
Ist bei mir auch "default behaviour", hat nichts für das Verzeichnis was du mit Passwort Schutz versehen willst, zu sagen. Du machst hier immer noch was falsch warum Deny from All? und Order deny,allow? Dann kann ja niemand drauf zugreifen - das verstehe ich nicht.

Allerdings benutz ich auch .htaccess

Hier mal ein Beispiel eines Verzeichnises das durch Passwort Schutz gesichert ist:

Zitat

<Directory "/usr/local/apache2/htdocs/phpmyadmin">
AllowOverride AuthConfig
Options IncludesNoExec
Order allow,deny
Allow from all
SSLRequireSSL
</Directory>
und in der .htaccess

Zitat

AuthType Basic
AuthName "phpmyadmin - a restricted area"
AuthUserFile /usr/local/apache2/htdocs/phpmyadmin/.htpasswd
AuthGroupFile /dev/null
require valid-user
Und in der .htpasswd natürlich das nötige, was man halt so mit htpasswd erstellen kann ;)
So was habe ich auch schon probiert. Hat auch nicht funktioniert, da die Datei .htaccess gar nicht gelesen wurde. Das habe ich durch den Eintrag einer Schrottzeile in der .htaccess heraugefunden.

Ich habe aber jetzt durch einen Tip in enem anderen Forum eine Lösung für mein Problem gefunden.
In der default-server.conf habe ich im Container <Directory /srv/www/htdocs den Eintrag für AllowOverride von None auf AuthConfig geändert und schon wurde die .htaccess gelesen. Durch die Schrottzeile in der .htaccess wurde beim Restart von Apache2 ein Fehlereintrag in der error_log erzeugt.
Nach Entfernen der Schrottzeile war dieses Verzeichnis durch ein Passwort geschützt.

Ich weiss zwar immer noch nicht, warum man die default-server.conf und nicht die httpd.conf editieren muss und wie die Einträge in der httpd.conf aussehen müssen, wenn man ohne .htaccess auskommen will, aber es klappt erstmal und wenn einer von Euch dazu noch einen Tip hat, würde ich mich freuen.

Vielen Dank für Eure Hilfe.

MfG

Rudi
Dieser Beitrag wurde am 25.08.2004 um 11:54 Uhr von rudibert editiert.
Seitenanfang Seitenende
04.05.2005, 07:36
...neu hier

Beiträge: 1
#11 Hallo Leute,

also eines verstehe ich nicht. Warum man ihr mit einer derart unübersichtlichen httpd.conf vom Suse herumexpiremtiert. Aber das soll keine Kritik sein, will Euch nur sagen, dass der Parameter "AllowOverride None" grundsätzlich verbietet, dass eine .htaccess Datei gelesen und zum ändern von Parametern des betreffenden <Directory> Containers genutzt werden kann. Das schließt den Passwortschutz mit ein.
Seitenanfang Seitenende
Um auf dieses Thema zu ANTWORTEN
bitte erst » hier kostenlos registrieren!!

Folgende Themen könnten Dich auch interessieren:
  • »