AH01630: client denied by server configuration

Wie nervig. Ein Ubuntu bzw eine Apache Update und formals problemlose laufende Apache Konfigurationen zeigen ein unschönes Forbidden You don’t have permission to access / on this server.

ah01630-client-denied-by-server-configuration

Und im Log steht nur:
AH01630: client denied by server configuration /der/Pfad/zum/vhost

Ursache: 

Nach ein wenig Suche findet sich die Lösung  im Wiki von Apache.org: http://wiki.apache.org/httpd/ClientDeniedByServerConfiguration und unter  http://httpd.apache.org/docs/2.4/upgrading.html#access

In 2.2, access control based on client hostname, IP address, and other characteristics of client requests was done using the directives Order, Allow, Deny, and Satisfy.

In 2.4, such access control is done in the same way as other authorization checks, using the new module mod_authz_host.

The new directive is Require:

2.2 configuration:

Order allow,deny
Allow from all

2.4 configuration:

Require all granted

In Apache HTTPD 2.3 wurde im Modul mod_authz_core eine Änderung gemacht, die die Direktive “Allow from all” wurde durch “Require all granted” bzw. “Deny from all” durch “Require all denied” ersetzt.
Und (wichtig) “Order allow,deny” fliegt raus

 

Lösung:

Also einfach in der vhost Conf alle “Allow from all” durch “Require all granted” ersetzten

Beispiel: Alt unter Apache 2.2:

 
  Order deny,allow
  Deny from all

Muss geändert werden in Apache 2.4:

 
Require all denied

Viele Config Files auf einmal anpassen

Wenn man viele einzelne Config-Files hat macht das natürlich keinen Spaß alle von Hand zu ändern.
Als Admin scriptet man das kurz:

find -type f -exec sed -i 's/Allow from all/Require all granted/gi' {} \;
find -type f -exec sed -i 's/Order allow,deny//gi' {} \;

find -type f -exec sed -i 's/Deny from all/Require all denied/gi' {} \;
find -type f -exec sed -i 's/Order deny,allow//gi' {} \;

Mehrere Apache Versionen gleichzeitig betreiben

Wenn man mehrere Apache Versionen gleichzeitig betreibt oder sie automatisch generiert empfiehlt sich folgende Lösung:

<Directory "/opt/AppDynamics/hg-cgi-bin/certs/pkcs12/">
# Options hier einfügen zB
# Options Indexes MultiViews
 AllowOverride None
 <IfModule !mod_access_compat.c>
 Require all granted
 Require ip 123.113.0.0/255.255.0.0
 </IfModule>
 <IfModule mod_access_compat.c>
 Order allow,deny
 Allow from all
 Allow from 123.113
 </IfModule>
</Directory>

Sperrig zu lesen aber funktioniert

1 Kommentar

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert