Linux als Webserver läuft nicht

Smigo

Lt. Junior Grade
Registriert
Aug. 2001
Beiträge
294
Hi all

Ich habe ein kleines Problem ich habe bei mir Suse Linux 7.2 Prof installiert und nun habe ich den Webserver eingerichtet und auch den ProTFTP der bei Linux dabei ist lief auch alles, bis ich noch ein paar einstellungen gemacht habe und auf einmal geht nur noch der FTP-Server:( der Apache funzt nich mehr. Ich habe alle einstellungen wieder rückgängig gemacht brachte auch nichts:(.
Ich glaube das ich irgentwas kaputt gemacht habe, muss ich jetzt Linux neu installieren???:(:(


Und noch neben bei wie kann man unter Linux sagen welche Verzeichnisse ein User sehen darf.

Danke schon im voraus.:) ;)
 
Hat den keiner eine Idee

Gibt es niemanden der eine Idee hat, ich hoffe mal das sich irgentwer findet der eine kleine Idee hat:confused_alt:
 
Also eine neuinstallation von suse sollte eigentlich nicht notwendig sein ... es reicht diesbezüglich wenn du in yast das apache packet neu installierst ....

Allerdings wäre es nützlich wenn du ein paar zusätzliche infos geben könntest in wie weit er nicht läuft ... ansonsten kann ich nur n paar allgemeine tips geben ...

1. check mal ob er beim start geladen wird ... müsste irgentwas von "starting service httpd" stehen ... sonst kannst du es mit "rcapache start , stop,restart" halt nach belieben hoch und runter fahren (damit es beim starten kommt muss du in "Yast->System adminitration->Change configuration file" rein gehen und START_HTTPD auf "yes" setzen)

2. wenn er nicht richtig hochfahren will musst du mal im verzeichnis /var/log/httpd/error.log nachschauen ... dort steht dann mit zeitangabe was ihm nicht passt ...


und was die sache mit den rechten für verzeichnisse und datein angeht müsstest du dir mal die befehle "chmod" und "chown" näher anschauen (man chmod und man chown) oder halt im netz nach nem howto suchen weil das jetzt zu aufwendig werden würde das rechtesystem in linux in aller ausführlichkeit zu erklären.
 
Zuletzt bearbeitet:
Also er started den Server zumindest glaube ich das, weil er in der Start datei rc.config glaube ich http... auf yes steht und er nur nicht angesprochen werden kann und was das angeht mit der Log schau ich mal. Ich habe auch fest gestellt das wenn er runterfährt kommt bei httpd faild oder soetwas in der art zumindest ist es Rot.:(


Ich wollte nur wissen wie man sagen kann das ein User nur dieses eine Verzeichnis sehen kann auf dem Server und nicht gleich die komplette Wurzel. :)
 
hmm also das mit dem user kann nur sein eigenes verzeichnis sehen und nicht den kompletten baum könnte ein problem sein denn alle verzeichnisse im wurzel verzeichnis und das wurzel verzeichnis selbst gehören dem root und sind in gruppe root und damit sind nur die "others" rechte interssant ... blos wenn du dort die rechte so setzt das others halt nicht wechseln können dann betrifft das jeden der nicht in gruppe root bzw root ist und das wär fatal für viele dienste z.b httpd ;-) .
und jetzt einfach das homeverzeichnis (/home) so zu setzen das der besagte user aus seine eigen verzeichnis (/home/user) nicht weiter runter kann bringt nix da er direct zum wurzel verzeichnis springen kann (cd /) ... nur zurück wieder kann er nicht ...
und ein spezialtool oder programm was sowas ermöglicht kenn ich leider nicht (abgesehen von ftpd wo man ein wurzelverzeichnis für den user angeben kann unter das er nicht wechseln kann)
 
nochmal

Wie war das, das letzte nochmal, du sagtest "(abgesehen von ftpd wo man ein wurzelverzeichnis für den user angeben kann unter das er nicht wechseln kann)" wie soll das denn nun wieder gehen soweit ich weis nimmt er doch die User die auf dem system sind als seine, Ich habe Proftpd eingestellt das er gleich beim starten hochfährt.:D Und ich versuche mal den Apache neu zu installieren vieleicht hilft das ja.
 
naja man kann mit dem befehl "DefaultRoot" in der proftpd.conf für bestimmte groupen ein bestimmtes verzeichnis angeben von dem aus sie nicht weiter höher kommen

z.b. DefaultRoot /home/ users würde jeden in groupe users bist nach home wechseln lassen aber nicht weiter nach oben in der hierachie so das / oder /usr ... nicht zugänglich sind,damit könntest du sie dort festnageln .. ober halt nur mit ftp

du müsstest halt eine gruppe in yast anlegen , dann die entsprechenden user in die gruppe setzen ... dann "DefaultRoot ~ usersgroup, !users" setzen (~ ist n platzhalter von proftpd unter repräsentiert das home verzeichnis des users)
das würde dafür sorgen das jeder user in usergroup nicht höher als sein homeverzeichnis kommt während durch das ! alle in gruppe users das nicht betrifft

das wär jetzt ne einfache lösung ... aber proftpd bietet halt noch ne menge mehr wie halt .ftpaccess files die in das entsprechene verzeichnis kommen und in der halt für dieses verzeichnis geltene restrictionen eingetragen werden ... usw
 
Hey thk

Hey danke probier ich mal durch und sagen dir dann ob es gefunzt hat.:) :)
 
