Error 403 - Zugriff verweigert!

bishbind

Registered User
Hallo,

ich habe gerade ein ziemlich lästiges Problem mit dem Aufruf von Dateien.

Das Szenario:

Ich habe im Web-Root einen Ordner "test" und einen mit dem Namen "home". Im Test-Ordner befindet sich die Datei "test.php" und im Ordner "home" eine "index.php". Wenn ich jetzt die "test.php" (http://xxx.de/test/test.php) aufrufe wird mir diese auch angezeigt. Wenn ich jetzt jedoch die "index.php" (http://xxx.de/home/index.php) aufrufe bekomme ich den Fehler 403.
Beide Ordner haben die gleichen Rechte (755) und auch die beiden PHP-Dateien gleichen sich von den Rechten her (644).

Ich weiß jetzt im Moment wirklich nicht wo ich den Fehler noch suchen soll, an den Dateirechten kann es ja nicht liegen da sie sich ja gleichen. Der Server läuft unter SuSE 9.0 mit Apache 2.0.48.

Wo könnte noch der Fehler sein?



Grüße

Christian
 
wie sieht es denn mit chmod aus? Könnte es sein, dass das besagte /home dir oder die index.php da drinnen einem anderen User gehört?
Keine Ahnung, wäre nur mal so eine spontane Idee, wenn du das z.b mal unter einem anderen User das angelegt hättest.

edit:
schonmal eine index.html im /home dir aufgerufen?
 
Last edited by a moderator:
Nein, da gleicht sich alles. Der Benutzer die Benutzergruppe und auch der Weg wie ich die Dateien hochgeladen habe. Ich kann wirklich keine Unterschiede feststellen.
 
Irgend etwas auffälliges in den Dateien access_log, error_log oder - sofern vorhanden - suexec.log?
Was ist der Inhalt von index.php? Was passiert, wenn du test.php in das Verzeichnis home kopierst?

mfG
Thorsten
 
Ich habe heute wieder soviel am Server rumgespielt das ich die billigsten Sachen wieder vergessen habe. Ich bitte um Entschuldigung :D .

In der error_log steht folgendes:

Code:
[Sat Jul 17 22:27:15 2004] [error] [client 217.230.229.157] Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /srv/www/htdocs/web1/html/home/index.php

Wenn ich die test.php ins home-Verzeichnis kopiere, bekomme ich die selbe 403-Meldung und auch im Logfile steht die selbe Meldung drin.

In der test.php steht die billiige phpinfo()-Abfrage drin. Die index.php ist Bestandteil vom PHPNuke VKP (das VKP ist die sichere Variante von PHPNuke :D ) PHP ist in der Version 4.3.3 auf dem Server installiert.

Was mich wundert ist noch folgendes. Die Dateien (sprich die index.php) habe ich auch auf den vServer kopiert wo das System vor einiger Zeit noch erfolgreich lief. Auf einmal funktioniert es auch dort nicht :confused: .
 
Ich habe heute gleich noch den Support von Strato getestet. Innerhalb von 2 Stunden hatte ich auch eine Antwort im Postfach.

Dort steht drin:

Der Fehlermeldung nach handelt es sich bei der Datei um einen Link. Um Apache anzuweien, symbolische Links aufzurufen, aktivieren Sie bitte die Funktion

FollowSymLinks

in Ihrer httpd.conf für das entsprechende Web.
Zufälligerweise bin ich auf die confixx_vhost.conf gestoßen dort steht folgendes drin:

<Directory "/srv/www/htdocs">
<Files ~ "^\.ht">
deny from all
</Files>
AllowOverride None
AllowOverride Indexes AuthConfig Limit FileInfo
Options None
Options +FollowSymLinks +Includes
</Directory>

<Directory "/srv/www/htdocs/web1/html">
Options -FollowSymLinks -SymLinksIfOwnerMatch
<IfModule mod_access.c>
Allow from all
</IfModule>
</Directory>
Blöderweise kann ich diese Datei nicht bearbeiten, da sie ja ständig überschrieben wird.
Wie kann ich jetzt trotzdem das Problem lösen?


Christian
 
Hallo Christion,
dafür gibt es zwei Möglichkeiten:
Entweder über Confixx (Admin->Einstellungen->httpd Spezial) oder direkt in der Datei /root/confixx/safe/confixx_vhost.conf.tmp

mfG
Thorsten
 
Über das httpd Spezial in confixx habe ich folgenden Eintrag hinzugefügt:

Options +FollowSymLinks
Das Problem besteht aber immernoch

Dann habe ich noch versucht die confixx_vhost.conf.tmp zu bearbeiten. Diese wird bei mir aber auch ständig überschrieben und meine Änderung geht so verloren.
 
Ein paar Fragen dazu:
  • Bleiben die Änderungen im Confixx Admin Menue erhalten? Wenn du also nach einiger Zeit die httpd Spezial Seite aufrufts, sind die Änderungen noch da?
  • Welchen httpd Spezial Eintrag hast du gewählt (eine Domain, einen Kunden, einen Anbieter, alle Anbieter)?
  • Lauft das Cofixx Update-Script?
Ich habe das ganze unter Confixx 3.0 erfolgreich zum Laufen bekommen. Und zwar auf Basis einer Domain.

mfG
Thorsten
 
Ja, die Änderungen die ich direkt über Confixx mache bleiben erhalten.

In den httpd Spezial gehe ich auf "einen Kunden ändern" und wähle dort "web1" aus. In dem Feld gebe ich dann "Options +FollowSymLinks " ein. Danach setze ich die Optionen "für alle Domains des Kunden setzen" und "für alle Domains, die vom Kunden angelegt werden, setzen".

Danach führe ich manuell das Update-Script aus.

Die confixx_vhost.conf sieht danach so aus:
#### CONFIXX APACHE VHOST FILE ####
### created Mon Jul 19 17:40:00 2004 ###

UseCanonicalName Off
php_admin_flag safe_mode On
php_admin_value safe_mode_exec_dir /srv/www/htdocs/empty/
LogFormat "%V:#:%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\"" confixx
LogFormat "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\"" confixx2
CustomLog |/root/confixx/pipelog.pl confixx

<Directory "/srv/www/htdocs">
<Files ~ "^\.ht">
deny from all
</Files>
AllowOverride None
AllowOverride Indexes AuthConfig Limit FileInfo
Options None
Options +FollowSymLinks +Includes
</Directory>

<Directory "/srv/www/htdocs/web1/html">
Options -FollowSymLinks -SymLinksIfOwnerMatch
<IfModule mod_access.c>
Allow from all
</IfModule>
</Directory>

<Directory "/srv/www/htdocs/web2/html">
Options -FollowSymLinks -SymLinksIfOwnerMatch
DirectoryIndex index.html index.htm
<IfModule mod_access.c>
Allow from all
</IfModule>
php_admin_flag engine off
<Files ~ "\.shtml$">
deny from all
</Files>
<Files ~ "\.(wml.*|wbmp)$">
deny from all
</Files>
</Directory>


<VirtualHost 81.169.155.66:80>
ServerName webmag24.de
ServerAlias www.webmag24.de web1.h1401.serverkompetenz.net

DocumentRoot /srv/www/htdocs/web1/html
SuexecUserGroup web1 ftponly
ScriptAlias /cgi-bin/ /srv/www/htdocs/web1/html/cgi-bin/
php_admin_value open_basedir /srv/www/htdocs/web1/
php_admin_value file_uploads 1
php_admin_value upload_tmp_dir /srv/www/htdocs/web1/phptmp/
Options +FollowSymLinks
</VirtualHost>

<VirtualHost 81.169.155.66:80>
ServerName ds01.webmag24.de
ServerAlias www.ds01.webmag24.de web2.h1401.serverkompetenz.net

DocumentRoot /srv/www/htdocs/web2/html
SuexecUserGroup web2 ftponly
</VirtualHost>
 
Last edited by a moderator:
Und warum schaltest du die Funktionen hier
Code:
Options -FollowSymLinks -SymLinksIfOwnerMatch
explizit wieder aus?

mfG
Thorsten
 
das tu ich ja nicht mit Absicht. Der Eintrag steht von Anfang an da und ich bekomme ihn irgendwie nicht raus bzw. kann ihn modifizieren. Sprich diesen Eintrag setzt Confixx beim Anlegen des webs automatisch.
 
OK, das war mein Fehler. Habe das nochmal mit meiner Kofiguration verglichen. Sieht für mich OK aus. Grundsätzlich werden SymLinks eingeschaltet, dann für alle anderen Web's bzw. Kunden/Domains ausgeschaltet und zuguterletzt für die benötigten wieder aktiviert. Den einzigen Unterschied den ich zu meiner Konfiguration erkennen kann, ist das mein +FollowSynLinks innerhalb einer <DIRECTORY></DIRECTORY> Anweisung steht. Das ist allerdings auch verständlich, weil ich die Änderung - httpd Spezial - nur für ein Unterverzeichnis einer (Sub-)doamin haben möchte.

mfG
Thorsten
 
Was mir gerade noch einfällt: Was sagt eigentlich das error_log? Wenn du Symbolischen Links folgen möchtest - beisst sich das eventuell mit openbasedir restrictions?

mfG
Thorsten
 
Ist mein Vorgang wie ich ihn vorhin gepostet habe überhaupt richtig oder liegt woanders der Fehler.
Ich würde viel lieber die Datei(en) direkt bearbeiten können. In dieser Situation ist Confixx wirklich etwas blöd.
 
Mir ist gerade noch etwas eingefallen. Das Problem tritt nicht nur bei PHP-Dateien sondern auch bei ganz normalen HTML-Dateien auf.

Wie meinst du das mit den Symbolischen Links?
 
Hallo Christian,
mach doch mal folgendes:
Auf der Konsole als root anmelden und tail -f /var/log/apache2/error_log eingeben. Als nächstes mit einem Webbrowser auf die entsprechenden URLs zugreifen. Die Fehlermeldungen auf der Konsole hier posten.

mfG
Thorsten

PS.: Ich gehe von einer aktuellen Strato Server Konfiguration aus. Apache2 & Logs unter /var/log/apache2.
 
Also, wenn ich den Befehl eingebe erhalte ich folgende Meldungen:

script not found or unable to stat
script not found or unable to stat
script not found or unable to stat
script not found or unable to stat
script not found or unable to stat
script not found or unable to stat
script not found or unable to stat
script not found or unable to stat
script not found or unable to stat
script not found or unable to stat
script not found or unable to stat
script not found or unable to stat
script not found or unable to stat
script not found or unable to stat
Danach kommt noch ne Meldung das einige Dateien nicht gefunden wurden was aber ganz normal ist, da die eigentliche Seite noch nicht online ist.

Mehr wird mir dort nicht angezeigt.
 
Last edited by a moderator:
Gibt es nicht eine Möglichkeit in einer höheren Ebene dieses FollowSymLinks zu aktivieren was auch von Confixx übernommen wird? Sprich das die Einstellungen von Confixx dazu unwirksam werden.
Ich denke sobald ich aus dem - ein + in der confixx_vhost.conf machen kann hat sich das Problem auch erledigt.
 
Du könntest folgendes nach dem include der confixx_vhost.conf in der httpd.conf einfügen. Damit sollte die Confixx-Einstellung aufgehoben werden.
Code:
<Directory /var/www/>
  Option +FollowSymLinks
</Directory>
Der Pfad muß evtl. angepasst werden.

huschi.
 
Back
Top