andreas: apache webdav - geht nur ssl zulassen?

hallo,

nach dem artikel in einer grösseren computerzeitschrift, der möglichkeit mit eclipse darauf zuzugreifen, oder das als netzlaufwerk zu nutzen, ist mein interesse für webdav dramatisch gestiegen. zumal ich seit längerem erfolglos versuche unter cygwin einen beschränkten ssh zugang zu schaffen, scheint webdav perfekt.

jetzt die frage:
es sind ja nicht alle leute so umsichtig wie ich, und wissen möglicherweise nicht, dass sie den zugriff nur mit https tun sollten. kann man dem apache irgendwie mitteilen, dass er auf bestimmte bereiche nur via ssl zugriff gewährt? evt. über einen virtual-host? habe bis jetzt leider nichts passendes gefunden.

vielen dank,
andreas

  1. hallo andreas,

    nach dem artikel in einer grösseren computerzeitschrift

    Man sollte Computer-BILD wirklich nicht ernst nehmen.

    zumal ich seit längerem erfolglos versuche unter cygwin einen beschränkten ssh zugang zu schaffen, scheint webdav perfekt.

    Hm. Wieso bist du da erfolglos, was hast du für Fehlermeldungen erhalten, und warum muß es überhaupt cygwin sein?

    jetzt die frage:
    es sind ja nicht alle leute so umsichtig wie ich

    upsa. no comment.

    und wissen möglicherweise nicht, dass sie den zugriff nur mit https tun sollten.

    Das müssen die "Leute" auch nicht wissen, sondern es ist deine Aufgabe, es ihnen zu sagen.

    kann man dem apache irgendwie mitteilen, dass er auf bestimmte bereiche nur via ssl zugriff gewährt?

    Ja.

    evt. über einen virtual-host?

    Ja.

    Grüße aus Berlin

    Christoph S.

    1. hallo andreas,

      nach dem artikel in einer grösseren computerzeitschrift

      Man sollte Computer-BILD wirklich nicht ernst nehmen.

      ufftata ufftata tadatadata daddadaaaaaaa

      Hm. Wieso bist du da erfolglos, was hast du für Fehlermeldungen erhalten, und warum muß es überhaupt cygwin sein?

      ich hab schon wieder vergessen, wie überhaupt das paket hieß, steht hier aber auch irgendwo. jedenfalls ließ es sich nicht unter cygwin und meinen fingern kompilieren. nun, mit den ganannten vorteilen von webdav hat das ganze ohnehin seinen reiz verlohren.

      kann man dem apache irgendwie mitteilen, dass er auf bestimmte bereiche nur via ssl zugriff gewährt?

      Ja.

      die antwort steht noch aus ;)

      Grüße aus Berlin

      andreas

  2. 你好 andreas,

    kann man dem apache irgendwie mitteilen, dass er auf bestimmte bereiche
    nur via ssl zugriff gewährt? evt. über einen virtual-host?
    habe bis jetzt leider nichts passendes gefunden.

    Ja, klar. Du musst einen VirtualHost fuer den SSL-Zugriff definieren und nur
    dort die Bereiche definieren, auf die der User Zugriff haben soll. In dem
    “normalen” Host laesst du einfach nur die Definitionen weg oder sperrst sie
    mittels “Order Deny,Allow” und “Deny from all” komplett.

    再见,
    CK

    1. moin,

      vielen dank, das wollte ich wissen :)
      ich weiss, ich habe explizit danach gefragt - aber geht es auch ohne die virtuals?

      andreas

      1. 你好 andreas,

        vielen dank, das wollte ich wissen :)
        ich weiss, ich habe explizit danach gefragt - aber geht es auch ohne die
        virtuals?

        Nein, ich wuesste nicht, wie.

        再见,
        CK

        1. Moin,

          vielen dank, das wollte ich wissen :)
          ich weiss, ich habe explizit danach gefragt - aber geht es auch ohne die
          virtuals?

          Nein, ich wuesste nicht, wie.

          In's blaue hinein (und weil das eh immer die Antwort ist): mod_swissarmyknife aka mod_rewrite? Also mit REWRITE_COND auf HTTPS gleich on prüfen und andernfalls auf die SSL-Version umleiten.

          --
          Henryk Plötz
          Grüße aus Berlin
          ~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
          ~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~
          1. hey,

            In's blaue hinein (und weil das eh immer die Antwort ist): mod_swissarmyknife aka mod_rewrite? Also mit REWRITE_COND auf HTTPS gleich on prüfen und andernfalls auf die SSL-Version umleiten.

            also nach dem dritten lesen erschliesst sich mir der sinn ;)
            ich denke, dass ich das nach ein wenig recherche hinbekommen würde.

            weil ihr euch aber so schön um mich kümmert und weil mein 'server' nur 500mhz hat - und deswegen wenig belastung am liebsten mag, möchte ich zu lösung >a< auch nochmal nachhaken (ich weiss, das sieht so aus, als könne ich mich nicht entscheiden; bin auch gerade noch mitten im entscheidungsprozess):
            kann man denn die virtual-hosts, name-based, so einsetzen, dass ich eine subdomain auf eine dyndns vergebe? anders: wo muss eine subdomain aufgelöst werden? ich könnte ja sonst einfach eine
            dav.server.mine.nu
            domain benutzen; vorrausgesetzt, ich kann einfach mal so eine subdomain erzeugen.

            ich denke, dass dies für meinen armen serva angenehmer ist ;)

            viele grüsse,
            andreas

            1. Hallo,

              kann man denn die virtual-hosts, name-based, so einsetzen, dass ich eine subdomain auf eine dyndns vergebe? anders: wo muss eine subdomain aufgelöst werden?

              Wenn Dein Apache am Port 80 _eines_ Interfaces (mit _einer_ IP) horcht, welches von außen zu erreichen ist, dann ist es _nur_ wichtig, dass die DNS-Namensauflösung für einen externen Zugriff eben diese IP ergibt. Erst dann kommen die Anfragen ja bei Deinem Apache an und erst wenn die Anfrage beim Apache angekommen ist, kann er namensbasiert in virtuelle Hosts verzweigen.

              Beispiel:
              Wenn im DNS
              host1.deinedomain.tld
              host2.deinedomain.tld
              host3.deinedomain.tld
              alle auf die dynamische IP zeigen, unter der Du von außen zu erreichen bist, und der Apache am Port 80 des Interfaces mit dieser IP horcht, dann kann er die virtuellen Hosts
              host1.deinedomain.tld
              host2.deinedomain.tld
              host3.deinedomain.tld
              verwalten.

              viele Grüße

              Axel

              1. hi again,

                Beispiel:
                Wenn im DNS
                host1.deinedomain.tld
                host2.deinedomain.tld
                host3.deinedomain.tld
                alle auf die dynamische IP zeigen, unter der Du von außen zu erreichen bist, und der Apache am Port 80 des Interfaces mit dieser IP horcht, dann kann er die virtuellen Hosts
                host1.deinedomain.tld
                host2.deinedomain.tld
                host3.deinedomain.tld
                verwalten.

                ich hab jetzt in meiner lokalen hosts datei eine zeile eingetragen

                192.168.123.100 server.mine.nu
                192.168.123.100 dav.server.mine.nu

                weiterhin werden beide adressen zu mir aufgelöst.

                nun habe ich in der httpd.conf folgende hosts

                <VirtualHost *:80>
                        ServerName server.mine.nu

                ...

                </VirtualHost>

                <VirtualHost *:80>
                        ServerName dav.server.mine.nu

                ...

                </VirtualHost>

                leider wird aber jeder request von aussen an den oberen gegeben.

                lokal habe ich das gleiche ausprobiert, da geht es. allerdings habe ich da die dns'e auf 127.0.0.1 aufgelöst; das dürfte ja aber keinen unterschied machen....

                ich freue mich auf eine antwort ;`)

                vielen dank,
                andreas

                1. Hallo,

                  ich hab jetzt in meiner lokalen hosts datei eine zeile eingetragen

                  192.168.123.100 server.mine.nu
                  192.168.123.100 dav.server.mine.nu

                  weiterhin werden beide adressen zu mir aufgelöst.

                  Das da oben sind aber LAN-IPs. Du meinst also, die Namen server.mine.nu und dav.server.mine.nu werden im _lokalen Netz_ jeweils zu 192.168.123.100 aufgelöst? Wenn ja, dann wie? Läuft da ein DNS? Was ergibt ein

                  nslookup server.mine.nu
                  bzw.
                  nslookup dav.server.mine.nu

                  vom anderen PC im lokalen Netz?

                  leider wird aber jeder request von aussen an den oberen gegeben.

                  Wie sieht der Request aus?
                  Im Browser eines anderen PCs im lokalen Netz:
                  http://dav.server.mine.nu
                  bzw.:
                  http://server.mine.nu

                  viele Grüße

                  Axel

                  1. hey axel,
                    du bist ja echt schnell ;)

                    192.168.123.100 server.mine.nu
                    192.168.123.100 dav.server.mine.nu

                    weiterhin werden beide adressen zu mir aufgelöst.
                    Das da oben sind aber LAN-IPs. Du meinst also, die Namen server.mine.nu und dav.server.mine.nu werden im _lokalen Netz_ jeweils zu 192.168.123.100 aufgelöst? Wenn ja, dann wie? Läuft da ein DNS? Was ergibt ein

                    C:\so fa>nslookup www.server.mine.nu
                    *** Der Servername für die Adresse 192.168.1.12 konnte nicht gefunden werden:
                    Non-existent domain
                    *** Die Standardserver sind nicht verfügbar.
                    Server:  UnKnown
                    Address:  192.168.1.12

                    Name:    server.mine.nu
                    Address:  213.54.197.4
                    Aliases:  www.server.mine.nu

                    C:\so fa>nslookup www.dav.pansenstar.mine.nu
                    *** Der Servername für die Adresse 192.168.1.12 konnte nicht gefunden werden:
                    Non-existent domain
                    *** Die Standardserver sind nicht verfügbar.
                    Server:  UnKnown
                    Address:  192.168.1.12

                    Name:    server.mine.nu
                    Address:  213.54.197.4
                    Aliases:  www.dav.server.mine.nu

                    vom anderen PC im lokalen Netz?

                    das ist jetzt übers internet (bin gerade nicht in dem netz). die auflösung habe ich auf dem server in der datei
                    winnt/system32/drivers/etc/hosts
                    vorgenommen. normalerweise reicht das ja immer...
                    es läuft also so ab:

                    |ICH| >>> [213.54.197.4]|ROUTER| >>> [192.168.123.100]|SERVER|

                    nun 'merkt' der server anscheinend nicht, welche domain aufgerufen wurde... ich bin raus.

                    leider wird aber jeder request von aussen an den oberen gegeben.
                    Wie sieht der Request aus?
                    Im Browser eines anderen PCs im lokalen Netz:
                    http://dav.server.mine.nu
                    bzw.:
                    http://server.mine.nu

                    genau so sieht das aus (aus dem internet)

                    viele grüsse,
                    andreas

                    1. Hallo,

                      du bist ja echt schnell ;)

                      Ja, ich hab Urlaub und grad ein wenig Zeit.

                      C:\so fa>nslookup www.server.mine.nu

                      ^Das ist Dein Host.

                      Name:    server.mine.nu
                      Address:  213.54.197.4
                      Aliases:  www.server.mine.nu

                      C:\so fa>nslookup www.dav.pansenstar.mine.nu

                      ^Und das ist Dein Host.

                      Name:    server.mine.nu
                      Address:  213.54.197.4
                      Aliases:  www.dav.server.mine.nu

                      ^Und das ist ein weiterer möglicher Host.

                      Was passiert bei
                      ping server.mine.nu
                      und
                      ping dev.server.mine.nu
                      aus dem Interet?

                      Warum verwirrst Du den Apache, indem Du ihm andere Hosts zum Verwalten gibst, als Du wirklich eingeichtet hast?

                      Wenn Du natürlich http://www.server.mine.nu bzw. http://www.dav.server.mine.nu aufrufst und Apache nur die VHosts server.mine.nu und dav.server.mine.nu kennt, was soll er dann machen? Er nimmt, weil er keinen definitiv zuordnen kann, einfach den ersten.

                      viele Grüße

                      Axel

                      1. C:\so fa>nslookup www.server.mine.nu
                                             ^Das ist Dein Host.
                        Name:    server.mine.nu
                        Address:  213.54.197.4
                        Aliases:  www.server.mine.nu

                        C:\so fa>nslookup www.dav.server.mine.nu
                                             ^Und das ist Dein Host.

                        hier war ein tippfehler - die heissen schon gleich, nur das prefix dav unterscheided beide.

                        Name:    server.mine.nu
                        Address:  213.54.197.4
                        Aliases:  www.dav.server.mine.nu
                                     ^Und das ist ein weiterer möglicher Host.

                        Was passiert bei
                        ping server.mine.nu
                        und
                        ping dev.server.mine.nu
                        aus dem Interet?

                        ich bekomme bei beiden die gleiche ip, dann zeitüberschreitung (weil er kein icmp zulässt).

                        Warum verwirrst Du den Apache, indem Du ihm andere Hosts zum Verwalten gibst, als Du wirklich eingeichtet hast?

                        ich glaube wir missverstehen ;)
                        meine adresse lauet:
                        server.mine.nu,
                        funktioniert auch mit www.server.mine.nu (angenommen, ich benutze die erste variante)

                        meine lokale namensauflösung schickt alles auf den server, sollte soweit auch gehen.

                        meine virtual-hosts heissen
                        server.mine.nu
                        dav.server.mine.nu

                        ich könnte jetzt noch einen alias für den zweiten einrichten
                        www.dav.server.mine.nu (vermute ich ...)

                        Wenn Du natürlich http://www.server.mine.nu bzw. http://www.dav.server.mine.nu aufrufst und Apache nur die VHosts server.mine.nu und dav.server.mine.nu kennt, was soll er dann machen? Er nimmt, weil er keinen definitiv zuordnen kann, einfach den ersten.

                        die antwort verstehe ich aber nicht, weil im endeffekt alles nach norm läuft. kann es sein, dass man eine subdomain 'offiziell' anmelden muss? oder ist das wurst? offiziell habe ich nur die erste domain (ohne prefix).

                        viele grüsse,
                        andreas

                        1. Hallo,

                          meine virtual-hosts heissen
                          server.mine.nu
                          dav.server.mine.nu

                          Ja, dann musst Du im Browser
                          http://server.mine.nu
                          http://dav.server.mine.nu
                          aufrufen. Tust Du das?

                          Wenn Du natürlich http://www.server.mine.nu bzw. http://www.dav.server.mine.nu aufrufst und Apache nur die VHosts server.mine.nu und dav.server.mine.nu kennt, was soll er dann machen? Er nimmt, weil er keinen definitiv zuordnen kann, einfach den ersten.

                          die antwort verstehe ich aber nicht, weil im endeffekt alles nach norm läuft.

                          Nach welcher Norm?

                          Wenn Du im Browser
                          http://www.server.mine.nu
                          aufrufst und eine IP für www.server.mine.nu ermitteltwerden kann, dann kommt an Port 80 dieser IP folgendes an:

                          GET / HTTP/1.1[CRLF]
                          Host: www.server.mine.nu[CRLF]

                          Apache nimmt den VHost ensprechend Host: www.server.mine.nu.

                          Rufst Du im Browser
                          http://server.mine.nu
                          auf und ebenfalls eine IP zu ermitteln ist,
                          dann kommt an Port 80 dieser IP folgendes an:

                          GET / HTTP/1.1[CRLF]
                          Host: server.mine.nu[CRLF]

                          Apache nimmt den VHost ensprechend Host: server.mine.nu.

                          viele Grüße

                          Axel

                          1. axel,
                            danke für deine geduld :)
                            es geht :)

                            mein fehler war, dass ich
                            NameVirtualHost *:80
                            nicht drin hatte. ich idiot ;)

                            besten dank nochmal,
                            andreas