Titel: Wie macht man so eine Konfiguration ? Beitrag von: eiKo am 15. Mai 2003, 14:27:10 Hi,
mich möchte auf meinem Computer einen FTP Server laufen lassen. ich habe ein Haputverzeichnis: /home/ftp ein download Verzeichnis: /home/ftp/download und ein Upload Verzeichnis: /home/ftp/incomming So jetzt möchte ich 4 usern den zugriff auf den FTP Server erlauben. User 1: Login: download Pass: download User Limit: 2 Idle Timeout: 60s Directory: /home/ftp/download Rechte: nur downloaden und downloads resumen User 2: Login: upload Pass: upload User Limit: 10 Idle Timeout: 120s Directory: /home/ftp/incomming Rechte: nur uploaden und uploads resumen, darf aber nichts downloaden User 3: Login: look Pass: look User Limit: keins Idle Timeout: 30s Directory: /home/ftp/download Rechte: darf nur sehen was drauf ist User 4: Login: admin Pass: admin User Limit: 1 Idle Timeout 120s Directory: /home/ftp Rechte: darf alles Es soll kein Anonymous Login möglich sein!!!!! So ich habe diese 4 user jetzt alle auf meinem system angelegt, und der Gruppe ftp hinzugefügt. Die Rechte für /home/ftp habe ich auf 777 gesetzt. Jetzt habe ich aber leider keine ahnung, wie ich die Rechte für die einzelnen user in der proftpd.config eintage :( Kann mir da jemand helfen ? Titel: Re: Wie macht man so eine Konfiguration ? Beitrag von: Anonymous am 15. Mai 2003, 20:51:36 Zitat von: "eiKo" So ich habe diese 4 user jetzt alle auf meinem system angelegt, und der Gruppe ftp hinzugefügt. Die Rechte für /home/ftp habe ich auf 777 gesetzt. naja, was Du willst ist ziemlich tricky. Da hast Du Dir ganz schoen was ausgesucht. Vorneweg (zum ernuechtern): per Default kann ProFTPD das nicht. besonders die unterschiedlichen Limits per User stellen proFTPD vor ein Problem. Fangen wir mit dem einfachen an: Da die User "Download", "upload" und "look" ja ein festes Dir haben, gebe den Usern einfach das jeweilige Dir als Homedirectory und fuege dann "defaultroot ~" in die Config. Den Admin fuegst Du einfach einer neuen Gruppe hinzu, und diese Gruppe uebergibst Du dann als Ausschluss an defaultroot (siehe Anleitung). Was in den Verzeichnissen passieren darf, definierst du mit <directory> und <limit>. Hier helfen ggf. die neuen Beispiel Konfigs zum verstehen. Die Rechte (also max User): Dafuer brauchst Du das modul "ifsessions". Das findest Du hier: http://castaglia.proftpd.de Ich empfehle Dir: Fange mir den normalen Sachen an, mit einheitlichen maxuser Werten etc. Und wenn das alles laeuft, dann kompilierst Du ProFTPD mit dem Modul nochmal und bastelst dann an "ifsession" rum. Viel Spass... (Wir lesen uns bestimmt noch) :) cu stonki Titel: Wie macht man so eine Konfiguration ? Beitrag von: Wörsty am 15. Mai 2003, 21:18:33 Mal so eine Idee :idea:
Leg erstmal die User so an (haste ja wohl schon): admin mit Heimatverzeichnis /home/ftp download mit Heimatverzeichnis /home/ftp/download upload mit Heimatverzeichnis /home/ftp/incomming look mit Heimatverzeichnis /home/ftp/download Dann setzt du die Direktive DefaultRoot auf ~ So - nun der Zweite Teil User Limit und Idle Timeout je User usw. klappt meiner Meinung nach nur mit mod_ifsession (extra downloaden (http://www.castaglia.org/proftpd/modules/proftpd-mod-ifsession-0.9rc6.tar.gz) und kompilieren (http://www.castaglia.org/proftpd/modules/mod_ifsession.html)). Code: <IfUser download> TimeoutIdle 60 MaxClients 2 Leider saugen schon 2 Leute <Directory *> <Limit WRITE> # Alle Schreibzugriffe verbieten DenyAll </Limit> </Directory> </IfUser> \<IfUser upload> TimeoutIdle 120 MaxClients 10 Leider laden schon 10 Leute was hoch <Directory *> <Limit READ WRITE> DenyAll </Limit> <Limit STOR> AllowAll </Limit> </Directory> \</IfUser> <IfUser look> TimeoutIdle 30 <Directory *> <Limit WRITE> DenyAll </Limit> </Directory> </IfUser> <IfUser admin> TimeoutIdle 120 MaxClients 1 Leider ist der admin schon da <Directory *> <Limit READ WRITE> AllowAll #Ist sowieso erlaubt aber zum Verständnis.. </Limit> </Directory> </IfUser> Es soll kein Anonymous Login möglich sein! Halt alles zwischen <Anonymous> und </Anonymous> incl. der Direktiven <Anonymous> und </Anonymous> löschen. Titel: Wie macht man so eine Konfiguration ? Beitrag von: Anonymous am 15. Mai 2003, 23:28:08 Hi, erstmal danke
das ist eine gute idee bis jetzt, wenn ihr mir noch bei einem kleinen Problem helfen koennt. User admin und upload laufen ohne Probleme, nur der download user macht stress, der will einfach sich nicht in seinen Rechten einbinden lassen, der kann öschen schreiben verschieben aendern usw., obwohl ich ihm gesagt habe, dass er es ncht darf !!!!! So sieht meine conf jetzt aus. Code: ServerType standalone DefaultServer on Umask 022 ServerName "mein ftp server" ServerAdmin root@localhost ServerIdent on "mein ftp server" Port 21 MaxInstances 10 MaxLoginAttempts 3 User nobody Group nogroup AllowForeignAddress on AllowRetrieveRestart on AllowStoreRestart on DeleteAbortedStores off TransferRate RETR 14 TransferRate STOR 200 TransferRate STOU 200 TransferRate APPE 200 AllowOverwrite on DefaultRoot ~<Global> <Limit LOGIN> AllowUser admin AllowUser upload AllowUser download DenyALL </Limit> </Global> RequireValidShell off <IfUser admin> TimeoutIdle 120 MaxClients 1 "Leider ist der admin schon da" <Directory ~/*> <Limit CWD MKD RTFR RNTO DELE RMD RETR STOR SITE_CHMOD STAT LIST NLST ALL> AllowAll </Limit> </Directory> </IfUser> <IfUser download> TimeoutIdle 60 MaxClients 2 "Leider saugen schon 2 Leute" <Directory ~/*> <Limit MKD RTFR RNTO DELE RMD STOR SITE_CHMOD WRITE> DenyAll </Limit> <Limit CWD RETR READ> AllowAll </Limit> </Directory> </IfUser> <IfUser upload> TimeoutIdle 120 MaxClients 10 "Leider laden schon 10 Leute was hoch" <Directory ~/*> <Limit READ WRITE> DenyAll </Limit> <Limit STOR MKD> AllowAll </Limit> </Directory> alle 3 user gehoehren einer gruppe an "ftpserver" ist das so richtig ???? So dann habe ich ja 3 Ordner gemacht, /home/ftp /home/ftp/download /home/ftp/incomming und den FTP usern diese Ordner als homedir gegeben. Dann habe ich noch ein chown :ftpserver /home/ftp/* -R und ein chmod 777 /home/ftp/* -R gemacht, Die rechte für den uploaduser funktionieren, die rechte für admin auch, nur der download user hat auch admin rechte warum ???? ich habe doch gesagt er darf das nichts, selbst wenn ich Code: <Limit All> DenyAll </Limit> hat dieser user alle rechte :( ich habe den user auch mal anderesm mit anderen namen usw angelegt, und auch das direktory geaendert, aber nichts der user hat immer noch volle Rechte, kann mir da noch jemand bei helfen ? Das wäre super :) Danke noch mal !!!!!![ Titel: Wie macht man so eine Konfiguration ? Beitrag von: stonki am 16. Mai 2003, 12:49:58 Zitat von: "Anonymous" Code: <Directory ~/*> directory Angaben IMMER Absolut !!! Wenn Du auch hier mit ~ arbeitest, dann werden die in Abhaengigkeit zum HomeDir gesehen. Das mag zwar manchmal sinn machen, aber Dir wuerde ich eher abraten. Man verliert zu schnell den Ueberblick. cu stonki Titel: Wie macht man so eine Konfiguration ? Beitrag von: eiKo am 16. Mai 2003, 14:05:48 also waere dass dann
Code: <Directory /home/ftp/download/*> ???? ist das so richtig ? ich kann ja nicht * alleine achen, da: Code: <Directory *> beim starten von Proftpd diesen fehler aus gibt. Zitat - Fatal: <Directory>: relative pathname not allowed in non-anonymous blocks. wenn ich dann den Pfad der user genau angebe, dann brauche ich diese Ordner den usern ja auch nicht mehr als homedir geben oder ??? Edit: ich habe das jetzt so gemacht, aber der user download kann immer noch alles :( das ding ist ausserirdisch :) Titel: Wie macht man so eine Konfiguration ? Beitrag von: stonki am 16. Mai 2003, 15:07:45 Zitat von: "eiKo" Code: <Directory /home/ftp/download/*> So ist das richtig. Der "*" ist auch wichtig, aber das schauen wir uns spaeter mal an. Sorry, bin heute im Stress: kannst Du Deine aktuelle Config nochmal posten und eben nochmal sagen, was download nicht kann ? Ggf. starte ProFTPD mal im Debug Mode (mini faq #3) oder gebe mir spaeter (morgen ?) Access auf Deine Kiste.. Titel: Wie macht man so eine Konfiguration ? Beitrag von: eiKo am 16. Mai 2003, 15:26:01 Also ok ich habe jetzt alles wieder auf ~/* gemacht :)
Das hier ist meine config mit der es nicht geht !!!!! Code: ServerType standalone DefaultServer on Umask 022 ServerName "mein ftp server" ServerAdmin root@localhost ServerIdent on "mein ftp server" Port 21 MaxInstances 10 MaxLoginAttempts 3 User nobody Group nogroup DefaultRoot ~ AllowForeignAddress on AllowRetrieveRestart on AllowStoreRestart on DeleteAbortedStores off TransferRate RETR 14 TransferRate STOR 200 TransferRate STOU 200 TransferRate APPE 200 AllowOverwrite on<Global> <Limit LOGIN> AllowUser admin AllowUser upload AllowUser download DenyALL </Limit> </Global> RequireValidShell off <IfUser admin> TimeoutIdle 120MaxClients 1 "Leider ist der admin schon da" <Directory ~/*> <Limit CWD MKD RTFR RNTO DELE RMD RETR STOR SITE_CHMOD STAT LIST NLST ALL> AllowAll </Limit> </Directory> </IfUser> <IfUser download> TimeoutIdle 60 MaxClients 2 "Leider saugen schon 2 Leute" <Directory ~/*> <Limit MKD RTFR RNTO DELE RMD STOR SITE_CHMOD WRITE> DenyAll </Limit> <Limit CWD RETR READ> AllowAll </Limit> </Directory> </IfUser> <IfUser upload> TimeoutIdle 120 MaxClients 10 "Leider laden schon 10 Leute was hoch" <Directory ~/*> <Limit READ WRITE> DenyAll </Limit> <Limit STOR MKD> AllowAll </Limit> </Directory> </IfUser> und hier mein kleines workaround ^^ ich glaub das problem liegt im module :) es gibt jetzt 2 download user der erste hat admin rechte und der zweite bekommt die rechte die er so :D dann habe ich den ersten user einfach ausgesperrt und er darf sich nicht an melden :) nur user test und der hat die richtigen rechte ^^ Code: ServerType standalone DefaultServer on Umask 022 ServerName "mein ftp server" ServerAdmin root@localhost ServerIdent on "mein ftp server" Port 21 MaxInstances 10 MaxLoginAttempts 3 User nobody Group nogroup DefaultRoot ~ AllowForeignAddress on AllowRetrieveRestart on AllowStoreRestart on DeleteAbortedStores off TransferRate RETR 14 TransferRate STOR 200 TransferRate STOU 200 TransferRate APPE 200 AllowOverwrite on<Global> <Limit LOGIN> AllowUser admin AllowUser upload # AllowUser download AllowUser test DenyALL </Limit> </Global> RequireValidShell off <IfUser admin> TimeoutIdle 120 MaxClients 1 "Leider ist der admin schon da" <Directory ~/*> <Limit CWD MKD RTFR RNTO DELE RMD RETR STOR SITE_CHMOD STAT LIST NLST ALL> AllowAll </Limit> </Directory> </IfUser> <IfUser download> TimeoutIdle 60 MaxClients 2 "Leider saugen schon 2 Leute" <Directory ~/*> <Limit MKD RTFR RNTO DELE RMD STOR SITE_CHMOD WRITE> DenyAll </Limit> <Limit CWD RETR READ> AllowAll </Limit> </Directory> </IfUser> <IfUser upload> TimeoutIdle 120 MaxClients 10 "Leider laden schon 10 Leute was hoch" <Directory ~/*> <Limit READ WRITE> DenyAll </Limit> <Limit STOR MKD> AllowAll </Limit> </Directory> </IfUser> <IfUser test> <Directory ~/*> <Limit MKD RTFR RNTO DELE RMD STOR SITE_CHMOD WRITE> DenyAll </Limit> <Limit CWD RETR READ> AllowAll </Limit> </Directory> </IfUser> Titel: Wie macht man so eine Konfiguration ? Beitrag von: Wörsty am 16. Mai 2003, 15:46:16 Zitat von: "stonki" directory Angaben IMMER Absolut !!! Ja, großer Meister. :oops: Titel: Wie macht man so eine Konfiguration ? Beitrag von: stonki am 16. Mai 2003, 16:53:29 Zitat von: "Wörsty" Zitat von: "stonki" directory Angaben IMMER Absolut !!! Ja, großer Meister. :oops: hab ich was falscher gesagt ? <verwundert dreischau> Titel: Wie macht man so eine Konfiguration ? Beitrag von: Wörsty am 16. Mai 2003, 20:00:59 Zitat von: "stonki" Zitat von: "Wörsty" Zitat von: "stonki" directory Angaben IMMER Absolut !!! Ja, großer Meister. :oops: hab ich was falscher gesagt ? <verwundert dreischau> Nö nö - hast ja Recht :cry: Ich stell mich in die Ecke da hinten, ja? 8) Titel: Wie macht man so eine Konfiguration ? Beitrag von: eiKo am 17. Mai 2003, 12:01:27 ok dann mache ich eben die <Directory> angaben genau :)
noch eine kleine frage. Irgendwie geht das MaxClients nicht :( es duerfen sich so viele user anmelden wie wollen, und das finde ich schlecht :) muss man bei dem modul ifsession noch etwas anders nehmen als MaxClients <nr> ? Proftpd zeigt aber auch keinen fehler an. Titel: Wie macht man so eine Konfiguration ? Beitrag von: eiKo am 19. Mai 2003, 07:16:19 hmm ich habe mitlerweile gefunden, dass man diese einstellungen nur mit
Code: <ifclass> machen kann, aber wie setze ich einen user in eine class ???? Dass download und test in der class download sind, admin in admin und upload in upload wie macht man dass? ist das auf dem system oder in der Proftpd conf ? Titel: Wie macht man so eine Konfiguration ? Beitrag von: chulu am 22. Mai 2003, 22:24:53 Zitat noch eine kleine frage. Irgendwie geht das MaxClients nicht icon_sad.gif es duerfen sich so viele user anmelden wie wollen, und das finde ich schlecht ich habe das gleiche prob und beomme es einfach net hin, der user kann so oft connecten wie er will obwohl ich ihn auf mac 2 gesezt habe, kann das vielleicht jemand helfen?? Titel: Wie macht man so eine Konfiguration ? Beitrag von: chulu am 22. Mai 2003, 22:39:12 kan es sein das das ganze modul nicht funzt???? weil bei ihm klappts ja auch net?!"
Titel: Wie macht man so eine Konfiguration ? Beitrag von: Wörsty am 22. Mai 2003, 23:07:36 Bei mir geht's - das Modul.
Man kann z.B. folgende Einstellungen vornehmen: Code: MaxClients 2 "Pech" Hilfe (http://www.proftpd.de/docs/index.php?&directive_name=max)MaxClientsPerHost 1 "Nur einmal pro Rechner..." MaxHostsPerUser 2 "Dieser Benutzer kann sich max von 2 Rechnern gleichzeitig anmelden." MaxInstances 10 Titel: Wie macht man so eine Konfiguration ? Beitrag von: Anonymous am 22. Mai 2003, 23:38:38 kannste vielleicht die ganze poroftpd.conf posten, weil ich habe alles versucht nix hat fgeklappt. haste das alles in dem
thx Titel: Wie macht man so eine Konfiguration ? Beitrag von: Wörsty am 22. Mai 2003, 23:45:26 Hab sie grad nicht zur Hand.
Müßte ich extra inne Firma einwählen :( Mail doch mal deine. Titel: Wie macht man so eine Konfiguration ? Beitrag von: chulu am 23. Mai 2003, 08:19:59 okay also hier ist meine
Code: # This is a basic ProFTPD configuration file (rename it to # 'proftpd.conf' for actual use. It establishes a single server # and a single anonymous login. It assumes that you have a user/group # "nobody" and "ftp" for normal operation and anon. ServerName "ProFTPD Default Installation" ServerType standalone DefaultServer on # Port 21 is the standard FTP port. Port 21 # Umask 022 is a good standard umask to prevent new dirs and files # from being group and world writable. Umask 022 # To prevent DoS attacks, set the maximum number of child processes # to 30. If you need to allow more than 30 concurrent connections # at once, simply increase this value. Note that this ONLY works # in standalone mode, in inetd mode you should use an inetd server # that allows you to limit maximum number of processes per service # (such as xinetd). MaxInstances 30 # Set the user and group under which the server will run. User nobody Group FTPgroup # To cause every FTP user to be "jailed" (chrooted) into their home # directory, uncomment this line. DefaultRoot ~ MaxClientsPerHost 2 "you can onLy logIn tWo Time" <IfUser look> TimeoutIdle 60 MaxClients 1 "Only one such user at a time." <Directory /home/ftp/download/[1]mUsic/EnteR/*> <Limit WRITE> # Alle Schreibzugriffe verbieten DenyAll </Limit> </Directory> </IfUser> # Normally, we want files to be overwriteable. <Directory /> AllowOverwrite off </Directory> ratios on UserRatio look 0 0 1 1 CwdRatioMsg "Please Upload!" FileRatioErrMsg "Come on you can send more files than that...." ByteRatioErrMsg "Not enough credits, you have to upload first" der ratio funzt wunderbar, nur das IfUser will nicht. also die richtigen module hab ich drinne : Code: [root@localhost sbin]# proftpd -l Compiled-in modules: mod_core.c mod_xfer.c mod_auth_unix.c mod_auth_file.c mod_auth.c mod_ls.c mod_log.c mod_site.c mod_auth_pam.c mod_ratio.c mod_ifsession.c mod_cap.c [root@localhost sbin]# und die richtige versio auch: Code: [root@localhost sbin]# proftpd -v - ProFTPD Version 1.2.8 [root@localhost sbin]# danke chulu [edit] also ich habe gestern dem autor des m,oduls geschrieben und der meint auch "Also, there were a few small mod_ifsession bugs that are fixed in 1.2.9rc1 (which comes with mod_ifsession)." also denke ich werds mit der neuen version versuchen. leuft der server stabiel, hat die schon wer getestet???? danke chulu [/edit] [edit2] wie entferne ich den server eigentlich sauber wieder? [/edit2] Titel: Wie macht man so eine Konfiguration ? Beitrag von: stonki am 23. Mai 2003, 09:38:45 1) aLso entfernen: musst mal schauen, ob "make uninstall" geht. Ist IMHO aber unnoetig.
2) 1.2.9RC1: habe ich noch nicht eingesetzt, aber in der ProFTPD Mailingliste gab es keine wirklichen Probleme 3) Starte doch ProFTPD einmal im Debug Modus und schaue, welche Ausgaben passieren. cu stonki |