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 |