www.ProFTPD.de

ProFTPD => ProFTPD - Deutsch => Thema gestartet von: eiKo am 15. Mai 2003, 14:27:10



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"
MaxClientsPerHost 1 "Nur einmal pro Rechner..."
MaxHostsPerUser 2 "Dieser Benutzer kann sich max von 2 Rechnern gleichzeitig anmelden."
MaxInstances 10
Hilfe (http://www.proftpd.de/docs/index.php?&directive_name=max)


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 rahmen?? hammer wieso geht das net bei mir? wäre nett wen die conf posten könntest

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