In diesem Howto möchte Ich euch zeigen, wie man einen sauberen Proftpd mit MySQL und Quota Support installiert und konfiguriert.
1. Installation von Proftpd und MySQL
Die Installation verläuft unter Debian wie immer recht einfach:
apt-get install proftpd proftpd-mod-mysql mysql-server-5.0 mysql-client-5.0
Zwischendrin wird nach verschiedenen Optionen gefragt. Beim Paket proftpd wählt ihr “standalone” aus und bei MySQL setzt ihr euch ein root-Passwort für MySQL.
MySQL ohne exim4:
mysql-server-5.0 wird standardmäßig mit exim4 eingerichtet um den Admin bei Problemen zu berichten. Wer das nicht benötigt oder seinen MySQL Server bereits überwacht (z.b. mit Nagios) kann mysql-server-5.0 auch ohne exim4 installieren.
2. Erstellen der Proftpd-Datenbank in MySQL
Wir verbinden uns mit MySQL (phpMyAdmin oder Konsole) und führen folgendes Query aus um die Datenbank und den Datenbank-Benutzer für Proftpd zu erstellen:
CREATE DATABASE `proftpd` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; CREATE USER 'proftpd'@'localhost' IDENTIFIED BY 'passwort'; GRANT SELECT, INSERT, UPDATE, DELETE ON proftpd.* TO 'proftpd'@'localhost' IDENTIFIED BY 'passwort';
Bitte die zwei Passwörter (“passwort”) durch eigene Passwörter ersetzen!
Nun erstellen wir die nötigen Tabellen für die Verwaltung der Benutzer und Quota:
CREATE TABLE proftpd_groups ( group_id INTEGER UNSIGNED NOT NULL, group_name VARCHAR(64) NOT NULL, group_member VARCHAR(256) NOT NULL, group_enabled ENUM("true", "false") NOT NULL DEFAULT "true", PRIMARY KEY(group_id) ) TYPE=InnoDB; CREATE TABLE proftpd_users ( user_name VARCHAR(32) NOT NULL, group_id INTEGER UNSIGNED NOT NULL, user_password VARCHAR(32) NOT NULL, user_homedir VARCHAR(256) NOT NULL, user_id INTEGER UNSIGNED NOT NULL, user_shell VARCHAR(256) NOT NULL DEFAULT "/bin/false", user_enabled ENUM("true", "false") NOT NULL DEFAULT "true", user_login_count INTEGER UNSIGNED NOT NULL, user_last_login DATETIME NOT NULL, PRIMARY KEY(user_name), INDEX proftpd_users_FKIndex1(group_id), FOREIGN KEY(group_id) REFERENCES proftpd_groups(group_id) ON DELETE RESTRICT ON UPDATE RESTRICT ) TYPE=InnoDB; CREATE TABLE proftpd_quota_tallies ( user_name VARCHAR(32) NOT NULL, qt_quota_type ENUM("user", "group", "class", "all") NOT NULL, qt_bytes_in_used FLOAT NOT NULL, qt_bytes_out_used FLOAT NOT NULL, qt_bytes_xfer_used FLOAT NOT NULL, qt_files_in_used FLOAT NOT NULL, qt_files_out_used FLOAT NOT NULL, qt_files_xfer_used FLOAT NOT NULL, PRIMARY KEY(user_name), INDEX proftpd_quota_tallies_FKIndex1(user_name), FOREIGN KEY(user_name) REFERENCES proftpd_users(user_name) ON DELETE RESTRICT ON UPDATE RESTRICT ) TYPE=InnoDB; CREATE TABLE proftpd_quota_limits ( user_name VARCHAR(32) NOT NULL, ql_quota_type ENUM("user", "group", "class", "all") NOT NULL, ql_per_session ENUM("false", "true") NOT NULL, ql_limit_type ENUM("soft", "hard") NOT NULL, ql_bytes_in_avail FLOAT NOT NULL, ql_bytes_out_avail FLOAT NOT NULL, ql_bytes_xfer_avail FLOAT NOT NULL, ql_files_in_avail FLOAT NOT NULL, ql_files_out_avail FLOAT NOT NULL, ql_files_xfer_avail FLOAT NOT NULL, PRIMARY KEY(user_name), INDEX proftpd_quota_limits_FKIndex1(user_name), FOREIGN KEY(user_name) REFERENCES proftpd_users(user_name) ON DELETE RESTRICT ON UPDATE RESTRICT ) TYPE=InnoDB;
Wir nutzen dabei die MySQL Engine “innodb” um eine referentielle Integrität zwischen Benutzern, Gruppen und Quotas aufrecht zu erhalten. Das sollte bereits beim einfügen der Benutzer die gröbsten Fehler verhindern.
3. Konfiguration von Proftpd
Folgende Optionen müßen in der /etc/proftpd/proftpd.conf gesetzt werden:
RequireValidShell off RootLogin off DefaultRoot ~ CreateHome on dirmode 755 UseIPv6 off User ftp-data Group ftp-data Include /etc/proftpd/modules.conf Include /etc/proftpd/sql.conf Include /etc/proftpd/sql_quota.conf
Für die SQL-Konfiguration erstellen wir die /etc/proftpd/sql.conf und fügen folgendes hinein (falls bereits vorhanden, Inhalt überschreiben):
# enable sql SQLEngine on SQLAuthTypes Plaintext SQLAuthenticate users groups SQLBackend mysql # enable sql log SQLLOGFILE /var/log/proftpd/sql.log # connect to database # databasename@host database_user user_password SQLConnectInfo proftpd@localhost proftpd passwort # set table and column names for users SQLUserInfo proftpd_users user_name user_password user_id group_id user_homedir user_shell # set table column names for groups SQLGroupInfo proftpd_groups group_name group_id group_member # min id for uids and gids SQLMinID 30 # sql where for user SQLUserWhereClause "user_enabled = 'true'" # sql enabled check for group SQLGroupWhereClause "group_enabled = 'true'" # update login count and last login SQLLog PASS update_login SQLNamedQuery update_login UPDATE "user_login_count = user_login_count + 1, user_last_login = now() WHERE user_name = '%u'" proftpd_users
Bitte auch hier das Passwort durch das korrekte ersetzen.
Passwörter:
Die Passwörter werden in Plaintext von Proftpd erwartet. Wer seine Passwörter verschlüßelt ablegen möchte, kann dies über den Parameter SQLAuthTypes festlegen.
Die Quota-Konfiguration legen wir in der Datei /etc/proftpd/sql_quota.conf ab:
# enable quota
QuotaEngine on
QuotaDirectoryTally on
#QuotaDisplayUnits Mb
QuotaShowQuotas on
# quota log
QuotaLog /var/log/proftpd/quota.log
# sql get-quota-limit
SQLNamedQuery get-quota-limit SELECT "user_name, ql_quota_type, ql_per_session, ql_limit_type, ql_bytes_in_avail, ql_bytes_out_avail, ql_bytes_xfer_avail, ql_files_in_avail, ql_files_out_avail, ql_files_xfer_avail FROM proftpd_quota_limits WHERE user_name = '%{0}' AND ql_quota_type = '%{1}'"
# sql get-quota-tally
SQLNamedQuery get-quota-tally SELECT "user_name, qt_quota_type, qt_bytes_in_used, qt_bytes_out_used, qt_bytes_xfer_used, qt_files_in_used, qt_files_out_used, qt_files_xfer_used FROM proftpd_quota_tallies WHERE user_name = '%{0}' AND qt_quota_type = '%{1}'"
# sql update-quota-tally
SQLNamedQuery update-quota-tally UPDATE "qt_bytes_in_used = qt_bytes_in_used + %{0}, qt_bytes_out_used = qt_bytes_out_used + %{1}, qt_bytes_xfer_used = qt_bytes_xfer_used + %{2}, qt_files_in_used = qt_files_in_used + %{3}, qt_files_out_used = qt_files_out_used + %{4}, qt_files_xfer_used = qt_files_xfer_used + %{5} WHERE user_name = '%{6}' AND qt_quota_type = '%{7}'" proftpd_quota_tallies
# sql insert-quota-tally
SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" proftpd_quota_tallies
QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
# list quota informations
# when listing directories
SQLNamedQuery gettally SELECT "round((qt_bytes_in_used / (1024 * 1024)),2) FROM proftpd_quota_tallies WHERE user_name = '%u'"
SQLNamedQuery getlimit SELECT "ROUND((ql_bytes_in_avail / (1024 * 1024)),2) FROM proftpd_quota_limits WHERE user_name = '%u'"
SQLNamedQuery getfree SELECT "ROUND(((proftpd_quota_limits.ql_bytes_in_avail - proftpd_quota_tallies.qt_bytes_in_used) / (1024 * 1024)),2) FROM proftpd_quota_limits,proftpd_quota_tallies WHERE proftpd_quota_limits.user_name = '%u' AND proftpd_quota_tallies.user_name = '%u'"
SQLShowInfo LIST "226" "Used %{gettally}MB from %{getlimit}MB. You have %{getfree}MB available space."Damit alle nötigen Module geladen werden, ändere die /etc/proftpd/modules.conf folgendermaßen ab, damit folgende Zeilen auskommentiert sind:
LoadModule mod_sql.c LoadModule mod_sql_mysql.c LoadModule mod_quotatab.c LoadModule mod_quotatab_sql.c
Damit alle Änderungen an der Proftpd Konfiguration wirksam werden reicht ein kurzer Neustart:
/etc/init.d/proftpd restart
4. Hinzufügen von Benutzern und Gruppen
Jeder virtuelle Benutzer benötigt zum lesen und schreiben einen Systembenutzer. Es können jedoch mehrere Proftpd-Benutzer über einen Systemaccount zugreifen.
Systembenutzer und -gruppe hinzufügen
groupadd -g 2001 ftp-data useradd -u 2001 -s /bin/false -d /bin/null -c "proftpd user" -g ftp-data ftp-data
Hinweis:
Der Proftpd-Daemon läuft unter dem Systembenutzer proftpd.
Gruppe hinzufügen
INSERT INTO `proftpd`.`proftpd_groups` ( `group_id` , `group_name` , `group_member` , `group_enabled` ) VALUES ( '2001', 'ftp-data', 'benutzer', 'true' );
Hinweis: Die Gruppe darf nur einmal in proftpd_groups existieren, weitere Benutzer werden in die Spalte “group_member” komma-separiert eingetragen. Beispiel: “patrick,kevin,julia”.
Proftpd-Benutzer hinzufügen
INSERT INTO `proftpd`.`proftpd_users` ( `user_name` , `group_id` , `user_password` , `user_homedir` , `user_id` , `user_shell` , `user_enabled` , `user_login_count` , `user_last_login` ) VALUES ( 'kevin', '2001', 'test', '/ftp/kevin', '2001', '/bin/false', 'true', '', '' );
Durch den Konfigurationsparameter “CreateHome on” wird automatisch das Homedir des Benutzers mit entsprechenden Rechten beim ersten Login angelegt. Danke an Mike-EL für den Hinweis.
Quota definieren
Um einem Benutzer ein bestimmtes Quota zu setzen, reicht folgender SQL:
INSERT INTO `proftpd`.`proftpd_quota_limits` ( `user_name` , `ql_quota_type` , `ql_per_session` , `ql_limit_type` , `ql_bytes_in_avail` , `ql_bytes_out_avail` , `ql_bytes_xfer_avail` , `ql_files_in_avail` , `ql_files_out_avail` , `ql_files_xfer_avail` ) VALUES ( 'kevin', 'user', 'false', 'soft', '50000', '', '', '', '', '' );
In proftpd_quota_limits befinden sich alle Quota-Limits, in proftpd_quota_tallies stehen die aktuellen benutzen Quotas.
5. Fertig
Damit sollte euer Proftpd mit MySQL und Quota rennen :-).
Sollte er dies jedoch nicht tun, bitte ich euch die Sektion “Debuggen” zu lesen, um eventuelle Fehler ausfindig zu machen.
Häufige Fehler
proftpd[20234]: warning: handling possibly truncated configuration data at line 30 of ‘/etc/proftpd/config.conf’
Die Konfigurationsdatei endet nicht mit einer leeren Zeile (\n, Line Feed). Unter Linux mit einem Editor die Datei öffnen und am ende eine neue Zeile hinzufügen oder folgendes ausführen:
echo >> /etc/proftpd/config.conf
(Danke an Loosi)
Debuggen
Sollte irgendwo Fehler auftreten wo Ihr nicht weiter weißt, könnt ihr gerne mich fragen (Kommentar oder e-Mail). Bitte schaut aber erst in folgende Log-Datei rein:
/var/log/proftpd/sql.log
Sollten dort keine Fehler zu finden sein, hilft es oft das Log-Level zu erhöhen. Um das zu tun, folgende Option in die /etc/proftpd/proftpd.conf einfügen:
DebugLevel 9
Um die SQL-Queries zu erhalten, die Proftpd sendet, kann man in der /etc/mysql/my.cnf folgende Option einkommentieren:
log = /var/log/mysql/mysql.log
Danach den MySQL Server neustarten und wir sehen in der /var/log/mysql/mysql.log alle SQL-Queries.
Zur Zeit der Erstellung dieses Howtos nutzte ich folgende Versionen aus den Debian Repositorys:
proftpd: 1.3.1
mysql: 5.0.51a-24
Vielen Dank!
Funktioniert auf anhieb!!!! ;)
Nur einen neuen user anlegen ist ein bischen mühsam!
Bin noch nicht so fit beim skript schreiben, gibts da was fertiges???
Nochmals vielen Dank!!!
Es ist durchaus möglich das Verzeichnis samt zugehörigem User/Gruppe automatisch anzulegen ohne extra ein Script dafür zu schreiben.
füge einfach in: “/etc/proftpd/sql.conf ” noch folgendes hinzu:
CreateHome on
dann abspeichern, proftpd restarten. Sobald du dann einen neuen User angelegt hast in der Datenbank und dieser sich das erstemal einloggt am FTP wird das Verzeichnis automatisch angelegt ;)
“CreateHome on” ersetzt seit Lenny das bislang genutzte “SQLHomedirOnDemand on”
damit erspart man sich das ganze mit dem
“mkdir -p /ftp/kevin”
“chown ftp-data:ftp-data /ftp/kevin”
schönes langes Wochenende :)
Ah super, hatte nur gelesen das “SQLHomedirOnDemand” deprecated ist, aber nicht, das es ersetzt wird :-).
Danke dir, werde ich im Artikel ändern.
Dir auch ein schönes Wochenende ;).
ja deprecated und wird in naher Zukunft entfernt. Aber auch gleichzeitig schon was ersetzendes drinnen.
Schön das du es eingebaut hast.
Und immer weiter fleissig Tutorials schreiben, damit ich noch bissel was hinzufügen kann ;)
Gerne steh ich dir auch per E-Mail zur verfügung falls du fragen rund um Linux und Hosting etc. hast ^^
Hallo
erst mal danke für das HowTo.
Leider funktioniert das bei mir nicht auf Anhieb. Hab alles so gemacht wie oben beschrieben. Ich bekomme beim restart des proftpd
“Fatal: unknown configuration directive ‘SQLEngine’ on line” …
Module sind alle aktiviert (wie oben beschrieben)
hat einer eine Idee, was ich übersehen haben könnte?
Danke + Gruß
Hi,
Ist bei dir wirklich proftpd-mod-mysql installiert?
Scheint so, als würde das Modul fehlen oder es ist nur nicht aktiviert.
Falles es installiert ist, schau in /etc/proftpd/modules.conf nach ob folgende Zeilen vorhanden sind:
-
LoadModule mod_sql.c
LoadModule mod_sql_mysql.c
LoadModule mod_quotatab.c
LoadModule mod_quotatab_sql.c
-
Gruß,
Kevin
kann da Kevin nur zustimmen.
Wenn bei dir: proftpd-mod-mysql installiert sein sollte, liegt es definitiv
an den nicht aktivierten Modulen.
Du musst das raute (#)-Zeichen vor den LoadModule wegnehmen.
Datei abspeichern und Proftpd neustarten.
Gruss
Mike-EL
hi Kevin,
vielen Dank für dein HowTo, es hat bei mir auf Anhieb funktioniert.
Ich habe schon viele HowTo’s zu dem Thema ausprobiert aber keines hat funktioniert.
Herzlichen Dank :)
Jetzt noch ein kleines PHP-Skript zum User erstellen und fertig.
Danke und viele Grüße
flo
Bei mir gibt es einen Error beim Starten des FTP-Servers.
Könnt ihr mir da vlt. helfen??
Starting ftp server: proftpd – warning: handling possibly truncated configuration data at line 30 of ‘/etc/proftpd/sql.conf’
– warning: handling possibly truncated configuration data at line 29 of ‘/etc/proftpd/sql_quota.conf’
Sry, des vorher war des falsche.
Das hier geht nicht :
# sql enabled check for group
SQLGroupWhereClause “group_enabled = ‘true’”
Jede User kann verwendet werden, egal ob in der datenbank bei group enabled true oder false steht.
Grüße,
Sebastian
Hallo Kevin,
nettes HowTo, hat sofort funktioniert. Was mir persönlich noch fehlt ist, dass die Kennwörter nicht im Klartext in der Datenbank abgelegt werden, sollte aber kein großes Problem darstellen.
Zwei Sachen habe ich noch:
Bei mir läuft proftpd unter ftp-data, wie im HowTo. Da meine User direkt ihre Daten nach /var/www/$user_name hochladen. Nur leider sind die Rechte dann nicht gesetzt. Was schlägst du vor, wie mache ich das am besten?
Wenn ich User in phpmyadmin entfernen möchte, dann nimmt es folgende Query: ” DELETE FROM `users` WHERE CONVERT( `users`.`user_name` USING utf8 ) = ‘gorat’ LIMIT 1″. Die Antwort ist eine Fehlermeldung: “#1451 – Cannot delete or update a parent row: a foreign key constraint fails (`proftpd/quota_limits`, CONSTRAINT `quota_limits_ibfk_1` FOREIGN KEY (`user_name`) REFERENCES `users` (`user_name`)) ” Frage: Wie mach ichs richtig? :-)
Gruß,
Gerald
Ah, wenn ich zuerst den betreffenden User in quota_limits lösche und dann unter users, dann geht es ohne Fehlermeldung….
Hi Kevin,
dein HowTo funktioniert auf anhieb bei mir wunderbar…
eine Frage hab ich noch…
ich gebe ja bei “user_homedir” in der user table ne anderen pfad an wie bei dir,
das verzeichnis gibts ja schon durch apache …
gibts ne einstellung das der chown automatisch für das “user_homedir” ändert wenns noch nicht getan ist !?
gruß Marco
Automatisch? Nein, denke nicht dass das geht. Aber was ist gegen einen kleinen chown einzuwenden? ;)
chown -R ftp-data:ftp-data /var/www
Hi Gerald,
Wie das Passwort in der Datenbank abgefragt wird, gibst du mit dem Parameter “SQLAuthTypes” an:
http://www.proftpd.de/SQLAuthTypes.195.0.html
Du kannst anstelle von ftp-data auch die Gruppe www-data nutzen. Dadurch werden alle Dateien und Ordner mit dem Benutzer www-data geschrieben, so das es keine Probleme beim lesen und schreiben mit dem Apache gibt. Die UID von www-data ist “33″ (standardmäßig).
Ich hoffe ich konnte weiterhelfen :-).
Gruß,
Kevin
Das Problem habe ich auch bereits festgestellt, leider habe ich noch keine Lösung gefunden..
Hat jemand eine Idee warum bei mir der Server nicht startet? Habe die hosts und so schon überprüft bekomme diesen Fehler:
unable to determine IP address of ‘FTP’
Super tutorial torztdem
Hallo,
hast Du IPV6 ausgeschaltet ?
/etc/proftpd/proftpd.conf
UseIPV6 of
Gruß Mirko…
Halo super Aleitung ur bekommeich am ende ständig denn fehler.
Starting ftp server: proftpd – warning: handling possibly truncated configuration data at line 186 of ‘/etc/proftpd/proftpd.conf’
– warning: handling possibly truncated configuration data at line 29 of ‘/etc/proftpd/sql_quota.conf’
.
mh weiß einer warum? Benutze Debian lenny ….
mfg
Ah so ich hatte noch vergessen zu erwähnen.
– warning: handling possibly truncated configuration data at line 186 of ‘/etc/proftpd/proftpd.conf’
steht :
Include /etc/proftpd/sql.conf
– warning: handling possibly truncated configuration data at line 29 of ‘/etc/proftpd/sql_quota.conf’
steht:
SQLNamedQuery getfree SELECT “ROUND(((proftpd_quota_limits.ql_bytes_in_avail – proftpd_quota_tallies.qt_bytes_in_used) / (1024 * 1024)),2) FROM proftpd_quota_limits,proftpd_quota_tallies WHERE proftpd_quota_limits.user_name = ‘%u’ AND proftpd_quota_tallies.user_name = ‘%u’”
Das kann daran liegen, das du Gänsefüßchen anstatt Anführungszeichen kopiert hast. Das passiert manchmal beim kopieren.
Als erstes einmal Danke, dass Du dir die Mühe gemacht hast.
Ich war nachdem ich mehrere Docus gelesen habe recht verzweifelt :-))
Dies funktioniert :-))
Aber nun will ich mich nicht zum Obst der Woche machen, aber da ich mich
mit SQL nicht besonders auskenne eine Frage.
Wie Verändere oder Lösche ich einen User ?
PHPAdmin meldet:
#1451 – Cannot delete or update a parent row: a foreign key constraint fails (`proftpd/proftpd_quota_limits`, CONSTRAINT `proftpd_quota_limits_ibfk_1` FOREIGN KEY (`user_name`) REFERENCES `proftpd_users` (`user_name`))
Gruß Mirko…
Lösche als erstes den User aus proftpd_quota_tallies und proftpd_quota_limits, danach läßt sich der User auch aus proftpd_users löschen.
Jo, Danke, funktioniert :-)).
Gruß Mirko..
@Rabe & Kevin:
Hatte dasselbe Problem wie Rabe, Lösung ist…
Include /etc/proftpd/modules.conf
dieses einfach in die /etc/proftpd/proftpd.conf hinzufügen…
Vielleicht kannst du Kevin, das noch in dein Tut aufnehmen. Bei den anderen war der Fehler nicht da, weil sie die proftpd nicht erst gelöscht haben…
Danke, habe es dem Howto hinzugefügt.
Mir wird folgender Fehler angezeigt:
Starting ftp server: proftpd – warning: handling possibly truncated configuration data at line 31 of ‘/etc/proftpd/sql.conf’
– warning: handling possibly truncated configuration data at line 30 of ‘/etc/proftpd/sql_quota.conf’
– no such user ‘ftp-data’
– Fatal: User: Unknown user ‘ftp-data’ on line 73 of ‘/etc/proftpd/proftpd.conf’
failed!
Kann jemand helfen?
Hallo
Bei mir funktioniert alles wunderbar nur beim erstellen des homedir stimmen die Rechte nicht. Sie sinf immer auf 700 statt auf 755.
Fehler in der sql.conf zeile 30
Dort steht:
SQLLog PASS update_login
Die Log dazu schaut so aus:
proftpd[20234]: warning: handling possibly truncated configuration data at line 30 of ‘/etc/proftpd/sql.conf’
Kann mir jemand sagen was hier falsch läuft???
LG
Hallo zusammen,
per default mit einer frischen Installation, genau nach Anleitung, hat das Quota bei mir nicht funktionert. Ich musste noch in der /etc/proftpd/proftpd.conf folgende Änderung durchführen.
Von:
QuotaEngine off
Nach:
QuotaEngine on
Viele Grüße
Olli
Bekomme diesen Fehler….
Starting ftp server: proftpd – Fatal: unknown configuration directive ‘QuotaEngine’ on line 2 of ‘/etc/proftpd/sql_quota.conf’
Kann mir da jemand weiterhelfen?
wynni
@Gabriel:
Schau nach, ob es richtige Anführungsstriche sind, oder Gänsefüsschen.
@wynni:
Olli hat bereits die Lösung hierzu gepostet, kontrolliere ob in der Include /etc/proftpd/sql_quota.conf die Option “QuotaEngine” auf “On” steht.
@Olli:
Dies sollte eigentlich nicht notwendig sein, da bereits über die extra Konfigurationsdatei das Quota aktiviert wird (in der Include /etc/proftpd/sql_quota.conf).
Nice Tut!
Daumen hoch^^
Servus!
Die Fehlermeldung
proftpd – warning: handling possibly truncated configuration data at line XX of ‘irgendeine.conf’
Hat nicht umbedingt was mit den Anführungszeichen zu tun. Vielmehr liegt es daran das in der letzten Zeile ein sogenannter Linefeed sein muss, also eine leere Zeile. Wenn die Fehlermeldung auftritt einfach in die letzte Zeile gehen und einen Zeilenumbruch machen (Enter drücken) Damit unter dem letzten Parameter eine Leerzeile ist.
Könnte man evtl. noch ins TuT mit aufnehmen ;) Das war zumindest bei mir der Fehler.
An sonsten super Tutorial! Wird auf meiner Site verlinkt sobald sie fertig ist :)
Gruß
Loosi
Hallo Leute,
ich habe folgendes Problem, obwol ich alles richtig gemacht habe. Kann mir jemand helfen?
Oder den richtigen proftpd.conf posten.
root@localserver:~# /etc/init.d/proftpd start
Starting ftp server: proftpd – mod_dso/0.4: module ‘mod_sql.c’ already loaded
– Fatal: LoadModule: error loading module ‘mod_sql.c’: Operation not permitted on line 15 of ‘/etc/proftpd/modules.conf’
failed!
Hallo Francisco
Schau mal in Zeile 6 der proftpd.conf. die Zeile aus, wenn dahinter “Include /etc/proftpd/modules.conf” steht.
Denn wenn du das tutorial ganz durch bist, hast du die Zeile zweimal drinnen, was nicht zulässig ist
Habe selbst aber auch eine Frage:
Ich hab jetzt zwar schon den ein oder anderen fehler ausgemerzt, aber eines bleibt leider immer noch…
connected – local : ServerIP:21
connected – remote : MeineIP:33372
FTP session opened.
dispatching PRE_CMD command ‘USER kevin’ to mod_rewrite
dispatching PRE_CMD command ‘USER kevin’ to mod_tls
dispatching PRE_CMD command ‘USER kevin’ to mod_core
dispatching PRE_CMD command ‘USER kevin’ to mod_core
dispatching PRE_CMD command ‘USER kevin’ to mod_delay
dispatching PRE_CMD command ‘USER kevin’ to mod_auth
dispatching CMD command ‘USER kevin’ to mod_auth
no supplemental groups found for user ‘kevin’
dispatching POST_CMD command ‘USER kevin’ to mod_delay
dispatching LOG_CMD command ‘USER kevin’ to mod_log
dispatching PRE_CMD command ‘PASS (hidden)’ to mod_rewrite
dispatching PRE_CMD command ‘PASS (hidden)’ to mod_tls
dispatching PRE_CMD command ‘PASS (hidden)’ to mod_core
dispatching PRE_CMD command ‘PASS (hidden)’ to mod_core
dispatching PRE_CMD command ‘PASS (hidden)’ to mod_wrap2
dispatching PRE_CMD command ‘PASS (hidden)’ to mod_ban
dispatching PRE_CMD command ‘PASS (hidden)’ to mod_wrap
dispatching PRE_CMD command ‘PASS (hidden)’ to mod_radius
dispatching PRE_CMD command ‘PASS (hidden)’ to mod_delay
dispatching PRE_CMD command ‘PASS (hidden)’ to mod_auth
dispatching CMD command ‘PASS (hidden)’ to mod_auth
no supplemental groups found for user ‘kevin’
no such user ‘kevin’
USER kevin: no such user found from MeineIP [MeineIP] to ServerIP:21
dispatching POST_CMD_ERR command ‘PASS (hidden)’ to mod_delay
dispatching LOG_CMD_ERR command ‘PASS (hidden)’ to mod_log
dispatching LOG_CMD_ERR command ‘PASS (hidden)’ to mod_auth
FTP session closed.
Der Benutzer kevin ist als group_member eingetragen, FTP über Linux-Benutzer funktioniert tadellos
Achja, weil ichs noch vergessen hab:
Ich hab am Anfang der sql_* Dateien das eingefügt
und am Ende
Ansonsten erkennt er das SQL nicht.
Siehe Fehlermeldung:
Starting ftp server: proftpd – Fatal: unknown configuration directive ‘SQLEngine’ on line 2 of ‘/etc/proftpd/sql.conf’
failed!
An der QuotaEngine wirds wohl a) kaum liegen b) ist die Einstellung auch auf on
Und da bin ich noch einmal *g*
Problem gelöst, als ich zufällig nochmal die modules angeschaut hab während des Versuchs zum Einbau von TLS, was nun wiederum nicht so hinhauen will wie es soll (AUTH not understood)
Jedenfalls mussten auch noch diese Zeilen auskommentiert werden:
LoadModule mod_sql.c
LoadModule mod_sql_mysql.c
Wer Postgree nutzt, die hier statt der mysql:
LoadModule mod_sql_postgres.c
Hi,
kann es sein, dass es egal ist was man in den Gruppen Tabelle als Gruppenname und als Mitglied einträgt? Egal was ich eintrage, es klappt immer? In wie weit wird die Gruppen Tabelle benötigt? Es ist auch egal, was man bei group_enabled wählt. Man kann sich immer einloggen.
Wie kann man Gruppenquotas vergeben?
Gruß Arne
Hallo Arne,
das ist mir auch schon aufgefallen, habe das aber nicht weiter verfolgt, da ich die Gruppen nicht nutze.
Da ich gerade keinen Proftpd mit MySQL zur Hand habe: Du könntest die SQL-Logs aktivieren und dort nachsehen, was er genau ausführt.
@Mario: Gut das es nun funktioniert!
Gruß,
Kevin
achtung Sichherheitslücke endeckt lest zu mehr auf
http://www.parallels.com/products/plesk/ProFTPD
http://www.heise.de/security/meldung/Sicherheits-Update-fuer-FTP-Server-ProFTPD-1122539.html