WEBDAV mit DSM3.0 im User Apache?

Status
Für weitere Antworten geschlossen.

janus

Benutzer
Mitglied seit
07. Sep 2010
Beiträge
667
Punkte für Reaktionen
0
Punkte
0
Moin zusammen,
ich versuche gerade WEBDAV im User Apache mit der neuesten DSM 3.0 Firmware über SSL zum laufen zu bekommen. Vielleicht hat das ja schon mal jemand probiert und ich muss mich nicht durch den ganzen Webserver wühlen.

Weder meine eigene "alte" Konfiguration für SSL und einen Apache2, noch die gefundene Anleitung für DSM 2.3 funktionieren (Sind ähnlich, mit Basic Auth) und ich habe noch nicht herausfinden können, warum.
Basic Auth funktioniert und dann kommt eine Meldung über Order nicht gefunden...

Ich will eben NICHT, das ich auch noch Port 5006 freischalten muss. Ich will, dass WEBDAV über den Standard SSL Port 443 funktioniert, zusätzlich zu den ganzen anderen Dingen, welche ich über Port 443 konfiguriert habe. (2 Media Wiki, Photo, Blog usw.)

Ergänzung:
Ich bekomme einen Ominösen Fehler 405 im Apache LOG. Evtl. der Grund, warum Synology Port 5006 verwendet?

Gruß

Janus
 
Zuletzt bearbeitet:

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Ich will eben NICHT, das ich auch noch Port 5006 freischalten muss. Ich will, dass WEBDAV über den Standard SSL Port 443 funktioniert, zusätzlich zu den ganzen anderen Dingen, welche ich über Port 443 konfiguriert habe. (2 Media Wiki, Photo, Blog usw.)
Das geht kaum. Entweder ist der Userapache (Blog, Photostation) für den Port 443 zuständig oder der WebDAV-Apache (nach entsprechender Anpassung). Beide können aber nicht gleichzeitig Port 443 bedienen.
Auch kann dein Router kaum unterscheiden, ob eine Anfrage auf Port 443 nun nach 443 (https) oder 5006 (https Webdav) geroutet werden muss und schickt alle 443-er Anfragen entweder an Port 443 oder 5006.
 

janus

Benutzer
Mitglied seit
07. Sep 2010
Beiträge
667
Punkte für Reaktionen
0
Punkte
0
Das geht kaum. Entweder ist der Userapache (Blog, Photostation) für den Port 443 zuständig oder der WebDAV-Apache (nach entsprechender Anpassung). Beide können aber nicht gleichzeitig Port 443 bedienen.
Auch kann dein Router kaum unterscheiden, ob eine Anfrage auf Port 443 nun nach 443 (https) oder 5006 (https Webdav) geroutet werden muss und schickt alle 443-er Anfragen entweder an Port 443 oder 5006.

Moin,
warum sollte das nicht gehen? Bei einem "normalen" Apache geht das schliesslich auch, läuft derzeit so, auf meinem alten Apache2. Alles auf Port 443.

Mein Problem ist ja, dass ich WebDAV auf dem Synology Apache2 nicht aktiviert bekomme, warum auch immer.

Egal, was ich anstelle, ich bekomme immer den Fehler 405 vom Apache. Wenn man etwas tiefer gräbt, dann kommt dabei heraus, dass bei einem PROPFIND im HTTP Request des DAV Clients nur ein minimales Set an Rechten gewährt wird. Leider konnte ich bisher keinen Hinweis darauf finden, wo die Rechte dermassen eingeschränkt werden. Da für den Sys Apachen und für den User Apachen das gleiche Binarie verwendet wird, kann ich mir im Moment nicht erklären, warum webdav für Port 5005/6 funktioniert, aber für den User Apachen nicht. Wobei ich aus den Config Files für den Sys Apachen nicht wirklich entnehmen kann, wo dort das DAV konfiguriert wird. Entweder bin ich Blind oder Synology hat da ein paar Dirty Tricks am rennen.

Gruß

