Hosting Virtuale · 4 min read · Dec 15, 2025
Hosting Virtuale Con Proftpd E MySQL (Incl. Quota)
Questo è un “copia e incolla” HowTo! Il modo più semplice per seguire questo tutorial è utilizzare un client da riga di comando/client SSH (come PuTTY per Windows) e semplicemente copiare e incollare i comandi (eccetto dove devi fornire informazioni proprie come indirizzi IP, nomi host, password,…). Questo aiuta a evitare errori di battitura.
Hosting Virtuale Con Proftpd E MySQL (Incl. Quota)
Versione 1.0
Autore: Falko Timme
Questo documento descrive come installare un server Proftpd 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 quota con questa configurazione.
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 impazzire con la riga di comando.
Questo tutorial è basato su Debian Sarge (Debian 3.1). Dovresti già aver configurato un sistema Debian di base, come descritto qui: https://www.howtoforge.com/perfect_setup_debian_sarge e https://www.howtoforge.com/perfect_setup_debian_sarge_p2. Dovrebbe applicarsi ad altre distribuzioni basate su Debian come Ubuntu, Knoppix, ecc. senza modifiche. Su altre distribuzioni come SuSE, Fedora, Mandriva, ecc. solo l’installazione di Proftpd è diversa; la configurazione di Proftpd dovrebbe applicarsi anche a queste distribuzioni.
Questo howto è inteso come una guida pratica; non copre gli aspetti teorici. Questi sono trattati in molti altri documenti sul web.
Questo documento viene fornito senza garanzia di alcun tipo! Voglio dire che questo non è l’unico modo per impostare un sistema del genere. Ci sono molti modi per raggiungere questo obiettivo, ma questo è il modo che seguo. Non rilascio alcuna garanzia che questo funzionerà per te!
1 Installa MySQL E phpMyAdmin
Tutto questo può essere installato con un solo comando:
apt-get install mysql-server mysql-client libmysqlclient12-dev phpmyadmin
Ti verranno poste alcune domande:
Abilitare suExec? <– Sì
Configurazione di mysql-server (Suggerimenti di installazione) <– OK
Quale server web desideri riconfigurare automaticamente? <– apache, apache2
Vuoi che riavvii apache ora? <– Sì
Crea una password per l’utente MySQL root (sostituisci yourrootsqlpassword con la password che desideri utilizzare):
mysqladmin -u root password yourrootsqlpassword
2 Installa Proftpd Con supporto MySQL
Per Debian è disponibile un pacchetto proftpd-mysql preconfigurato. Installalo come daemon standalone in questo modo:
apt-get install proftpd-mysql
Esegui proftpd da inetd o standalone? <– standalone
Poi creiamo un gruppo ftp (“ ftpgroup “) e un utente (“ ftpuser “) a cui verranno mappati tutti i nostri utenti virtuali. Sostituisci il gruppo e l’userid 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 proftpd” -g ftpgroup ftpuser
3 Crea Il Database MySQL Per Proftpd
Ora creiamo un database chiamato ftp e un utente MySQL di nome proftpd che il daemon proftpd utilizzerà in seguito per connettersi al database ftp:
mysql -u root -p
create database ftp;
GRANT SELECT, INSERT, UPDATE, DELETE ON ftp. TO ‘proftpd’@’localhost’ IDENTIFIED BY ‘password’;
GRANT SELECT, INSERT, UPDATE, DELETE ON ftp. TO ‘proftpd’@’localhost.localdomain’ IDENTIFIED BY ‘password’;
FLUSH PRIVILEGES;
Sostituisci la stringa password con qualsiasi password tu voglia utilizzare per l’utente MySQL proftpd. Ancora nella shell MySQL, creiamo le tabelle del database di cui abbiamo bisogno:
USE ftp;
CREATE TABLE ftpgroup (
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’;
CREATE TABLE ftpquotalimits (
name varchar(30) default NULL,
quota_type enum(‘user’,’group’,’class’,’all’) NOT NULL default ‘user’,
per_session enum(‘false’,’true’) NOT NULL default ‘false’,
limit_type enum(‘soft’,’hard’) NOT NULL default ‘soft’,
bytes_in_avail int(10) unsigned NOT NULL default ‘0’,
bytes_out_avail int(10) unsigned NOT NULL default ‘0’,
bytes_xfer_avail int(10) unsigned NOT NULL default ‘0’,
files_in_avail int(10) unsigned NOT NULL default ‘0’,
files_out_avail int(10) unsigned NOT NULL default ‘0’,
files_xfer_avail int(10) unsigned NOT NULL default ‘0’
) TYPE=MyISAM;
CREATE TABLE ftpquotatallies (
name varchar(30) NOT NULL default ‘’,
quota_type enum(‘user’,’group’,’class’,’all’) NOT NULL default ‘user’,
bytes_in_used int(10) unsigned NOT NULL default ‘0’,
bytes_out_used int(10) unsigned NOT NULL default ‘0’,
bytes_xfer_used int(10) unsigned NOT NULL default ‘0’,
files_in_used int(10) unsigned NOT NULL default ‘0’,
files_out_used int(10) unsigned NOT NULL default ‘0’,
files_xfer_used int(10) unsigned NOT NULL default ‘0’
) TYPE=MyISAM;
CREATE TABLE ftpuser (
id int(10) unsigned NOT NULL auto_increment,
userid varchar(32) NOT NULL default ‘’,
passwd varchar(32) NOT NULL default ‘’,
uid smallint(6) NOT NULL default ‘5500’,
gid smallint(6) NOT NULL default ‘5500’,
homedir varchar(255) NOT NULL default ‘’,
shell varchar(16) NOT NULL default ‘/sbin/nologin’,
count int(11) NOT NULL default ‘0’,
accessed datetime NOT NULL default ‘0000-00-00 00:00:00’,
modified datetime NOT NULL default ‘0000-00-00 00:00:00’,
PRIMARY KEY (id),
UNIQUE KEY userid (userid)
) TYPE=MyISAM COMMENT=’Tabella utenti ProFTP’;
quit;
Come avrai notato, con il comando quit; siamo usciti dalla shell MySQL e siamo tornati nella shell di Linux.
A proposito, (sto suggerendo che il nome host del tuo sistema server ftp è server1.example.com) puoi accedere a phpMyAdmin su http://server1.example.com/phpmyadmin/ (puoi usare l’indirizzo IP invece di server1.example.com) in un browser e accedere come proftpd. Poi puoi dare un’occhiata al database. Più tardi puoi usare phpMyAdmin per amministrare il tuo server Proftpd.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.