l1n00x: Apache win 2000 pro sp4 htaccess

Ich hab den Apache 2.0.46 auf meinem Windows 2000 SP4 Rechner laufen, nun ist meine Frage, wie ich das unterverzeichnis "PUBLIC-DATA" schützen kann per .htaccess.

Ich habe wirklich schon sooo viel ausprobiert, aber nie hat es geklappt.

htdocs(darin ist die .htpasswd)

Inhalt:
l1n00x:$apr1$Nk1.....$vlBqjzF7KuDbMp2ampso61

dann:als unterverzeichnis von htdocs ist public-data, mit der .htaccess

Inhalt:

AuthUserFile /htdocs/.htaccess
AuthName "Public-Data"
AuthType Basic
require user l1n00x

  1. Inhalt:

    AuthUserFile /htdocs/.htaccess
    AuthName "Public-Data"
    AuthType Basic
    require user l1n00x

    ich würd mal behaupten, das der pfad von AuthUserFile auf die .htpasswd zeigen muss.
    ich hab mir hier: www.krizleebear.de ein php-script besorgt und mein schutz funktioniert.
    allerdings kann der apache unter windoof scheinbar kein crypt, so das mein pass im klartext in der .htpasswd drinsteht. macht ja nix, da die oberhalb des htdocs liegt.

    1. noch eine ergänzung:
      AuthUserFile c:/pfad/.htpasswd
      in apache/bin gibts eine htpasswd.exe.
      die mal am cmd-prompt aufrufen, dann gibts infos zur nutzung.
      damit erhält man eine funktionierende password-verschlüsselung unter windows.

      1. hi,

        schader ist, daß sich l1n00x noch nicht wieder gemeldet hat ...

        Grüße aus Berlin

        Christoph S.

  2. <!-- ich bin jetzt gemein, und ich weiß es //-->
    boah ...

    Ich hab den Apache 2.0.46 auf meinem Windows 2000 SP4 Rechner laufen

    Servicepack4 ist gerade mal vier Tage alt ...

    nun ist meine Frage, wie ich das unterverzeichnis "PUBLIC-DATA" schützen kann per .htaccess.

    Gar nicht. Du hast den Apache auf deinem eigenen Rechner? Also brauchst du überhaupt keine .htaccess ... Oder wer soll jetzt zu welchem Zweck eine .htaccess benutzen?

    Und wo, bitteschön, liegt dein Unterverzeichnis "PUBLIC-DATA", hat das irgendwie mit dem DocumentRoot zu tun? Warum schreibst du es überhaupt in Varsalien (Großbuchstaben)?

    htdocs(darin ist die .htpasswd)
    Inhalt:
    l1n00x:$apr1$Nk1.....$vlBqjzF7KuDbMp2ampso61

    Selbst wenn du "htdocs" als DocumentRoot beibehalten hast ist deine Angabe hier ziemlich vollkommen unverständlich. Was bedeutet bitte "l1n00x:$apr1$Nk1.....$vlBqjzF7KuDbMp2ampso61" ? Müssen alle deine Webseitenbesucher jetzt in der Adreßzeile ihrer Browser eingeben: http://l1n00x:$apr1$Nk1.....$vlBqjzF7KuDbMp2ampso61 ?

    AuthUserFile /htdocs/.htaccess
    AuthName "Public-Data"
    AuthType Basic
    require user l1n00x

    Und wie meldest du dich an deinem eigenen Rechner an? Und wie hast du den User "lin00x" identifiziert? Kommt er eventuell sogar noch über SSL?

    Entschuldige, aber die gesamte Fragestellung klingt doch bissel konfus. Natürlich kannst du auch lokal .htaccess-Dateien verwenden, nur ist es ziemlich unsinnig. .htaccess macht dann Sinn, wenn dein Apache die Aufgaben eines "produktiven Servers" wahrnimmt und deine User (die in fünftausend Kilometer Entfernung sitzen könnten) ihre eigenen Verzeichnisse damit konfigurieren möchten. Solange du den Server auf deinem eigenen Rechner lokal betreibst und selbst der einzige bist, der über diesen Server ein paar Scripts testet, sind .htaccess-Dateien ziemlich sehr überflüssig.

    Gegebenenfalls könnte es dir weiterhelfen, wenn du dich über Aliasnamen etwas genauer informierst.

    Grüße aus Berlin

    Christoph S.

    1. Servicepack4 ist gerade mal vier Tage alt ...

      schön, was hat das mit der fragestellung zu tun?

      Gar nicht. Du hast den Apache auf deinem eigenen Rechner? Also brauchst du überhaupt keine .htaccess ...

      wenn er hier postet, hat er vermutlich auch einen internet-zugang.
      d.h., sein apache ist für andere ereichbar. und wenn er nicht nur eine von diesen "das bin ich und so sieht mein hund aus"-seiten betreibt, sondern ähnlich wie ich sicherheitsrelevante scripte (uploads, file-editing/management) dort liegen hat, ist es durchaus sinnvoll, den zugang per .htaccess zu schützen, weil man sich sonst viel ärger einhandeln kann.

      Müssen alle deine Webseitenbesucher jetzt in der Adreßzeile ihrer Browser eingeben: http://l1n00x:$apr1$Nk1.....$vlBqjzF7KuDbMp2ampso61 ?
      Gegebenenfalls könnte es dir weiterhelfen, wenn du dich über Aliasnamen etwas genauer informierst.

      vielleicht solltest du dich mal genauer über .htaccess informieren.
      aliase machen den server nur unter einer anderen domain erreichbar.
      ich hab meine doc-root per .htaccess geschützt und muss mir deshalb nicht bei jedem neuen script, das ich ausprobieren will, erst nen kopf machen, ob es auch eine solide bugfreie login-prozedur hat mit einem sauberen session-handling.

      1. hallo,

        Servicepack4 ist gerade mal vier Tage alt ...
        schön, was hat das mit der fragestellung zu tun?

        So viel, daß es bisher sogar in den "zuständigen" Newsgroups noch so gut wie keine Äußerungen dazu gibt  -  also, ob, wie, warum und worin es Unterschiede zu SP3 gibt.

        wenn er hier postet, hat er vermutlich auch einen internet-zugang.
        d.h., sein apache ist für andere ereichbar.

        Nein, das heißt es nicht. Mein Apache ist keineswegs für andere erreichbar, obwohl ich durchaus einen Internetzugang habe und mich hier gelegentlich vernehmen lasse.

        und wenn er nicht nur eine von diesen "das bin ich und so sieht mein hund aus"-seiten betreibt, sondern ähnlich wie ich sicherheitsrelevante scripte (uploads, file-editing/management) dort liegen hat, ist es durchaus sinnvoll, den zugang per .htaccess zu schützen, weil man sich sonst viel ärger einhandeln kann.

        "uploads" interessieren den Apache nicht. Er ist ein HTTP-Server, was eventuell über FTP passiert, ist ihm wurscht. Es ist ihm genauso wurscht, was eventuell PHP macht, das ist Sache von PHP.
        Allerdings _kann_ ein Zugriffsschutz mit .htacces/.htpasswd bei einem "produktiven Server" durchaus Sinn machen, aber das habe ich ja bereits geschrieben.

        vielleicht solltest du dich mal genauer über .htaccess informieren.

        Gern. Und wo mache ich das?

        aliase machen den server nur unter einer anderen domain erreichbar.

        Das ist vollkommen verkehrt. Vielleicht solltest du dich etwas genauer über Aliases informieren?

        ich hab meine doc-root per .htaccess geschützt und muss mir deshalb nicht bei jedem neuen script, das ich ausprobieren will, erst nen kopf machen, ob es auch eine solide bugfreie login-prozedur hat mit einem sauberen session-handling.

        Das ist ebenso kaum vorstellbar, daß du das _gesamte_ DocumentRoot per .htaccess mit Schutzmechanismen versehen hast. Das würde bedeuten, daß _jeder_ von außen auf dein _gesamtes_ DocumentRoot Zugriff hat und daher ein Zugriffsschutz nötig wird. Dein Apache ist in so einem Fall einfach schlecht gewartet. .htaccess ist sinnvoll für user-Verzeichnisse und für virtuelle hosts, nicht aber für das gesamte DocumentRoot.

        Grüße aus Berlin

        Christoph S.

        1. Unterschiede zu SP3

          er hat danach nicht *gefragt*, sondern das nur als info gegeben, um evtl das problem einzugrenzen.

          Nein, das heißt es nicht. Mein Apache ist keineswegs für andere erreichbar

          ok, es wäre aber auch möglich, das er von aussen erreichbar sein soll, aus welchen gründen auch immer.

          was eventuell über FTP passiert, ist ihm wurscht.

          wir reden hier nicht von ftp sondern davon:
          http://selfhtml.teamone.de/html/formulare/datei_upload.htm

          Es ist ihm genauso wurscht, was eventuell PHP macht

          stimmt, *ihm* schon, aber mir nicht, denn wenn jeder zugriff auf mein upload-script hat und z.b. ein php-script hochläd, das mal eben die platte löscht, oder einen ebenfalls hochgeladenen trojaner damit startet, ist *mir* das nicht wurscht.

          Gern. Und wo mache ich das?

          http://www.kortstock.de/WWW-Kurs/verzeichnisschutz/htaccess.html

          Vielleicht solltest du dich etwas genauer über Aliases informieren?

          zitat: "Gern. Und wo mache ich das?" ;-)

          Das ist ebenso kaum vorstellbar, ... .htaccess ist sinnvoll für

          wer hat denn hier gefragt, ob es *sinnvoll* ist?
          wenn ich die .htaccess ins docroot packe, *ist* damit der gesamte verzeichnisbaum geschützt. die .htpasswd sollte natürlich ausserhalb des docroot liegen.

          1. hallo Raik,

            Unterschiede zu SP3
            er hat danach nicht *gefragt*, sondern das nur als info gegeben, um evtl das problem einzugrenzen.

            Und ich habe lediglich zusätzlich informiert, daß SP4 noch sehr jung ist. Ich habs zwar, aber ich habs noch nicht ausprobiert, weil ich zur Zeit keinen Rechner mit Win2000 habe.

            wir reden hier nicht von ftp sondern davon:
            http://selfhtml.teamone.de/html/formulare/datei_upload.htm

            Das ist ein einzelnes Formular, das Beispiel dient lediglich dazu, zu zeigen, wie Formulare in HTML eingesetzt werden. Das Formular selbst tut noch gar nichts, auch keinen Upload.
            Man muß ein bißchen weiterlesen und mindestens das kleine Beispielskript von CK zusätzlich benutzen. Dort ließe sich zwar auch noch eine Paßwortabfrage einbauen, aber Formular und Script kommen ohne .htaccess aus.

            Gern. Und wo mache ich das?
            http://www.kortstock.de/WWW-Kurs/verzeichnisschutz/htaccess.html

            Oh.Ich hatte damit spekuliert, daß du auf http://aktuell.de.selfhtml.org/artikel/server/index.htm verweisen würdest, und insbesondere auf http://aktuell.de.selfhtml.org/artikel/server/htaccess-faq/index.htm

            Vielleicht solltest du dich etwas genauer über Aliases informieren?
            zitat: "Gern. Und wo mache ich das?" ;-)

            Hierfür gibts leider bisher keinen eigenen Feature-Artikel, aber in den Tipps&Tricks findet sich etwas Aufschlußreiches: http://aktuell.de.selfhtml.org/tippstricks/server/aliasing/index.htm.

            Das ist ebenso kaum vorstellbar, ... .htaccess ist sinnvoll für
            wer hat denn hier gefragt, ob es *sinnvoll* ist?

            Die Frage kam nicht, daher hielt ich den Hinweis für gerechtfertigt.

            Grüße aus Berlin

            Christoph S.

    2. Hallo Christoph,

      htdocs(darin ist die .htpasswd)
      Inhalt:
      l1n00x:$apr1$Nk1.....$vlBqjzF7KuDbMp2ampso61
      Selbst wenn du "htdocs" als DocumentRoot beibehalten hast ist deine Angabe hier ziemlich vollkommen unverständlich. Was bedeutet bitte "l1n00x:$apr1$Nk1.....$vlBqjzF7KuDbMp2ampso61" ?

      eine solche Frage solltest gerade Du als Autor eines Feature-Artikels über Apache-Konfiguration nicht stellen.

      Es gibt noch andere Passwort-Verschlüsselungen als crypt - und das hier ist eine davon.
      (Nämlich MD5; "l1n00x" ist der Username dabei; htpasswd.exe würde Dir mehr darüber erzählen.)

      Viele Grüße
            Michael

      --
      T'Pol: I apologize if I acted inappropriately.
      V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
      (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
       => http://www.peter.in-berlin.de/projekte/selfcode/?code=sh%3A|+fo%3A}+ch%3A]+rl%3A(+br%3A^+n4%3A(+ie%3A%25+mo%3A)+va%3A|+de%3A%2F+zu%3A|+fl%3A(+ss%3A)+ls%3A~+js%3A|
      Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.
      1. guten Abend,

        eine solche Frage solltest gerade Du als Autor eines Feature-Artikels über Apache-Konfiguration nicht stellen.

        Ich hatte gedacht, daß für Forums-Leser wie dich mein ganz oben stehender Hinweis

        <!-- ich bin jetzt gemein, und ich weiß es //-->

        genügen könnte, um eine solche Rückmeldung nicht zu schreiben  -  und ich hatte gehofft, daß "l1n00x" unter Umständen "zurückpoltern" würde, wozu er alles Recht gehabt hätte.

        Es gibt noch andere Passwort-Verschlüsselungen als crypt

        Aber ja ...

        Im übrigen bist du der ".htaccess"-Spezialist, ich habe zwar auch schon hie und da eine .htaccess geschrieben und eingesetzt, mir aber über Paßwortverschlüsselungen nie wirklich _ausführlich_ Gedanken machen müssen (unabhängig von der Plattform). "crypt" und "MD5" sind mir bekannt, aber nur in der Form, daß ich damit schnell mal ein Paßwort erstellen kann. Wie das Ganze im Detail funktioniert, hat mich bisher nur am Rand interessiert, wichtig war, daß ich ein "funktionierendes Ergebnis" bekommen konnte.

        htpasswd.exe würde Dir mehr darüber erzählen.

        Leider hat es als "exe" keine manpage auf einem Windows-System, es gibt gerade mal vier Beispiele und acht sehr kurz beschriebene Optionen. Das ist nicht viel, reicht aber für den "Hausgebrauch" aus.

        Grüße aus Berlin

        Christoph S.

        1. Hi Christoph,

          htpasswd.exe würde Dir mehr darüber erzählen.
          Leider hat es als "exe" keine manpage auf einem Windows-System

          http://httpd.apache.org/docs/programs/htpasswd.html
          sollte ausreichen.

          Es geht ja gar nicht darum, daß Du den exakten Datei-Aufbau verstehst (außer dem Apache-Authentifizierungsmodul muß das im Prinzip keiner können - es sei denn, Du willst htpasswd.exe nachprogrammieren).
          Ich will nur erreichen, daß Du nicht hier einen Fehler vermutest, bloß weil Du das Dateiformat noch nie gesehen hast.

          Viele Grüße
                Michael

          --
          T'Pol: I apologize if I acted inappropriately.
          V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
          (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
           => http://www.peter.in-berlin.de/projekte/selfcode/?code=sh%3A|+fo%3A}+ch%3A]+rl%3A(+br%3A^+n4%3A(+ie%3A%25+mo%3A)+va%3A|+de%3A%2F+zu%3A|+fl%3A(+ss%3A)+ls%3A~+js%3A|
          Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.
      2. Hallo!

        l1n00x:$apr1$Nk1.....$vlBqjzF7KuDbMp2ampso61
        Selbst wenn du "htdocs" als DocumentRoot beibehalten hast ist deine Angabe hier ziemlich vollkommen unverständlich. Was bedeutet bitte "l1n00x:$apr1$Nk1.....$vlBqjzF7KuDbMp2ampso61" ?

        Es gibt noch andere Passwort-Verschlüsselungen als crypt - und das hier ist eine davon.
        (Nämlich MD5; "l1n00x" ist der Username dabei; htpasswd.exe würde Dir mehr darüber erzählen.)

        Hm. Aber seit wann gibt es $ in einer MD5-Prüfsumme und seit wann wird da zwischen Groß- und Kleinschreibung unterschieden?

        Meines Wissens kommen in MD5 doch nur folgende Zeichen vor:

        [0-9A-F]

        ich weiß nicht was das ist.

        Grüße
        Andreas

        1. Hi Andreas,

          Es gibt noch andere Passwort-Verschlüsselungen als crypt - und das hier ist eine davon.
          (Nämlich MD5; "l1n00x" ist der Username dabei; htpasswd.exe würde Dir mehr darüber erzählen.)
          Hm. Aber seit wann gibt es $ in einer MD5-Prüfsumme und seit wann wird da zwischen Groß- und Kleinschreibung unterschieden?

          in dieser Zeile steht mehr drin als nur ein MD5-Verschlüsselungs-Ergebnis, und deshalb offensichtlich auch logische Feldtrennzeichen. Nein, ich habe den Quelltext des Programms nicht gelesen, aber um ein Authentication-Ergebnis zu prüfen, werden nun mal Kombinationen aus Userid und Passwort benötigt - also müssen mindestens diese beiden Informationen hier drin stehen.

          Führe bin/htpasswd.exe aus, erzeuge damit eine neue Passwort-Datei mit einem MD5-codierten Eintrag, und schau Dir das Ergebnis mit einem Editor an ... that's it.

          Viele Grüße
                Michael

          --
          T'Pol: I apologize if I acted inappropriately.
          V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
          (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
           => http://www.peter.in-berlin.de/projekte/selfcode/?code=sh%3A|+fo%3A}+ch%3A]+rl%3A(+br%3A^+n4%3A(+ie%3A%25+mo%3A)+va%3A|+de%3A%2F+zu%3A|+fl%3A(+ss%3A)+ls%3A~+js%3A|
          Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.
  3. Hallo!

    Ich hab den Apache 2.0.46 auf meinem Windows 2000 SP4 Rechner laufen, nun ist meine Frage, wie ich das unterverzeichnis "PUBLIC-DATA" schützen kann per .htaccess.

    Wie genau sehen denn Deine Verzeichnisse aus? Nur mal so als Beispiel, ich vermute sowas wie:

    C:\Apache\htdocs\PUBLIC-DATA

    Ich habe wirklich schon sooo viel ausprobiert, aber nie hat es geklappt.

    Hast Du .htaccess schonmal auf Deinem Windows-Rechner oder einem Unix-Rechner erfolgreich nutzen können? Auch Basic-Auth? Bedenke dass  das ganez auf Windiws nicht 1:1 von Unix übertragbas ist, so lassen sich z.B. per crypt verschlüssekte Passwörter die unter Unux funktionieren unter Windows nicht verwenden.

    htdocs(darin ist die .htpasswd)

    das ist sehr dumm, wenn das auch Dein ungeschütztes Doc-Root Verzeichnis ist. Hieße also ich komme bcht unter www.adresse.tld/geheim/, aber dafür auf www.adresse.tld/passwoerter...

    Inhalt:
    l1n00x:$apr1$Nk1.....$vlBqjzF7KuDbMp2ampso61

    Wie hast DU die Datei erzeugt? Womit wurden die Passwörter verschlüsselt?

    dann:als unterverzeichnis von htdocs ist public-data, mit der .htaccess

    AuthUserFile /htdocs/.htaccess

    sieht as nicht ein bisschen nach einem Unix-Pfad aus? Du brauchst den kompletten Pfad!

    AuthName "Public-Data"
    AuthType Basic
    require user l1n00x

    Es gibt ja viele schöne Anleitungen im Netz, nur würde ich mich darauf nicht verlassen, sondern nur auf das "original":

    Darin steht z.B., dass wenn Du .htaccess verwenden willst, Du in der httpd.conf das mit der 'AllowOverride' Direktive für dieses oder alle verzeichnisse erlauben musst, sonst hat eine .htaccess keinen Effekt. Du soltest evtl. erstmal prüfen ob die .htaccess funktioniert, und wenn dem so ist kannst Du gucken warum die Authentifizierung nicht funktioniert. Wie auch oben in den Anleitungen steht brauchst Du hierfür auch die entsprechenden Module, aber die sollten normalerweise bei Windows schon dabei sein. Und wie ebenfalls da steht, solltst Du die Passwörter mit der 'htpasswd.exe' im bin-Verzeichnis des Apachen erzeugen, wie das geht dazu stehen da auch genügend Beispiele.

    Viele Grüße
    Andreas

    PS: Ich würde das entsprechend aber über die httpd.conf konfigurieren, und auch einen komplett abgeschotteten virtual-host für die User "von aussen" einrichten.