Hosting Virtuale · 3 min read · Dec 15, 2025
Hosting Virtuale Con PureFTPd E MySQL (Incl. Gestione Di Quota E Larghezza Di Banda) Su Debian Etch
Hosting Virtuale Con PureFTPd E MySQL (Incl. Gestione Di Quota E Larghezza Di Banda) Su Debian Etch
Versione 1.0
Autore: Falko Timme
Questo documento descrive come installare un server PureFTPd che utilizza utenti virtuali da un database MySQL invece di veri utenti di sistema. Questo è molto più performante e consente di avere migliaia di utenti ftp su una singola macchina. Inoltre, mostrerò l’uso di limiti di quota e di larghezza di banda in upload/download con questa configurazione. Le password saranno memorizzate in modo crittografato come stringhe MD5 nel database.
Per l’amministrazione del database MySQL puoi utilizzare strumenti basati sul web come phpMyAdmin che saranno anche installati in questo howto. phpMyAdmin è un’interfaccia grafica comoda che significa che non devi armeggiare con la riga di comando.
Questo tutorial è basato su Debian Etch (Debian 4.0). Dovresti già aver configurato un sistema Debian Etch di base, come descritto nei primi sei capitoli di questo tutorial: https://www.howtoforge.com/perfect_setup_debian_etch
Questo howto è inteso come una guida pratica; non copre le basi teoriche. Queste sono trattate in molti altri documenti sul web.
Questo documento viene fornito senza alcuna garanzia di alcun tipo! Voglio dire che questo non è l’unico modo per configurare un tale sistema. Ci sono molti modi per raggiungere questo obiettivo, ma questo è il modo che seguo. Non rilascio alcuna garanzia che questo funzionerà per te!
1 Nota Preliminare
In questo tutorial utilizzo il nome host server1.example.com con l’indirizzo IP 192.168.0.100. Queste impostazioni potrebbero differire per te, quindi devi sostituirle dove appropriato.
2 Installa MySQL E phpMyAdmin
Tutto questo può essere installato con un solo comando:
apt-get install mysql-server mysql-client libmysqlclient15-dev phpmyadmin apache2Crea una password per l’utente MySQL root (sostituisci yourrootsqlpassword con la password che desideri utilizzare):
mysqladmin -u root password yourrootsqlpasswordPoi controlla con
netstat -tap | grep mysqlsu quali indirizzi MySQL sta ascoltando. Se l’output appare così:
tcp 0 0 localhost.localdo:mysql *:* LISTEN 2713/mysqldil che significa che MySQL sta ascoltando solo su localhost.localdomain, allora sei al sicuro con la password che hai impostato prima. Ma se l’output appare così:
tcp 0 0 *:mysql *:* LISTEN 2713/mysqlddovresti impostare anche una password MySQL per il tuo nome host, perché altrimenti chiunque può accedere al tuo database e modificare i dati:
mysqladmin -h server1.example.com -u root password yourrootsqlpassword3 Installa PureFTPd Con Supporto MySQL
Per Debian è disponibile un pacchetto pure-ftpd-mysql preconfigurato. Installalo in questo modo:
apt-get install pure-ftpd-mysqlPoi creiamo un gruppo ftp (ftpgroup) e un utente (ftpuser) a cui verranno mappati tutti i nostri utenti virtuali. Sostituisci il gruppo e l’ID utente 2001 con un numero che sia libero sul tuo sistema:
groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c "utente pureftpd" -g ftpgroup ftpuser4 Crea Il Database MySQL Per PureFTPd
Ora creiamo un database chiamato pureftpd e un utente MySQL di nome pureftpd che il demone PureFTPd utilizzerà in seguito per connettersi al database pureftpd:
mysql -u root -pCREATE DATABASE pureftpd;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost' IDENTIFIED BY 'ftpdpass';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost.localdomain' IDENTIFIED BY 'ftpdpass';
FLUSH PRIVILEGES;Sostituisci la stringa ftpdpass con qualsiasi password tu voglia utilizzare per l’utente MySQL pureftpd. Ancora nella shell MySQL, creiamo la tabella del database di cui abbiamo bisogno (sì, c’è solo una tabella!):
USE pureftpd;CREATE TABLE ftpd (
User varchar(16) NOT NULL default '',
status enum('0','1') NOT NULL default '0',
Password varchar(64) NOT NULL default '',
Uid varchar(11) NOT NULL default '-1',
Gid varchar(11) NOT NULL default '-1',
Dir varchar(128) NOT NULL default '',
ULBandwidth smallint(5) NOT NULL default '0',
DLBandwidth smallint(5) NOT NULL default '0',
comment tinytext NOT NULL,
ipaccess varchar(15) NOT NULL default '*',
QuotaSize smallint(5) NOT NULL default '0',
QuotaFiles int(11) NOT NULL default 0,
PRIMARY KEY (User),
UNIQUE KEY User (User)
) TYPE=MyISAM;quit;Come avrai notato, con il comando quit; siamo usciti dalla shell MySQL e siamo tornati sulla shell di Linux.
A proposito, (presumo che il nome host del tuo sistema server ftp sia server1.example.com) puoi accedere a phpMyAdmin all’indirizzo http://server1.example.com/phpmyadmin/ (puoi anche utilizzare l’indirizzo IP invece di server1.example.com) in un browser e accedere come utente pureftpd. Poi puoi dare un’occhiata al database. Più avanti puoi utilizzare phpMyAdmin per amministrare il tuo server PureFTPd.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.