Janus
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Moin,
warum sollte das nicht gehen? Bei einem "normalen" Apache geht das schliesslich auch, läuft derzeit so, auf meinem alten Apache2. Alles auf Port 443.
Dann erklär mir mal wie dein Router folgendes unterscheiden kann:
1. https Anfrage für die Photostation
2. https Anfrage für WebDAV

Dein Router leitet entweder auf Port 443 oder auf Port 5006 weiter. Und wenn der Userapache sich bereits Port 443 gekrallt hat ist es nicht möglich einen "anderen" Apache (Webdav) auf demselben Port lauschen zu lassen. Das gibt einen Portkonflikt und die zweite Instanz des Servers lässt sich ned starten.
 

janus

Benutzer
Mitglied seit
07. Sep 2010
Beiträge
667
Punkte für Reaktionen
0
Punkte
0
Dann erklär mir mal wie dein Router folgendes unterscheiden kann:
1. https Anfrage für die Photostation
2. https Anfrage für WebDAV

Dein Router leitet entweder auf Port 443 oder auf Port 5006 weiter. Und wenn der Userapache sich bereits Port 443 gekrallt hat ist es nicht möglich einen "anderen" Apache (Webdav) auf demselben Port lauschen zu lassen. Das gibt einen Portkonflikt und die zweite Instanz des Servers lässt sich ned starten.

Wieso sollte der Router das unterscheiden können sollen?
Ich will ausschliesslich Port 443 vom User Apache haben, der WebDAV Server auf Port 5006 ist für meine Zwecke Mist und soll gar nicht erst genutzt werden! Der Router hat damit nur dahingehend zu tun, dass er später mal Port 443 weiterreichen soll. Da WebDAV im User Apachen aber schon im internen Netz nicht funktioniert ist das Reden vom Router reichlich weit ab von meinem Problem.

Noch mal besser:
Es laufen auf der DS genau 2 Apachen. Einer davon bedient unter anderem die Ports 5000, 5001, 5005 und 5006 (Sys Apache der DS) und der andere bedient Port 443 und Port 80 (User Apache der DS).

Das WebDAV Protokoll ist aktiv für den Sys Apachen auf Port 5005 und SSL 5006, soweit richtig.

Ich will WebDAV im User Apachen konfiguriert haben und damit auf Port 443.

Somit hat mein Router rein gar nichts mit der ganzen Sache zu tun, da ich gar keine Ports mischen will. Ich will, das meine eigene WebDAV Konfiguration im User Apache funktioniert, was bisher für mich nicht lösbar ist, warum auch immer.

Derzeit wäre für mich nur noch der Ausweg doch den WebDAV auf Port 5005 zu nutzen und das ganze mittels mod_proxy im User Apache aufzulösen. Evtl. bekomme ich das ganze dann doch so hin, wie ich es haben möchte, wenn auch durch die Brust ins Auge.

Gruß

Janus
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Der Userapache läuft unter den Rechten von nobody. Dessen Rechte reichen nicht aus um der Webdav Apache laufen zu lassen. Der braucht afaik immer root Rechte. Ausser du gibst dem User nobody volle Rechte im Dateisystem, was dann aber imho eine sehr grosse Sicherheitslücke wäre.
Das dürfte der Grund sein, warum der Webdav nicht im Userapache laufen kann.
Ob du mit mod_proxy weiterkommst bin ich jetzt gerade überfragt. Denn eigentlich meinte ich Portwechsel seien bei mod_proxy ned möglich (könnte mich aber auch irren)
 

janus

Benutzer
Mitglied seit
07. Sep 2010
Beiträge
667
Punkte für Reaktionen
0
Punkte
0
Der Userapache läuft unter den Rechten von nobody. Dessen Rechte reichen nicht aus um der Webdav Apache laufen zu lassen. Der braucht afaik immer root Rechte. Ausser du gibst dem User nobody volle Rechte im Dateisystem, was dann aber imho eine sehr grosse Sicherheitslücke wäre.
Das dürfte der Grund sein, warum der Webdav nicht im Userapache laufen kann.
Ob du mit mod_proxy weiterkommst bin ich jetzt gerade überfragt. Denn eigentlich meinte ich Portwechsel seien bei mod_proxy ned möglich (könnte mich aber auch irren)

