Installazione FTP · 6 min read · Sep 24, 2025

Installazione di Pure-FTPd su Ubuntu 22.04

Pure-FTPd è un server FTP gratuito (licenza BSD), sicuro, di qualità di produzione e conforme agli standard. Non fornisce campanelli e fischietti non necessari, ma si concentra sull’efficienza e sulla facilità d’uso. Questa guida fornisce un processo passo-passo per installare e configurare 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 update

Installazione di Pure-FTPd

Successivamente, installa Pure-FTPd utilizzando il seguente comando:

sudo apt install pure-ftpd

Configurazione di Pure-FTPd per una maggiore sicurezza

Impostazione di un ambiente sicuro

Crea un gruppo dedicato per gli utenti FTP:

sudo groupadd ftpgroup

Crea un utente per Pure-FTPd:

sudo useradd -g ftpgroup -d /dev/null -s /etc ftpuser

Gestione 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 mkdb

Sostituisci [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.pem

Modifica la configurazione di Pure-FTPd per attivare TLS:

echo 1 | sudo tee /etc/pure-ftpd/conf/TLS  
sudo service pure-ftpd restart

Opzioni di configurazione avanzate

Ecco un elenco delle 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: Collega il server a un indirizzo IP e a una porta specifici. Ad esempio, Bind 21 si collega 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 propria directory home.
  • CreateHomeDir: Crea automaticamente le directory home se non esistono quando un utente accede.
  • CustomerProof: Aumenta la resilienza contro errori comuni nei client e nei comandi di configurazione.
  • 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 tempo massimo 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 l’accesso. 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 l’accesso.
  • UMask: Imposta l’umask predefinito per la creazione di file.
  • UnixAuthentication: Abilita l’autenticazione contro il database delle password UNIX.
  • UploadScript: Specifica uno script da eseguire dopo un caricamento riuscito.

Questo elenco copre le opzioni di configurazione più comunemente utilizzate, ma non è esaustivo. Consulta sempre la documentazione ufficiale di Pure-FTPd o utilizza il

pure-ftpd-wrapper --help

comando per le informazioni più accurate e complete.

Esempi

Ecco un elenco delle 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 IPv4Only o IPv6Only. - 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.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.