ProFTPd Installation · 3 min read · Nov 06, 2025

ISPConfig 3 ProFTPd Für Debian

ISPConfig 3 ProFTPd Für Debian

1 Einführung

Ich bin ein neuer Benutzer von ISPConfig und habe seit ein paar Jahren mit Linux experimentiert. Mein Server ist derzeit ein VPS mit OpenVZ und erlaubt es mir nicht, den standardmäßigen pureftpd zu verwenden, der mit ISPConfig geliefert wird, also habe ich angefangen, ProFTPd zu betrachten und festgestellt, dass es nicht sehr schwierig war, darauf umzusteigen.

2 Vorinstallation

Bitte beachten: Dies beinhaltet keine Quota-Unterstützung, da mein VPS dies nicht unterstützt. Wenn Sie Vorschläge oder Ideen haben, wie diese Integration verbessert werden kann, ohne ftp_user_edit.php in ISPConfig3 zu ändern, lassen Sie es mich bitte wissen. Diese Anweisungen wurden unter Debian 5.0 Lenny erstellt, sollten aber auch für 6.0 funktionieren. Für andere Distributionen müssen diese Anweisungen möglicherweise leicht angepasst werden.

Bitte beachten Sie auch: Dieser Prozess hat bei mir auf einem frischen Server und einer frischen ISPConfig 3-Installation gut funktioniert. Die Verwendung auf einem bestehenden Server erfordert, dass jeder erstellte FTP-Benutzer bearbeitet und gespeichert wird, und kann andere Probleme verursachen. Ich könnte in Zukunft ein einfaches PHP-Skript erstellen, um dies automatisch zu erledigen. Ich übernehme keine Verantwortung für Probleme, die auftreten können, also verwenden Sie dies AUF EIGENES RISIKO.

3 Installation

Führen Sie aus

apt-get remove pure-ftpd-common pure-ftpd-mysql
apt-get install proftpd proftpd-mod-mysql

Run as standalone

Gruppe & Benutzer erstellen

groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c “proftpd user” -g ftpgroup ftpuser

4 Datenbankkonfiguration

mysql -u root -p
Use dbispconfig

Führen Sie die Abfrage aus:

ALTER TABLE `ftp_user` ADD `shell` VARCHAR( 18 ) NOT NULL DEFAULT  '/sbin/nologin',  
ADD `count` INT( 11 ) NOT NULL DEFAULT '0',  
ADD `accessed` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',  
ADD `modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00';  
CREATE TABLE ftp_group (  
groupname varchar(16) NOT NULL default '',  
gid smallint(6) NOT NULL default '5500',  
members varchar(16) NOT NULL default '',  
KEY groupname (groupname)  
) TYPE=MyISAM COMMENT='ProFTP group table';  
INSERT INTO `ftp_group` (`groupname`, `gid`, `members`) VALUES  
('ftpgroup', 2001, 'ftpuser');

5 ProFTPd-Konfiguration

Bearbeiten Sie /usr/local/ispconfig/interface/lib/config.inc.php:

nano /usr/local/ispconfig/interface/lib/config.inc.php

Suchen Sie die Variable db_password.

Notieren Sie das Passwort für später.

Bearbeiten Sie /etc/proftpd/proftpd.conf

nano /etc/proftpd/proftpd.conf

Suchen Sie:

#Include /etc/proftpd/sql.conf

Ändern Sie zu:

Include /etc/proftpd/sql.conf

Bearbeiten Sie /etc/proftpd/sql.conf

nano /etc/proftpd/sql.conf

Löschen Sie den gesamten Inhalt und ersetzen Sie ihn durch:

#  
# Proftpd Beispielkonfiguration für SQL-basierte Authentifizierung.  
#  
# (Dies ist nicht zu verwenden, wenn Sie eine PAM-basierte SQL-Authentifizierung bevorzugen)  
#  
  
DefaultRoot ~  
  
SQLBackend mysql  
  
# Die Passwörter in MySQL sind mit CRYPT verschlüsselt  
  
SQLAuthTypes  Plaintext Crypt  
  
SQLAuthenticate         users groups  
  
# verwendet, um eine Verbindung zur Datenbank herzustellen  
# databasename@host database_user user_password  
SQLConnectInfo  dbispconfig@localhost ispconfig _insertpasswordhere_  
  
# Hier sagen wir ProFTPd die Namen der Datenbankspalten in der "usertable"  
# mit denen wir interagieren möchten. Stimmen Sie die Namen mit denen in der db überein  
SQLUserInfo     ftp_user username password uid gid dir shell  
  
# Hier sagen wir ProFTPd die Namen der Datenbankspalten in der "grouptable"  
  
# mit denen wir interagieren möchten. Wieder stimmen die Namen mit denen in der db überein  
SQLGroupInfo    ftp_group groupname gid members  
  
# setze min UID und GID - andernfalls sind diese jeweils 999  
SQLMinID        500  
  
# erstelle das Home-Verzeichnis eines Benutzers auf Anfrage, wenn es nicht existiert  
CreateHome off  
  
# Aktualisiere die Anzahl jedes Mal, wenn sich der Benutzer anmeldet  
SQLLog PASS updatecount  
SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser  
  
# Aktualisiere modified jedes Mal, wenn der Benutzer eine Datei hochlädt oder löscht  
SQLLog  STOR,DELE modified  
SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser  
  
RootLogin off  
  
RequireValidShell off  
  
  
  

Stellen Sie sicher, dass Sie insertpasswordhere durch das Passwort ersetzen, das Sie von ISPConfig abgerufen haben.

Wenn Ihre MySQL-Datenbank auf einem anderen Server ist, ändern Sie localhost, um Ihren MySQL-Server darzustellen.

Bearbeiten: /etc/proftpd/modules.conf

nano /etc/proftpd/modules.conf

Suchen Sie:

#LoadModule mod_sql.c

Ändern Sie zu:

LoadModule mod_sql.c

Suchen Sie:

#LoadModule mod_sql_mysql.c

Ändern Sie zu:

LoadModule mod_sql_mysql.c

Führen Sie aus:

/etc/init.d/proftpd restart

6 ISPConfig 3 Änderungen

Jetzt müssen wir eine der ISPConfig-Dateien ändern. Dies ist nicht ideal, da Sie bei einem Upgrade auf eine neue Version die Änderungen verlieren, aber es ist der einzige Weg, um ProFTPd zum Laufen zu bringen, den ich finden konnte.

Bearbeiten Sie /usr/local/ispconfig/interface/web/sites/ftp_user_edit.php

nano /usr/local/ispconfig/interface/web/sites/ftp_user_edit.php

Suchen Sie:

$uid = $web["system_user"];
$gid = $web["system_group"];

Ersetzen Sie durch:

$userinfo = posix_getpwnam($web["system_user"]);
$uid = $userinfo['uid'];
$gid = $userinfo['gid'];

Hinweis: Wenn Sie derzeit im Webpanel von ISPConfig angemeldet sind, müssen Sie sich abmelden, bevor die Änderungen auf Ihrem Computer registriert werden.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.