Hallo,
dateisystemrechte sind kein Problem, da man die jeweiligen Verzeichnisse entsprechend über den Webserver abschotten kann. Ob im Lokalen Dateisystem die Rechte Stimmen ist nicht relevant, da mit einem Hack des Webservers sowieso auch Rechte für die WebDav Verzeichisse vorhanden wären.

WebDAV funktioniert im User Apache allerdings auch dann nicht, wenn man die Rechte für die Verzeichnisse setzt. Egal ob "Dav On" oder "Dav Off", das ganze verhält sich immer, wie "Dav Off".

Was mod_proxy betrifft, so spuckt dieser hier einen Fehler 500 aus, von daher muss ich erst mal ein bischen weiter lesen. Prinzipiell ist es aber möglich die Portadresse anzugeben.

Gruß

Janus
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
dateisystemrechte sind kein Problem, da man die jeweiligen Verzeichnisse entsprechend über den Webserver abschotten kann.
Das verstehe ich nun gar nicht ;)
Wenn Webdav und Userapache auf derselben Serverinstanz laufen sollen, dann haben beide dieselben Einschränkungen im Dateisystem :confused:
Das ist mein Verständnisproblem bei deinem Vorhaben: Ich kann mir nicht erklären wie man das sauber trennen sollte
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Wirft der User-Apache, wenn für WebDAV konfiguriert, Fehlermeldungen beim Start aus?

Und wie sieht genau deine httpd.conf-user aus? Also den WebDAV-Teil betreffend?

Und was bedeutet der Fehler 405 im Apache-Log, den du da bekommst?

Itari
 

janus

Benutzer
Mitglied seit
07. Sep 2010
Beiträge
667
Punkte für Reaktionen
0
Punkte
0
Das verstehe ich nun gar nicht ;)
Wenn Webdav und Userapache auf derselben Serverinstanz laufen sollen, dann haben beide dieselben Einschränkungen im Dateisystem :confused:
Das ist mein Verständnisproblem bei deinem Vorhaben: Ich kann mir nicht erklären wie man das sauber trennen sollte

Ist doch ganz einfach.
Alle Webdav Shares liegen (bzw. sollen liegen) bei mir im selben Share (Also z.B. /volume1/webdav) der DS, von daher könnte ich dort über Gruppenrechte die lokalen Zugriffe regeln, bzw. ich muss das Verzeichnis ja gar nicht erst zum mount freigeben. Da ich zusätzlich hauptsächlich mich als lokalen Nutzer habe, ist das mit den Rechten zusätzlich nicht so wichtig. Die lassen sich ggf. mit einfachen Mount Rechten gut genug regeln.

Für die selbst gestrickten Webdav Shares kann ich problemlos UserAuth Attribute und Aliase im APache setzen, vorausgesetzt "Dav On" würde funktionieren. Damit kann man dem Apache entsprechende User beibringen und jeden WebDAV Ordner extern nur bestimmten Personen zuordnen. Ob die darunter liegenden Filesystem Rechte nun für alle gleich sind, fällt dem Benutzer nicht auf.

Damit kann ein User aus einem einzelnen WebDav Share erst mal nicht ausbrechen und es ist mir nicht wichtig, dass der Webserver auf alle einzelnen Verzeichnisse die gleichen Zugriffsrechte hat.

Das mit den FS Rechten wird erst wichtig, wenn es jemand schafft in den Webserver einzubrechen. Dann hätte der potentielle Hacker zumindest als User nobody Zugriff auf das System mit allen Daten, was bei den WebDAV Shares wiederum nicht so tragisch wäre, da nur zum Datenaustausch gedacht. Den User Apache auf "root" umzustellen kommt daher nicht in Frage.
Um es noch mal klarzustellen, ich will meine Haupt Daten von der ganzen DS gar nicht per WebDAV zur verfügung stellen! Es geht nur um ein Share, wo man mal von extern ein paar Daten ablegen kann. Wenn ich derzeit das WebDAV der DS verwenden würde, müsste ich mich daher um Zugriffsrechte für alle Dateien kümmern, was ich aber nicht will! Das ist hier ein ganz einfaches System, welches nur ein paar Dinge erledigen soll, was füher mein Rechner geleistet hat. KIS ist das Prinzip ja und OK, Spielerei natürlich auch.

