www.ProFTPD.de

ProFTPD => ProFTPD - Deutsch => Thema gestartet von: Anonymous am 12. Februar 2006, 21:08:06



Titel: classes / limits
Beitrag von: Anonymous am 12. Februar 2006, 21:08:06
Hallo alle,

ich möchte gerne von extern eine Geschwindigkeitsbegrenzung von 35KB einstellen. Vom internen Netz soll diese aber nicht aktiv sein. Ich habe es mit Classes versucht. Folgend meine Konfig.

*******************************************
ServerName                      "FTP  Server"
ServerType                      standalone
DefaultServer                   on
#schnellere Netzwerkzugriffe
USEReverseDNS                   off
IdentLookups                    off

# Limit login times and timeouts to drop dead clients.
TimeoutLogin            60
TimeoutIdle             60
TimeoutNoTransfer       60
TimeoutStalled          60
TimeoutSession          28800

# Setup fake properties  Gruppen bei Erstellung einbeziehen
DirFakeGroup            on      ftp

#Logging
TransferLog /var/log/proftpd.xferlog

LogFormat default "%h %l %u %t \"%r\" %s %b"
LogFormat auth "%v [%P] %h %t \"%r\" %s"
LogFormat write "%h %l %u %t \"%r\" %s %b"

#Log file/dir acces
ExtendedLog /var/log/proftpd.aut_log AUTH write

<Global>
AccessGrantMsg          "Willkommen User : %u"
DisplayLogin            "/var/log/ftp_server_logon.txt"
</Global>

# 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                           077


# Klassen definieren
Classes on
Class local ip 192.168.69.0/24

<ifClass local>
        MaxClients 100  "Maximale Anzahl der Benutzer (%m) erreicht"
        TransferRate RETR 9999.0
</ifClass>

MaxClients              2 "Maximale Anzhal der Benutzer (%m) erreicht"
#Server Limits
TransferRate RETR 35.0
#TransferRate STOR 25

#Set the user and group under which the server will run.
#User                    ftp
Group                    ftp

# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
DefaultRoot ~
#DefaultRoot /home/ftp

#Allow FTP Login for Users that don't have a shell login
RequireValidShell off

# Normally, we want files to be overwriteable.
AllowOverwrite          on
AllowRetrieveRestart    on
AllowStoreRestart       on

# Bar use of SITE CHMOD by default
<Limit SITE_CHMOD>
  DenyAll
</Limit>


**********************************************

Wenn ich den Server nun starten möchte, bekomme ich folgende Meldung:

/etc/init.d/proftpd restart
 * Starting proftpd ...
 - Fatal: Classes: deprecated. Use <Class> sections instead. on line 48 of '/etc/proftpd/proftpd.conf'


Ich habe ProftpD mit folgenden Flags installiert.

[ebuild   R   ] net-ftp/proftpd-1.2.10-r7  -authfile -hardened +ipv6 -ldap -mysql +ncurses -noauthunix +pam -postgres (-selinux) -sendfile -shaper -softquota +ssl +tcpd -xinetd 0 kB

Habt Ihr einen Tip für mich, oder eine Alternative?!

Schönen Danke
escaperig


Titel: classes / limits
Beitrag von: VolGas am 13. Februar 2006, 06:51:52
Hallo!

Das Thema hat mich jetzt selbst interessiert, da Dein Lösungsansatz der Doku
nach richtig und logisch ist.

Nach vielem erfolglosem Suchen (und gleichzeitigem Lernen) auf der Entwicklersite
von ProFTPD habe ich dann dort Google nach "<Class" suchen lassen und bin
dabei sogar auf ein kurzes, aber gutes HowTo gestoßen:

http://www.castaglia.org/proftpd/doc/contrib/ProFTPD-mini-HOWTO-Classes.html

Demnach könnte dann Deine Lösung z.B. so aussehen:
Code:
<Class local>
    From 192.168.69.0/24
</Class>

<IfClass local>
    MaxClients 100 "Maximale Anzahl der Benutzer (%m) erreicht"
    TransferRate RETR 9999.0
</IfClass>

<IfClass !local>
    MaxClients 2 "Maximale Anzhal der Benutzer (%m) erreicht"
    TransferRate RETR 35.0
</IfClass>

Einen "<IfClass ...>"-Block kann man aber nur dann verwenden, wenn das
Modul "mod_ifsession" mit eincompiliert wurde. Das hast Du nach eigenen
Angaben nach aber leider nicht. Das läßt sich aber bestimmt noch ändern... ;-)

Ich hoffe, ich konnte Dir damit weiterhelfen.

mfg.
  VolGas


Titel: classes / limits
Beitrag von: escaperig am 13. Februar 2006, 12:34:46
@VolGas

Danke für Deine schnelle und kompetente Hilfe. Ich habe nun das MOdul mit kompeliert und der Server startet mit dem von Dir angegeben Config Block.

Jedoch funktioniert die Begrenzung nicht so recht. Immer "volle" Leitung.

Ip-Bereich ist richtig gewählt, habe zum Test auch das interne mal begrenzt, doch kein Erfolg.

Wenn ich das TransferRate RETR außerhalb der Class Anweisung verwende, ist die Begrenzung aktiv.

Noch eine Idee?!

Gruß
escaperig


Titel: classes / limits
Beitrag von: VolGas am 13. Februar 2006, 16:58:47
Ich kann mich erinnern irgendwo gelesen zu haben, daß man das Modul "mod_ifsession"
als letztes Modul beim Compilieren angeben soll, damit die andere Module irgendwie
richtig registriert werden. Ich weiß zwar nichts davon, aber vielleicht versuchst Du
es einfach einmal. Einen Versuch ist es auf jeden Fall wert...

mfg.
  VolGas


Titel: classes / limits
Beitrag von: escaperig am 14. Februar 2006, 11:33:19
@VolGas

Ich gebe ja nur das "mod_ifsession" Modul beim kompelieren an. (./configure --with-modules=mod_ifsession)

Die restlichen Module macht er ja automatisch. Hier meine Module die kompeliert wurden.

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_ifsession.c
  mod_cap.c


Vielleicht fehlt ja noch etwas?!

Schönen Gruß
escaperig