ich habe das gleiche problem, bei mir läuft der apache auch nicht, er wird allerdings am anfang gestartet und auch das neuinstallieren der packete hat nichts an der tatsache geändert, dass sich der localhost nicht aufrufen lässt. ich gehe über router ins inet und kann deswegen keine statische ip fürs netzwerk einstellen. ich nehme jetzt an, dass es daran liegt. kann mir jemand sagen, ob ich damit richtig liege?
 
also das die ip dynamisch vergeben wird sollte eigentlich keine probleme machen ...

ob der server wirklich da ist kann man am bester testen in dem man "nmap" verwendet ... also "nmap localhost" zeigt einem alle ports an die auf dem loopback device (welches die ja ip 127.0.0.1 hat) verwendet werden:


Starting nmap V. 2.12 by Fyodor (fyodor@dhp.com, http://www.insecure.org/nmap/)
Interesting ports on localhost (127.0.0.1):
Port State Protocol Service
21 open tcp ftp
22 open tcp ssh
25 open tcp smtp
80 open tcp http

wobei halt der port 80 standartmaessig der apache ist (unter der vorraussetzung das in der konfig file "Port 80" steht und "BindAddress *" oder "BindAddress 127.0.0.1 oder localhost")... wenn dort nix ist dann ist der apache auch nicht da ... was bedeuted das man sich mal die logfiles näher anschauen muss um zu sehen was ihm eigentlich nicht passt ...
 
Noch mal zu dieser sache mit den Users

Ich hatte die Idee einen FTP Server zu machen, ich habe auch schon alles hinbekommen nur das die User die sich anmelden auch nur das sehen sollen was ic möchte, auf deutsch nur den Ordner den ich bestimme soll der andere sehen und er das nicht in die Wurzel schauen.
Das was du geschrieben hast habe ich versucht umzusetzten aber dann konnte ich nicht mehr zugreifen und in der xconsole zeigte er mir immer einen fehler das der Ordner nicht vorhanden ist. Sage mir bitte noch einen anderen Weg.
 
Ok ist zwar komisch des es nicht funzt weil ich es vorher bei mir ausgetestet hab aber es gibt ja noch n paar andere alternativen ...

Das nächste wäre entsprechende Verzeichnisse mit den ".ftpaccess" 'Dateien zu versehen welche genau für das verzeichnis in dem sie sich befinden Anweisungen enthalten, vorbereitend dazu musste du folgende zeile in die proftpd.conf einbinden ' PathDenyFilter "(\.ftpaccess)" ' ,falls sie nicht sogar schon drin ist.

Der Aufbau einer .ftpaccess Datei is im prinzip so:

<Limit COMMANDOS>
MEHR COMMANDOS
</Limit>

COMMANDOS für Limit gibts folgene: ALL - betrifft alle operationen (READ WRITE DIRS)
READ - betrifft alle lesende operationen ausser das verzeichnis listing
WRITE - betrifft alle schreibenden (erstellen,löschen ..) operationen
DIRS - betrifft alle operationen fürs verzeichnis listing

CWD - verzeichnis wechseln
CDUP - (wird CWD aufgerufen wir CDUP mit beeinflusst) verzeichnis in der hierachie nach oben wechseln
MKD - verzeichnis erstellen
RNFR - umbenennen von
RNTO - umbenennen in
DELE - löschen eine datei
RMD - löschen eines verzeichnisses
RETR - eine datei vom server zum client schicken ...
STOR - eine datei vom client zum server schicken und abspeichern ...

... diese COMMANDOS werden halt oben je nach bedarf eingetragen und mit einem space getrennt ...

MEHR COMMANDOS sind : Allow/Deny IP
AllowUser/DenyUser username
AllowGroup/DenyGroup gruppenname
AllowAll/DenyAll - alle clients akzeptieren oder verweigern
... hier werden die einzelnen einträge mit einem comma getrennt und mit dem ! kann man halt eine logische umkehr basteln wie schon in "DefaultRoot"

ein nützliches kommando welches ausserhalb von <Limit> </Limit> steht ist "HideNoAccess On/Off" .. damit würde ein verzeichnis was für den user gesperrt ist gar nicht erst angezeigt wenn ein listing gemacht wirdcd


für mehr infos zu kommandos usw musste mal bei http://www.proftpd.net/ vorbeischauen.

Beispiel:

HideNoAccess On
<Limit READ WRITE CWD>
DenyUser bill,tester
AllowUser guybrush
</Limit>

... hier würden die user bill,tester keine rechte haben in das verzeichnis zu wechseln oder lese und schreibe operationen in dem verzeichnis durchzuführen ... sind aber in der lage ein listing zu machen wobei unterverzeichnisse zu welchen sie keinen zugang (durch .ftpaccess in den unterverzeichnissen) im listing nicht angezeigt werden ... auf diese weise können sie in die nichtgeschützten unterverzeichnisse des verzeichnisses reinkommen ... damit wäre das eine gute config für das /home verzeichnis ... so sind sie in der lage beim login in ihre homeverzeichnisse zu kommen ... den user guybrush interssiert das alle recht wenig

<Limit ALL>
DenyAll
AllowUser guybrush
</Limit>
... hier würden alle ausser user guybrush nix dürfen ... das ist wiederum gut um ein verzeichnis und dessen unterverzeichnisse zu schützen ... also z.b. um es ins / verzeichnis zu setzen ... dummerweise ist es im / verzeichnis so (und nur dort ! ... bei allen anderen verzeichnissen ist das nicht so) das man trotzdem noch alle unterverzeichnisse erreichen kann die nicht extra geschütz sind (cd / funzt nicht aber cd /usr z.b. würde funzen) ... was aber den vorteil hat das du / total dicht machen kannt und restricktierte user immer noch in ihr homeverzeichniss kommen ... also müsstest du dann alle unterverzeichnisse von / mit ihrer eigenen .ftpaccess file schützen

wenn du jetzt eine .ftpaccess file für mehrer verzeichnisse verwenden willst weil halt die angegeben optioen gleich sind oder du mit nur einer änderung gleich mehrere verzeichnisse erreichen willst solltest du symbolische links verwenden "ln -s Quelle Ziel" z.b. du hast in / eine .ftpaccess file und willst sie auch in /usr haben ... machst du "ln -s /.ftpaccess /usr/.ftpaccess" wodurch in /usr ein link mit dem namen .ftpaccess auf die ./ftpaccess datei im / verzeichniss ... allerdings hat das den nachteil das wenn in / die datei gelöscht oder fehlkonfiguriert wird alle verzeichnisse die den link nutzen ebenfalls ein problem haben

so was wars im groben ... alls tip würd ich noch geben das du mal die proftpd.conf durchforstest da die dort n paar sachen zum auskommentieren haben mit dem du die .ftpaccss files besser schützen kannst usw ...

viel spass beim basteln
 
Zurück
Oben