Gruß

Janus
 

janus

Benutzer
Mitglied seit
07. Sep 2010
Beiträge
667
Punkte für Reaktionen
0
Punkte
0
Wirft der User-Apache, wenn für WebDAV konfiguriert, Fehlermeldungen beim Start aus?

Und wie sieht genau deine httpd.conf-user aus? Also den WebDAV-Teil betreffend?

Und was bedeutet der Fehler 405 im Apache-Log, den du da bekommst?

Itari

Wirft der Apache Fehler?:
Nein, der startet ganz normal. Auch ein Check der Konfiguration auf der Kommandozeile sieht ganz normal aus.

Rich (BBCode):
DiskStation> /usr/syno/etc/rc.d/S97apache-user.sh restart
/usr/syno/etc/rc.d/S97apache-user.sh: user httpd stopped
Start User Apache Server .....
/usr/syno/etc/rc.d/S97apache-user.sh: user httpd started
DiskStation>

http.conf-user?:
Ich habe einfach das Include für das webdav einkommentiert:
# Distributed authoring and versioning (WebDAV)
Include conf/extra/httpd-dav.conf

Also nach Wiki und dort die Module für den Apache eingebaut incl. der notwendigen Einstellungen für DAV.

Also:
Rich (BBCode):
LoadModule dav_module modules/mod_dav.so                                                                                                                                                                                                     
LoadModule dav_fs_module modules/mod_dav_fs.so                                                                                                                                                                                               
LoadModule dav_lock_module modules/mod_dav_lock.so                                                                                                                                                                                           
LoadModule auth_digest_module modules/mod_auth_digest.so                                                                                                                                                                                     

DavLockDB /volume1/@tmp/DavLock
Alias /share "/volume1/webdav/share

<Location "/volume1/webdav/share">
  Dav On
  Order allow,deny                                                                                                                                                                                                                         
  Allow from all                                                                                                                                                                                                                           
</Location>

Ok, ist eine gekürzte Fassung, da auch damit der Fehler auftritt. UserAuth und Co. habe ich erst mal rausgenommen. Stört im Moment nur bei der Fehlersuche.

Fehler 405:
Ich provoziere mittlerweile das Problem mittels telnet. Bei cadaver und KDE kommt auch immer der Fehler 405 mit dem PROPFIND.

Rich (BBCode):
DiskStation> telnet localhost 80
PROPFIND /share/ HTTP/1.1
Host: localhost

HTTP/1.1 405 Method Not Allowed
Date: Mon, 08 Nov 2010 18:36:48 GMT
Server: Apache/2.2.16
Allow: GET,HEAD,POST,OPTIONS
Vary: Accept-Encoding
Content-Length: 234
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>405 Method Not Allowed</title>
</head><body>
<h1>Method Not Allowed</h1>
<p>The requested method PROPFIND is not allowed for the URL /share/.</p>
</body></html>
Connection closed by foreign host

Wenn man nur "/share" nimmt, statt des "/share/" kommt ein Fehler 301. Das gibt mir im Moment noch zu denken, leider ist das Rätsel aber nur unbestimmt.

Im Logfile sieht das so aus:
[08/Nov/2010:19:36:48 +0100] "PROPFIND /uploads/ HTTP/1.1" 405 234 "-" "-"

Im Moment gehe ich davon aus, dass der Apache es nicht schafft das "Dav On" zu schalten, da die Rechte immer nur "Allow: GET,HEAD,POST,OPTIONS" umfassen und nie das PROPFIND.

