• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Zugriff auf Apache 2.4 Server beschränken

f.gruber

Hacker
Hallo,
möchte den Zugriff von bestimmten Robots auf meinen Server verhindern und dachte, es geht so einfach:
Code:
<Directory /srv/www/htdocs>
      ...
      Require all granted
      Require not host ahrefs.com
</Directory>

Wegen der Zeile
Code:
Require not host ahrefs.com
verweigert nun der Server den Start. Alles Googeln hat mich nur noch mehr verwirrt. Bitte um Hilfe!
 

marce

Guru
Rein von der Syntax her sehe ich übermüdet und hungrig keinen Fehler.

Was meckert der Apache denn als Fehler an?
 
OP
F

f.gruber

Hacker
marce schrieb:
Was meckert der Apache denn als Fehler an?
Code:
apache2.service - The Apache Webserver
...
Dez 17 11:59:21 t2792 start_apache2[9807]: AH00526: Syntax error on line 21 of /etc/apache2/default-server.conf:
Dez 17 11:59:21 t2792 start_apache2[9807]: negative Require directive has no effect in <RequireAny> directive
Die Zeile 21 ist folgende:
Code:
Require not host ahrefs.com
Ich habe die Direktive in default-server.conf hier stehen:
Code:
<VirtualHost xx.xx.xx.xx:80>
   DocumentRoot /srv/www/htdocs
   ...
   <Directory /srv/www/htdocs>
      Options Indexes FollowSymLinks
      AllowOverride None
      Require all granted
      Require not host ahrefs.com
  </Directory>
  ...
Steht das am falschen Platz? Ich kapier leider nicht, wie das jetzt mit Apache 2.4 funktioniert.
 

marce

Guru
https://httpd.apache.org/docs/2.4/mod/mod_authz_core.html#logic

Ich würde mal vermuten, daß "irgendwo" in der restlichen Config da was entsprechendes steht.
 

panamajo

Guru
f.gruber schrieb:
Code:
apache2.service - The Apache Webserver
...
Dez 17 11:59:21 t2792 start_apache2[9807]: AH00526: Syntax error on line 21 of /etc/apache2/default-server.conf:
Dez 17 11:59:21 t2792 start_apache2[9807]: negative Require directive has no effect in <RequireAny> directive
Stell die Require Angaben in einen RequireAll Kontext:
Code:
<RequireAll>
	Require ...
	Require not host foo.bar
</RequireAll>

AFAICS ist der Default Kontext RequireAny und da ergibt eine weitere Regel nach "Require all granted" keinen Sinn. Ganz schön pingelig der Indianer...
 
Oben