Sicherer Zugangsschutz + Verzeichnis / Dateischutz

ich hab da auch mal ne frage bezüglich htaccess.

ich würde gerne ein globale htacces verwenden die im basis-verzeichnis liegt. das besis verzeichnis allerdings soll zugriffe zulassen weil da ligt ja auch mein index. alles unten drunter aber soll abgeriegelt werden und nur per php zugelassen werden, nun hab ich aber ein problem:

wenn ich das so mache wird echt alles gesperrt: css funkt. auch nicht mehr. heisst das jetzt dass ich alle grafiken die ich verwende auch zugänglich machen muss oder gibts ne lösung dass ich mir die zwar anzeigen lassen kann aber kein user ins verzeichnis darf in dem die liegen. o.O?
 
Wie jetzt?
Du hast ein Verzeichnis mit Grafiken, die der User sehen darf, dann aber doch wieder nicht?

Um bestimmte Unterverzeichnisse anzusprechen:
Die Directory-Anweisung oder eine eigene .htaccess-Datei im Unterverzeichnis selber.
 
ich hab da auch mal ne frage bezüglich htaccess.

ich würde gerne ein globale htacces verwenden die im basis-verzeichnis liegt. das besis verzeichnis allerdings soll zugriffe zulassen weil da ligt ja auch mein index. alles unten drunter aber soll abgeriegelt werden und nur per php zugelassen werden, nun hab ich aber ein problem:

wenn ich das so mache wird echt alles gesperrt: css funkt. auch nicht mehr. heisst das jetzt dass ich alle grafiken die ich verwende auch zugänglich machen muss oder gibts ne lösung dass ich mir die zwar anzeigen lassen kann aber kein user ins verzeichnis darf in dem die liegen. o.O?

/var/www/
/var/www/index.php
/var/www/css/mystyle.css
/var/www/geheimes_verzeichnis/
/var/www/geheimes_verzeichnis/.htaccess

so etwas ?
 
/var/www/
/var/www/index.php
/var/www/css/mystyle.css
/var/www/geheimes_verzeichnis/
/var/www/geheimes_verzeichnis/.htaccess

so etwas ?

sowas in die richtung. ICh will die css datei zwar im design verwenden aber vermeiden das ein user im css verzeichnis rumgräbt. ich lese auch imemr wieder das die htaccess den zugang für php nicht sperrt da das ja serverseitige scripte auf verzeichnis ebene sind aber irgendwie werden einige scripte dennoch lahmgelegt.

ich suche kurz um einfach ein einfach aber wirkungsvolle möglichkeit die user aus den verziehcnissen der seite rauszuhalten. ich lege zwar die scripte schon entsprechend an aber wenn einer das directory direkt anspricht kommt er ja trotzem rein und ich bin mir nicht sicher obs das gelbe vom ei ist dann über all eine idex mit header location anweisung reinzulegen... -.-' ich bin was sowas angeht noch ziemlich grün hinter den ohren und zieh mir zu dem zweck grade jede menge tutorials rein. muss aber immer wieder feststellen das ich mit den brot-und-butter hacks dann doch irgenwie immer reinkomme. ich erwäge momentan ernsthaft beim apachen das directory listing abzuschalten um schon mal von der seite den leuten den spass zu verderben aber da gibts dann auch wieder den ein oder andern exploit der mir das leben schwermachen kann... -.-' das web ist schon ein haifisch becken.
 
Ich erwäge momentan ernsthaft beim apachen das directory listing abzuschalten
Das sollte man sowieso machen :suspekt:

Wenn du da dann noch immer Exploits findet:
Bugs an Apache melden und nach dem Fix deinen Server updaten.

Und wenn das Listing erst mal aus ist bekommt man die Dateien nur noch,
wenn man sie genau beim Namen kennt.
Für CSS: Die bekommt der Benutzer beim Seitenladen sowieso, also ists doch egal.
Für andere Dateien, die er nicht haben soll, aber deren Namen man erraten könnte:
Die gehören eben in ein anderes, htaccess-gesichertes Verzeichnis.

