# apache will nicht und .htaccess problem



## MJB_00000000002 (17. Juli 2007)

Hallo liebe Leute,

widermal ICH.. hab seit kurzem unseren Webserver mit Datenbank Anbindung am laufen und nun soll auch unser Dateiserver mit der Datenbank verbunden werden. Das klappt soweit schonmal... nur das doofe ist, dass alle verzeichnisse übers internet so eingesehen werden können, denn logischerweise werden ja alle Dateien im Document Root gespeichert ... ich weiß ... .htaccess kann mir jemand mal verklickern wie das geht? ich find nirgendswo von anfang an sauber und vernünftig erklärt gibts nen Tutortial dafür? Habe nur gelsen, dass man die httpd.conf fast komplett umschreiben muss aber sonst.. ich raff das irgendwie nicht. hab in meinem testorder das drin 

.htaccess

AuthType digest
AuthName "test Datenserver"
AuthuserFile "website/daten/.htpasswd"
require valid-user

.htpasswd

user:test

was muss man alles an der verdammten httpd.conf verstellen und was muss in die zu schützenden Ordner rein? Achja noch ein problem.. an meinem lokalen Rechner probiere ich immer die "neuen" sachen aus, bevor sie auf den Server kommen. Derzeit spinnt mein Apache wohl ein wenig ... mysql bekomme ich ohne probleme über die konsole an, aber Apache starte ich, dann wirds grün und 2 sek. später ist er wider aus.. Aie kann das Hab kein iis oder iss installiert nur Apache.. 

MfG


----------



## Dr Dau (17. Juli 2007)

Hallo!

Der Server steht aber irgendwo im Internet?
Denn bei einem Server innerhalb Deines Netzwerks würde es auch langen den Zugriff von Aussen generell zu unterbinden.

"AuthType digest" erwartet dass das Passwort in verschlüsselter Form übermittelt wird.
Da sich dieses aber wohl kaum jemand merken kann, solltest Du "AuthType basic" verwenden.
Wenns um die Sicherheit geht, würde ich eher eine SSL gesicherte Verbindung (http*s*) verwenden.
Ansonsten stimmt die .htaccess (vorausgesetzt der Pfad zur .htpasswd stimmt).

Zur .htpasswd:
Wenn der Server ein Linuxsystem ist, muss das Passwort verschlüsselt in der .htpasswd stehen.
Um das Passwort zu verschlüsseln kannst Du entweder die htpasswd.exe aus dem Apache-Verzeichnis von dem Windows PC nehmen, oder Du nimmst ein Tool wie z.b. Encode UNIX Password (Freeware).

Der Passwortschutz zählt ab dem Verzeichnis (inkl. aller Unterverzeichnise) in dem die .htaccess liegt (sollte also sinngemäss im Document Root liegen  ).

An der httpd.conf brauchst Du eigentlich nichts ändern, der Passwortschutz müsste (wenn ich mich recht erinner) per default aktiviert sein.

Dass Apache sich gleich wieder abschaltet, könnte daran liegen dass Port 80 (und evtl. auch Port 443) schon von einem anderen Programm verwendet wird.
Z.b. einem Messenger (inkl. Skype & Co.).
Ich meine mich auch daran zu erinnern dass es hier mal einen Thread gab, wo sich herausgestellt hatte dass Adobe Acrobat (Reader) den Port 80 belegt hatte.
Also einfach mal alle Programme überprüfen (evtl. hilft schon ein Blick in den Task-Manager), bzw. alle überflüssigen Programme beenden.
Evtl. gibt ein Blick in die error.log von Apache auch Auskunft über das Problem.

Gruss Dr Dau

[edit]
Auf SelfHTML gibt es ganz gute Erklärungen zu .htaccess.
.htaccess - Server-Reaktionen kontrollieren
.htaccess Zugriffskontrolle
[/edit]


----------



## MJB_00000000002 (18. Juli 2007)

danke danke für die schnelle antwort!

1. Der Datenserver bzw. die Datenbank ist hausintern, Windows Server 2003, und soll demnächst auch auf Dateiserver umgestellt werden. Heißt alle Daten werden dort gespeichert und können dann mit dem link aus der datenbank abgerufen werden. 
Allerdings haben wir ca 3 Mitarbeiter mit UMTS Karten, die sich hier ins Haus "einwählen" wollen, da aber unsere router vpn nicht unterstützt haben wir vor die Datenbank mit den Datein zu verknüpfen, so kann jeder mitarbeiter ran und daten runter bzw. raufladen.(alles mit PHP und Session gemanaged)

2. Das mit dem Verzeichnisschutz und den verschiedenen Arten war mir schon klar, ich wollte halt Digest haben, weil es halt safer ist. Gedenke aber langsam zu ssl zu gehen, da das hier Firmendaten sind und eigentlich außer unserenr Mitarbeitern NIEMAND Zugriff haben sollte.

3. wWe war das denn mit digest..? wenn ich jetzt dieses passwort in "$§938" hab, muss ich das dann auch so in das Browserfeld eingeben oder wie?

4.  Digest war nicht aktiviert, aber basic .. hab das modul mal eben angeschmissen .. war vorher mit # markeirt.

5.  Bekomme immer serverfehler error 500 - ich weiß dafür gabs ne seite, ich such danach.

danke aber schonmal für die Meldung!

MfG


----------



## Dr Dau (18. Juli 2007)

Zu 1:
Die externen Mitarbeiter verbinden sich also per DFÜ-Einwahl mit dem Server?
Dann sollten sie eigentlich auch eine IP aus dem internen Adressbereich beziehen.
In dem Fall würde es langen Apache zu sagen dass nur Zugriffe aus dem internen Adressbereich zugelassen sind.

Zu 2:
digest ist, wass die Passwortübermittlung betrifft, nicht sicherer wie basic.
Wer also die Verbindung "abhört", kann auch auf den Server kommen.
Hinzu kommt noch dass digest wohl nicht von jedem Browser unterstützt werden soll (siehe oben genannte Links).
Es ist also dringend dazu zu raten eine SSL gesicherte Verbindung aufzubauen.

Zu 3:
Bingo.
Wie schon gesagt, ein solches Passwort kann sich wohl kaum jemand merken. 

Zu 4:
digest war vermutlich aus den in Punkt 2 genannten Gründen nicht aktiviert.

Zu 5:
Error 500 ist schon mal ein gutes Zeichen.
Apache scheint sich jetzt also nicht mehr zu beenden.
In Deinem Fall (Windows) vermute ich mal stark dass eine Misskonfiguration in Apache vorliegt.
Ich behaupte mal dass es daran liegt dass Du nun digest und basic aktiviert hast.
Deaktiviere digest mal mit dem vorangestellten #.
Zu der Seite mit den Fehlercodes:
Ich habe grad massive Probleme mit dem Internet (irgendwo scheint ein Knotenpunkt rumzuzicken).
Daher kann ich im Moment meine Bookmarks schlecht durchgehen, irgend ein Bookmark verweist nämlich auf eine ausführliche Seite mit den Fehlercodes.
Aber auf Selfhtml gibt es eine kleine Kurzübersicht --> HTTP-Status-Codes.


----------



## MJB_00000000002 (18. Juli 2007)

SCHADE...dachte man könnte Digest nehmen und der Browser "übersetzt" dann das passwort(in reinform: test nach: ##§$§324  ) und überprüft das dann mit dem was in .htpasswd steht.

Ähm ja.. "einwählen" fällt ja weg, weil wir KEINE VPN Verbindung o.ä. aufbauen - ist ganz gestrichen. Wir versuchen(wollen versuchen) es über ne Datenbank mit hinterlegten Links zu machen. Klappt auch ohne probleme im Test, aber wie gesagt ist dann immernoch das problem, dass man mit Hilfe gewisser infos die unterverzeichnisse im Webserver öffnen kann. Schaue mir mal am besten mal openssl oder sowas an. Hab noch nie mit Sicherheitszertifikaten gearbeitet.. ist aber sicherlich sicherer als session id und ordner nicht schützen.

Mfg
P.S: Danke für die tipps digest und basic zusammen t nicht.


----------



## Dr Dau (18. Juli 2007)

MJB_00000000002 hat gesagt.:


> digest und basic zusammen t nicht.


f u n z t?
Solche Wörter (Chat-Slang) sind hier nicht erwünscht und werden darum rausgefiltert. 

Also wenn der Passwortschutz im Document Root liegt, dann gilt er auch für alle Unterverzeichnisse..... es sei denn er wird dort wieder durch eine weitere .htaccess aufgehoben.

SSL schütz aber keine Verzeichnisse, sondern baut "nur" eine verschlüsselte Verbindung auf.
Die übermittelten Daten vom Browser zum Server (und umgekehrt) werden also "unleserlich" übertragen.
Ich würde aber (zumindest vorerst) nur ein unsigniertes Testzertifikat erstellen, weil kostenlos. 
Eine Session ID (ich nehme mal an dass Du von PHP redest) bringt eigentlich garnichts..... die lässt sich sogar "entführen" (also an Dritte weitergeben).


----------

