apache24, auth_basic_module für bestimmtes <Directory> deaktivieren

Columbo0815

Kaffeemann
Teammitglied
Moin,

ich habe hier www/apache24 laufen. Unter anderem läuft dort auch www/nextcloud. Der Apache und auch Nextcloud tun gute Dienste. Allerdings müllt mir nextcloud /var/log/httpd-error mit solchen Meldungen voll:

/var/log/httpd-error schrieb:
[Thu May 11 07:41:02.246081 2017] [auth_basic:error] [pid 43508] [client] AH01618: user foo not found: /dav/calendars/foo/...

Nach ein wenig Recherche komme ich zu folgendem Ergebnis: In der httpd.conf lade ich das Modul auth_basic_module. Dieses benötige ich auch für ein anderes <Directory>. Nextcloud bringt jedoch eine eigene Authentifizierung mit. Apache übergibt die Userdaten jedoch immer zuerst an auth_basic. Das Modul sagt "kenn ich nicht", weshalb Apache die Userdaten an die nächste Authentifizierung übergibt. Da ich kein weiteres auth_modul geladen habe, ist das in meinem Fall Nextcloud, was die Daten kennt und damit alles funktioniert.

Nach ein wenig Suche, habe ich "AuthBasicAuthoritative Off" gefunden (http://httpd.apache.org/docs/current/mod/mod_auth_basic.html). Soweit ich die Beschreibung richtig verstehe, kann ich auth_Basic damit explizit für Nextloud deaktivieren. Nur verstehe ich nicht, wo ich das konfigurieren muss. Sowohl in /usr/local/etc/apache24/Includes/nextcloud.conf als auch in /usr/local/www/nextcloud/.htaccess hat das Setzen von "AuthBasicAuthoritative Off" nicht dafür gesorgt, dass ich die Meldungen in /var/log/httpd-error nicht mehr erhalte.

Ich bin für jeden Hinweis dankbar! :)
 
Die Authentifizierung wird per <Directory>-Blöcke oder per .htaccess gesteuert, nicht dadurch, dass das Modul geladen wird.
Poste mal deine etc/apache24/Includes/nextcloud.conf.

Rob
 
gerne doch :)

/usr/local/etc/apache24/Includes/nextcloud.conf schrieb:
Alias /nextcloud /usr/local/www/nextcloud
AcceptPathInfo On
<Directory /usr/local/www/nextcloud>
AuthBasicAuthoritative Off
AllowOverride All
Require all granted
Allow from all
</Directory>
Das "AuthBasicAuthoritative Off" habe ich dort testweise reingesetzt, bringt aber keine Änderung...
 
Hmm. Hast du irgendwo einen <Location>-Block mit AuthType o.ä. konfiguriert?
Normalerweise dürfte der Apache den Fehler nicht melden, wenn keine Authentifizierung aktiviert ist.

grep einfach nach AuthType in deinen Konfigurationsdateien des Apache.

Rob
 
Ok, habe ich gemacht. Es gibt einen Treffer, der vermutlich Auslöser ist. Zumal der Pfad aus dem Error-Log /dav/calendars/foo/... passt. Ich habe in Includes noch webdav.conf liegen:

/usr/local/etc/apache24/Includes/webdav.conf schrieb:
Alias /dav "/usr/local/www/apache24/data/calendars"

<Directory "/usr/local/www/apache24/data/calendars">
DAV On
AllowOverride All
AuthType Basic
AuthName "WebDAV"
AuthUserFile /usr/local/etc/apache24/.webdav
Options Indexes FollowSymLinks
Require user foobar
</Directory>
Die Daten die in diesem Pfad liegen, sind allerdings nicht die Daten, um die es in httpd-errors geht. Daneben gibt es noch /usr/local/etc/apache24/extra/httpd-dav.conf mit folgendem Inhalt:
DavLockDB "/tmp/DavLock"
Alias /calendars "/usr/local/www/apache24/data/calendars"
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "MS FrontPage" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[01234]" redirect-carefully
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
BrowserMatch "^XML Spy" redirect-carefully
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
BrowserMatch " Konqueror/4" redirect-carefully
 
Da du /dav an das Verzeichnis bindest, gelten nicht mehr die Regeln von Nextcloud, sondern die im <Directory>-Container deiner webdav.conf. Der Alias hat Vorang.

Du musst das trennen, entweder über separate virtuelle Hosts für Webdav und Nextcloud oder du musst dein Webdav an eine andere URL (anderen Alias) binden.

Rob
 
Vielen Dank für die Erläuterungen! Sie haben mir nicht nur die Lösung gezeigt sondern auch zum Verständnis beigetragen. :)

Ich benötige den Alias /dav gar nicht (mehr). Den hatte ich mal zu Anfangszeiten eingerichtet. Auch /calendars wird irgenwann aussterben, weil alles über nextcloud laufen soll (und zum größten Teil auch bereits tut).

Nachdem ich /dav entfernt habe, schweigt das Logfile httpd-error.log als würde gar kein apache laufen.

Danke nochmal!
 
Zurück
Oben