Ein Zugriff auf die "Webseite" ist immer möglich, egal ob "Dav on" oder "Dav off" gesetzt ist. Wenn ich im gegensatz dazu einen Zugriff auf die "alte" Konfiguration meines Rechners vornehme, dann bekomme ich bei http einen zugriff verweigert und bei webdav zugriff ist alles OK.

Gruß

Janus
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Mal testweise in share eine index.html oder index.php angelegt? Gibt das dann einen anderen Fehler?
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Ich würde den 'Include conf/extra/httpd-dav.conf' nicht verwenden, weil der für den System-Apache gedacht ist und man damit eventuell irgendwann mal Probleme bekommt. Also einfach die Strecke in die httpd.conf-user einkopieren oder die Datei entsprechend umbennen.

Ich meine mich zu erinnern, dass ich den WebDAV nie ohne Auth hinbekommen habe ... daher würde ich den auch richtig einbauen.

Läuft den WebDAV ohne SSL schon? Wenn nicht, dann würde ich mir erstmal das vor die Brust nehmen.

Itari
 

janus

Benutzer
Mitglied seit
07. Sep 2010
Beiträge
667
Punkte für Reaktionen
0
Punkte
0
Ich würde den 'Include conf/extra/httpd-dav.conf' nicht verwenden, weil der für den System-Apache gedacht ist und man damit eventuell irgendwann mal Probleme bekommt. Also einfach die Strecke in die httpd.conf-user einkopieren oder die Datei entsprechend umbennen.

Ich meine mich zu erinnern, dass ich den WebDAV nie ohne Auth hinbekommen habe ... daher würde ich den auch richtig einbauen.

Läuft den WebDAV ohne SSL schon? Wenn nicht, dann würde ich mir erstmal das vor die Brust nehmen.

Itari

Hmm,
ich kann zwar gerade nicht erkennen, warum ein "include" das Problem verursachen soll, aber ich kann es mal in die http.conf-user reinbauen. Für die Zukunft OK, ggf. baue ich mir ein eigenes Include und lege das irgendwo anders ab, dann muss man später nur das Include neu einbauen und muss bei einem Update nicht um die Config fürchten.

Ansonsten habe ich das ganze Programm durch, mit und ohne User Auth, mit und ohne SSL... Alles probiert. Entweder Blind oder es geht auf den bewährten Wegen nicht.

Aber damit zurück zur Starter Frage:
Hat jemand schon mal mit DSM 3.0 ein custom WebDAV konfiguriert? Also in der http.conf-user ein eigenes WebDAV aufgesetzt? Ich hätte Interesse an dem Ergebnis und ggf. an den Konfigurationsfiles ;-)

Sprich: Es läuft auf die Frage hinaus: Bin ich zu doof und blind oder liegts an der DSM 3.0? Laut Wiki sollte es ja mit DSM 2.3 wie versucht funktionieren.

Gruß

Janus
 

janus

Benutzer
Mitglied seit
07. Sep 2010
Beiträge
667
Punkte für Reaktionen
0
Punkte
0
Mal testweise in share eine index.html oder index.php angelegt? Gibt das dann einen anderen Fehler?

Sobald mittels WebDAV Client (Oder dem Telnet) zugegriffen wird, kommt der 405. Was in dem Verzeichnis steht, ist dabei egal.

Gruß

Janus
 

Thargor

Benutzer
Mitglied seit
09. Jan 2010
Beiträge
21
Punkte für Reaktionen
0
Punkte
1
Hast du das Problem inzwischen gelöst? Hab gerade auf 3.0 geupdatet und stehe jetzt vor dem gleichen Problem :(
 

janus

Benutzer
Mitglied seit
07. Sep 2010
Beiträge
667
Punkte für Reaktionen
0
Punkte
0
Hast du das Problem inzwischen gelöst? Hab gerade auf 3.0 geupdatet und stehe jetzt vor dem gleichen Problem :(

Leider nein,
ich habs erst mal sein lassen und auf später verschoben.

Gruß

Janus
 

janus

Benutzer
Mitglied seit
07. Sep 2010
Beiträge
667
Punkte für Reaktionen
0
Punkte
0
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat