Server Setup · 3 min read · Nov 06, 2025
ISPConfig 3 ProFTPd Per Debian
ISPConfig 3 ProFTPd Per Debian
1 Introduzione
Sono un nuovo utente di ISPConfig e ho giocato con Linux per alcuni anni ormai. Il mio server è attualmente un VPS con OpenVZ e non mi permette di eseguire il pureftpd predefinito che viene fornito con ISPConfig, quindi ho iniziato a esaminare ProFTPd e ho scoperto che non era molto difficile passare a usarlo.
2 Pre-Installazione
Si prega di notare: Questo non include il supporto per le quote perché il mio VPS non lo supporta. Se hai suggerimenti o idee su come migliorare questa integrazione senza dover modificare ftp_user_edit.php in ISPConfig3, ti prego di farmelo sapere. Queste istruzioni sono state create eseguendo Debian 5.0 Lenny, ma dovrebbero funzionare allo stesso modo per 6.0. Per altre distribuzioni, queste istruzioni potrebbero dover essere modificate leggermente.
Nota anche: Questo processo ha funzionato bene per me su un server fresco e un’installazione di ISPConfig 3. Utilizzare questo su un server esistente richiederà di entrare e modificare/salvare ogni utente ftp che è stato creato e potrebbe causare altri problemi. Potrei creare un semplice script php per farlo automaticamente in futuro. Non sono responsabile per eventuali problemi che potrebbero sorgere, quindi utilizza questo A TUO RISCHIO.
3 Installazione
Esegui
apt-get remove pure-ftpd-common pure-ftpd-mysql
apt-get install proftpd proftpd-mod-mysql
Esegui come standaloneCrea Gruppo & Utente
groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c “utente proftpd” -g ftpgroup ftpuser
4 Configurazione del Database
mysql -u root -p
Usa dbispconfig
Esegui la query:
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='Tabella gruppo ProFTP';
INSERT INTO `ftp_group` (`groupname`, `gid`, `members`) VALUES
('ftpgroup', 2001, 'ftpuser');5 Configurazione di ProFTPd
Modifica /usr/local/ispconfig/interface/lib/config.inc.php:
nano /usr/local/ispconfig/interface/lib/config.inc.phpTrova la variabile db_password.
Nota la password per dopo.
Modifica /etc/proftpd/proftpd.conf
nano /etc/proftpd/proftpd.confTrova:
#Include /etc/proftpd/sql.confCambia in:
Include /etc/proftpd/sql.confModifica /etc/proftpd/sql.conf
nano /etc/proftpd/sql.confCancella tutto il contenuto e sostituisci con:
#
# Configurazione di esempio di Proftpd per l'autenticazione basata su SQL.
#
# (Questo non deve essere usato se preferisci un'autenticazione SQL basata su PAM)
#
DefaultRoot ~
SQLBackend mysql
# Le password in MySQL sono criptate usando CRYPT
SQLAuthTypes Plaintext Crypt
SQLAuthenticate users groups
# usato per connettersi al database
# nome_database@host utente_database password_utente
SQLConnectInfo dbispconfig@localhost ispconfig _inserisci_password_qui_
# Qui diciamo a ProFTPd i nomi delle colonne del database nella "usertable"
# con cui vogliamo interagire. Abbina i nomi con quelli nel db
SQLUserInfo ftp_user username password uid gid dir shell
# Qui diciamo a ProFTPd i nomi delle colonne del database nella "grouptable"
# con cui vogliamo interagire. Ancora una volta i nomi corrispondono a quelli nel db
SQLGroupInfo ftp_group groupname gid members
# imposta UID e GID minimi - altrimenti questi sono 999 ciascuno
SQLMinID 500
# crea la home directory di un utente su richiesta se non esiste
CreateHome off
# Aggiorna il conteggio ogni volta che l'utente accede
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser
# Aggiorna modificato ogni volta che l'utente carica o elimina un file
SQLLog STOR,DELE modified
SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser
RootLogin off
RequireValidShell off
Assicurati di cambiare inserisci_password_qui con la password che hai recuperato da ISPConfig.
Se il tuo database MySQL è su un altro server, cambia localhost per rappresentare il tuo server MySQL.
Modifica: /etc/proftpd/modules.conf
nano /etc/proftpd/modules.confTrova:
#LoadModule mod_sql.cCambia in:
LoadModule mod_sql.cTrova:
#LoadModule mod_sql_mysql.cCambia in:
LoadModule mod_sql_mysql.cEsegui:
/etc/init.d/proftpd restart6 Modifiche a ISPConfig 3
Ora dobbiamo modificare uno dei file di ispconfig. Questo non è ideale, poiché se aggiorni a una nuova versione perderai le modifiche, ma è l’unico modo per far funzionare proftpd che sono riuscito a trovare.
Modifica /usr/local/ispconfig/interface/web/sites/ftp_user_edit.php
nano /usr/local/ispconfig/interface/web/sites/ftp_user_edit.php
Trova:
$uid = $web["system_user"];
$gid = $web["system_group"];Sostituisci con:
$userinfo = posix_getpwnam($web["system_user"]);
$uid = $userinfo['uid'];
$gid = $userinfo['gid'];Nota: se sei attualmente connesso al pannello web di ISPConfig, devi disconnetterti prima che le modifiche vengano registrate sul tuo computer.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.