FTP Server · 7 min read · Sep 23, 2025
Installazione di Pure-FTPd su Ubuntu 24.04

Pure-FTPd è un software server FTP gratuito e open-source disponibile per Ubuntu e altre distribuzioni Linux. Progettato con un focus sulla sicurezza, sulle prestazioni e sulla facilità d’uso, Pure-FTPd offre funzionalità robuste come il supporto per utenti virtuali, connessioni crittografate utilizzando TLS/SSL e vari meccanismi di autenticazione. Fornisce anche funzionalità come limitazione della larghezza di banda, restrizione dei permessi degli utenti e abilitazione dell’accesso FTP anonimo. Pure-FTPd è spesso scelto per la sua semplicità di configurazione rispetto ad altri server FTP, rendendolo una scelta popolare sia per implementazioni su piccola scala che su larga scala sui sistemi Ubuntu.
Il File Transfer Protocol (FTP) è un protocollo di rete standard utilizzato per trasferire file tra un client e un server su una rete, come Internet. Sviluppato all’inizio degli anni ‘70, FTP consente agli utenti di caricare, scaricare e gestire file su un server remoto. Funziona utilizzando due canali: un canale di comando per controllare la connessione e un canale dati per trasferire file. FTP può funzionare in modalità attiva o passiva, che determina come il server e il client stabiliscono le connessioni. Sebbene sia ampiamente utilizzato per i trasferimenti di file, FTP è considerato insicuro perché i dati, comprese le credenziali di accesso, vengono trasmessi in testo semplice; in questa guida ti mostrerò come configurare Pure-FTPd per utilizzare FTPS (FTP su SSL/TLS), rendendo FTP sicuro.
Questo tutorial ti guida passo dopo passo attraverso il processo di installazione e configurazione di Pure-FTPd su Ubuntu.
Requisiti per l’Installazione di Pure-FTPd
Prima di procedere con l’installazione, assicurati di avere:
- Un server Ubuntu configurato
- Accesso a un account utente con privilegi
sudo
Installazione Passo-Passo di Pure-FTPd
Aggiornamento dei Pacchetti di Sistema
Per prima cosa, aggiorna l’elenco dei pacchetti del tuo sistema:
sudo apt updateInstallazione di Pure-FTPd
Successivamente, installa Pure-FTPd utilizzando il seguente comando:
sudo apt install pure-ftpdConfigurazione di Pure-FTPd per una Maggiore Sicurezza
Impostazione di un Ambiente Sicuro
Crea un gruppo dedicato per gli utenti FTP:
sudo groupadd ftpgroupCrea un utente per Pure-FTPd:
sudo useradd -g ftpgroup -d /dev/null -s /etc ftpuserGestione dell’Accesso degli Utenti
Per aggiungere un utente al server FTP:
sudo pure-pw useradd [username] -u ftpuser -g ftpgroup -d /home/ftpusers/[username]
sudo pure-pw mkdbSostituisci [username] con il nome utente desiderato.
Configurazione di TLS per un Trasferimento Dati Sicuro
Genera un certificato autofirmato:
sudo openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pemModifica la configurazione di Pure-FTPd per attivare TLS:
echo 1 | sudo tee /etc/pure-ftpd/conf/TLS
sudo service pure-ftpd restartOpzioni di Configurazione Avanzate
Ecco un elenco di impostazioni comuni che possono essere configurate per Pure-FTPd nella directory /etc/pure-ftpd/conf/ su Ubuntu. Il nome del file di configurazione è in grassetto.
- AltLog: Specifica metodi di registrazione alternativi. Ad esempio, AltLog clf:/var/log/pureftpd.log registrerà i trasferimenti in formato W3C.
- AnonymousOnly: Quando abilitato (creando un file chiamato AnonymousOnly), limita il server a consentire solo accessi anonimi.
- AntiWarez: Se questo file esiste, agli utenti è vietato caricare file che esistono già sul server.
- AutoRename: Rinomina automaticamente i file caricati se esiste un file con lo stesso nome.
- Bind: Associa il server a un indirizzo IP e una porta specifici. Ad esempio, Bind 21 associa alla porta 21 su tutti gli indirizzi disponibili.
- BrokenClientsCompatibility: Abilita la compatibilità con i client FTP che non aderiscono rigorosamente agli standard FTP.
- ChrootEveryone: Se abilitato, limita tutti gli utenti alla loro directory home.
- CreateHomeDir: Crea automaticamente le directory home se non esistono quando un utente accede.
- CustomerProof: Aumenta la resilienza contro errori comuni nelle configurazioni e nei comandi dei client.
- Daemonize: Quando questo file esiste, Pure-FTPd verrà eseguito come un demone.
- DisplayDotFiles: Controlla se i file nascosti (file dot) vengono visualizzati o meno.
- DontResolve: Previene la risoluzione DNS per la registrazione e il controllo della larghezza di banda, il che può migliorare le prestazioni.
- ExtAuth: Specifica un programma esterno per l’autenticazione degli utenti.
- ForcePassiveIP: Costringe il server a segnalare un indirizzo IP specifico ai client in modalità passiva.
- FSCharset: Imposta il set di caratteri del file system, utile per nomi di file non ASCII.
- IPv4Only o IPv6Only: Limita il server ad ascoltare solo indirizzi IPv4 o IPv6.
- KeepAllFiles: Previene la cancellazione di qualsiasi file sul server.
- LDAPConfigFile: Specifica il percorso del file di configurazione LDAP per l’autenticazione.
- LimitRecursion: Limita la profondità di ricorsione e il numero di file visualizzati nelle liste delle directory.
- MaxClientsNumber: Limita il numero massimo di client simultanei.
- MaxClientsPerIP: Limita il numero di connessioni simultanee da un singolo indirizzo IP.
- MaxDiskUsage: Limita la percentuale di utilizzo del disco.
- MaxIdleTime: Imposta il massimo tempo di inattività in minuti prima di disconnettere un client.
- MaxLoad: Disconnette i client o rifiuta nuove connessioni sopra un certo carico di sistema.
- MinUID: Imposta l’UID minimo per il login. Gli utenti con un UID inferiore non possono accedere.
- MySQLConfigFile: Specifica il percorso del file di configurazione MySQL per l’autenticazione basata su database.
- NoAnonymous: Disabilita gli accessi anonimi se questo file esiste.
- NoChmod: Disabilita il comando CHMOD sul server.
- NoRename: Impedisce agli utenti di rinominare i file.
- PassivePortRange: Definisce un intervallo di porte per le connessioni passive (ad es., 30000 35000).
- PerUserLimits: Imposta limiti su base per utente.
- PureDB: Specifica il percorso del file del database utenti PureDB.
- Quota: Imposta limiti di quota per gli utenti.
- SyslogFacility: Definisce la struttura syslog per la registrazione.
- TLSCipherSuite: Specifica i cifrari TLS consentiti per le connessioni crittografate.
- TrustedGID: Specifica un elenco di ID di gruppo fidati per il login.
- UMask: Imposta l’umask predefinito per la creazione di file.
- UnixAuthentication: Abilita l’autenticazione contro il database password UNIX.
- UploadScript: Specifica uno script da eseguire dopo un caricamento riuscito.
Questa lista copre le opzioni di configurazione più comunemente utilizzate ma non è esaustiva. Consulta sempre la documentazione ufficiale di Pure-FTPd o utilizza il
pure-ftpd-wrapper --helpcomando per le informazioni più accurate e complete.
Esempi
Ecco un elenco di impostazioni di Pure-FTPd nella directory /etc/pure-ftpd/conf/ con esempi per illustrare i tipi di valori che accettano:
- AltLog:
AltLog clf:/var/log/pureftpd.log- Esempio:clf:/var/log/pureftpd.log - AnonymousOnly: Abilita creando un file chiamato
AnonymousOnly. - Nessun valore necessario. - AntiWarez: Abilita creando un file chiamato
AntiWarez. - Nessun valore necessario. - AutoRename: Abilita creando un file chiamato
AutoRename. - Nessun valore necessario. - Bind:
Bind 21- Esempio:192.168.0.1,21 - BrokenClientsCompatibility: Abilita creando un file chiamato
BrokenClientsCompatibility. - Nessun valore necessario. - ChrootEveryone: Abilita creando un file chiamato
ChrootEveryone. - Nessun valore necessario. - CreateHomeDir: Abilita creando un file chiamato
CreateHomeDir. - Nessun valore necessario. - CustomerProof: Abilita creando un file chiamato
CustomerProof. - Nessun valore necessario. - Daemonize: Abilita creando un file chiamato
Daemonize. - Nessun valore necessario. - DisplayDotFiles: Abilita creando un file chiamato
DisplayDotFiles. - Nessun valore necessario. - DontResolve: Abilita creando un file chiamato
DontResolve. - Nessun valore necessario. - ExtAuth:
ExtAuth /path/to/authenticator- Esempio:/usr/local/bin/myauth - ForcePassiveIP:
ForcePassiveIP 192.168.0.1- Esempio:192.168.0.1 - FSCharset:
FSCharset utf-8- Esempio:utf-8 - IPv4Only o IPv6Only: Abilita creando un file chiamato
IPv4OnlyoIPv6Only. - Nessun valore necessario. - KeepAllFiles: Abilita creando un file chiamato
KeepAllFiles. - Nessun valore necessario. - LDAPConfigFile:
LDAPConfigFile /etc/pure-ftpd/ldap.conf- Esempio:/etc/pure-ftpd/ldap.conf - LimitRecursion:
LimitRecursion 10000 8- Esempio:10000 8(10000 file, 8 livelli di profondità) - MaxClientsNumber:
MaxClientsNumber 50- Esempio:50 - MaxClientsPerIP:
MaxClientsPerIP 8- Esempio:8 - MaxDiskUsage:
MaxDiskUsage 95- Esempio:95(95 percento) - MaxIdleTime:
MaxIdleTime 15- Esempio:15(15 minuti) - MaxLoad:
MaxLoad 4.0- Esempio:4.0 - MinUID:
MinUID 1000- Esempio:1000 - MySQLConfigFile:
MySQLConfigFile /etc/pure-ftpd/mysql.conf- Esempio:/etc/pure-ftpd/mysql.conf - NoAnonymous: Abilita creando un file chiamato
NoAnonymous. - Nessun valore necessario. - NoChmod: Abilita creando un file chiamato
NoChmod. - Nessun valore necessario. - NoRename: Abilita creando un file chiamato
NoRename. - Nessun valore necessario. - PassivePortRange:
PassivePortRange 30000 35000- Esempio:30000 35000 - PerUserLimits:
PerUserLimits 8- Esempio:8(8 connessioni simultanee per utente) - PureDB:
PureDB /etc/pure-ftpd/pureftpd.pdb- Esempio:/etc/pure-ftpd/pureftpd.pdb - Quota:
Quota 1000M- Esempio:1000M(1000 Megabyte) - SyslogFacility:
SyslogFacility ftp- Esempio:ftp - TLSCipherSuite:
TLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3- Esempio:HIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3 - TrustedGID:
TrustedGID 1000- Esempio:1000 - UMask:
UMask 133:022- Esempio:133:022(File: 133, Directory: 022) - UnixAuthentication: Abilita creando un file chiamato
UnixAuthentication. - Nessun valore necessario. - UploadScript:
UploadScript /path/to/script- Esempio:/usr/local/bin/uploadscript
Questi esempi dovrebbero chiarire come configurare varie opzioni in Pure-FTPd.
Monitoraggio e Manutenzione
Controlla regolarmente i log in /var/log/pure-ftpd/ per eventuali attività o errori insoliti.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.