PS: Bitte Netiquette 15 beachten.
 
Also wir wollen uns nicht vor WEBUSER schützen sondern vor LOKALEN User ?

Das kannst Du mit chmod und chown machen
Sachen die im Webserver liegen müssen für den WEBSERVER User lesbar sein. Deswegen nimmt man bei solchen den Webserver seine (oder wie wir sehen werden in eine spezielle) Gruppe auf.

Angenommen du bist der lokale User otto
Du willst dich vor dem lokalen User idiot schützen
Webserver User ist der www-data

damit nimmst du www-data in deine Gruppe auf.
Code:
otto@lokalhost:~# usermod -a -G www-data otto

der User Idiot darf nicht Mitglied in deiner Gruppe sein.

Sollte er das sein dann musst Du eben eine neue leere Gruppe anlegen und diese benutzen.
Des weiteren darf der User Idiot nicht Mitglied in einer Administratoren Gruppe sein wie zB root, System, oder andere ... und auch keine Administratoren Rechte haben zB UID usw ...

um herauszufinden in welchen Gruppen du bist :
Code:
otto@lokalhost:~# groups otto
otto: otto, root, www-data
Du bist also in deiner eigen Gruppe, in der root Gruppe und in der www-data

wir checken nun den Idioten
Code:
otto@lokalhost:~# groups idiot
idiot: idiot
der Idiot ist also nur Mitglied in seiner eigenen Gruppe.

Nun kannst du also deine Verzeichnisse die Idiot nicht sehen soll mit chown dir und deiner Gruppe zuweisen (wenn sie es noch nicht sind ...)
Code:
otto@lokalhost:~# chown -hR otto:otto /var/www/ottohomepage/supergeheimesverzeichniss/
sollte jetzt der Idiot in deiner Gruppe sein legst du mit groupadd die Gruppe geheim an und machst www-data und dich Mitglieder in der Gruppe
Code:
otto@lokalhost:~# groupadd geheim
otto@lokalhost:~# usermod -a -G www-data geheim
otto@lokalhost:~# usermod -a -G otto geheim
anschliessen gibst das Material der Gruppe geheim
Code:
otto@lokalhost:~# chown -hR otto:geheim /var/www/ottohomepage/supergeheimesverzeichniss/

und jetzt machen wir den Zaubertrick fix, indem wir den Rest der Welt ausschließen. Wir benutzen dazu chmod.
wobei 750 bedeutet folgendes
  • owner__r w x____(4 + 2 + 1 ) * 100
  • gruppe_r - x____( 4 + 1) * 10
  • other__- - -____(0) * 1
    macht zusammen ( (4 + 2 + 1 ) * 100 ) + ( ( 4 + 1) * 10 ) + ( (0) * 1) = 750

Code:
otto@lokalhost:~# chmod -R 750 /var/www/ottohomepage/supergeheimesverzeichniss/
sollen die mitglieder der gruppe geheim VOLLEN zugrif auf das verzeichnis bekommen also inklusive schreiben
Code:
otto@lokalhost:~# chmod -R 770 /var/www/ottohomepage/supergeheimesverzeichniss/

in dem Moment wird der Idiot das Verzeichnis und alles was drin ist nicht mal mehr sehen, geschweige öffnen oder lesen können
Wenn du willst dass er die Verzeichnisse sieht aber nicht rein kann musst du ihm das r im Rest der Welt geben also quasi
Code:
otto@lokalhost:~# chmod 754 /var/www/ottohomepage/supergeheimesverzeichniss/
(ohne -R rekursiv). Da er den x nicht hat kann er das Verzeichnis nicht öffnen. Er Sieht es nur von außen und kann ihm winken.

wenn Du das kapiert hast dann kannst Du Dir ein Bier öffnen, und zuversichtlich sein, die Welt ist doch gut.
 
Zurück