GNU/Linux >> Linux Esercitazione >  >> Panels >> Webmin

Server ProFTPD

Questa pagina spiega il protocollo FTP, quindi descrive come impostare il server ProFTPD e come configurarlo per vari scopi.

Nota: Dato che i moderni client FTP supportano SSH, considera di utilizzare un server SSH invece di un server FTP, per (molto) più sicurezza di quanto qualsiasi server FTP possa promettere

Contenuti

Introduzione a FTP e ProFTPD

FTP sta per protocollo di trasferimento file e, insieme a telnet e SMTP, è uno dei protocolli più antichi ancora in uso comune su Internet. FTP è progettato per consentire ai programmi client di leggere, scrivere ed eliminare file su un server remoto, indipendentemente dal sistema operativo su cui è in esecuzione il server. In sostanza, è un protocollo di condivisione file, ma a differenza dei più comuni protocolli NFS e SMB, è più adatto per l'uso su una rete lenta o ad alta latenza.

In genere, FTP viene utilizzato per trasferire file da un sistema all'altro. A volte quei file sono immagini CD di distribuzione Linux o pacchetti RPM, scaricati da vari client host su Internet da un grande sistema server che li ospita a cui tutti possono accedervi. Altre volte i file sono pagine di un sito Web, caricate da un client FTP gestito dal proprietario del sito su un sistema che esegue sia il server Web che un server FTP.

Anche se il protocollo FTP è stato in gran parte sostituito da HTTP come metodo di download dei file, presenta comunque molti vantaggi. Il più grande è la capacità dei client di caricare file sul server, supponendo che sia stato configurato per consentirli. Un altro è un formato di elenco di directory semi-standard, che i client possono utilizzare per recuperare un elenco di file in una directory dal server.

Quando un client FTP si connette a un server, deve prima autenticarsi prima che qualsiasi trasferimento di file possa aver luogo. Spesso i client effettuano l'accesso come utente anonimo speciale, che non richiede password e di solito è configurato per essere in grado di scaricare solo file. Sui sistemi Unix, la maggior parte dei server FTP consente a qualsiasi utente locale di accedere con lo stesso nome utente e password che utilizzerebbe per telnet o SSH e concedere al proprio client l'accesso agli stessi file con le stesse autorizzazioni.

Un'altra caratteristica unica del protocollo FTP è il suo supporto per la traduzione di file tra il formato dati utilizzato sul client e quello utilizzato sul server. L'uso più comune di questo è la conversione di file di testo tra i formati Unix, Windows e MacOS, ognuno dei quali utilizza caratteri diversi per rappresentare la fine di una riga. Questa funzione può essere disabilitata per il trasferimento di file binari come immagini, eseguibili e ISO, poiché danneggia i dati non di testo.

Esistono molti diversi programmi client FTP, dal comando Unix ftp di base a browser come IE e Mozilla. Ogni sistema operativo moderno ne ha almeno uno e quasi tutti includono un client di qualche tipo come standard. Anche i server FTP sono abbondanti, ma questo capitolo si concentra solo su uno:ProFTPD, che a mio parere è il server più flessibile disponibile per i sistemi operativi Unix.

Anche se tutte le varietà di Unix vengono fornite con un server FTP come standard, il server fornito è solitamente molto semplice e privo di funzionalità, oppure il più potente WU-FTPd. Sebbene quest'ultimo abbia molte opzioni configurabili, ma non è capace come ProFTPD quando si tratta di hosting virtuale, restrizioni di directory e blocco degli utenti nelle loro home directory.

ProFTPD generalmente utilizza un unico file di configurazione, che si trova in /etc/proftpd.conf. Questo file è composto da direttive, ognuna delle quali occupa solitamente una singola riga e ha un nome e un valore. Ogni direttiva imposta una singola opzione configurabile, come il nome di un file nascosto o il percorso di un messaggio di benvenuto. Esistono anche direttive contenitore speciali per raggruppare altre direttive che si applicano solo a un singolo server virtuale o directory, che si estendono su più righe.

Il modulo server ProFTPD

L'icona del modulo Server ProFTPD si trova in Webmin nella scheda Server del menu principale. Quando fai clic su di esso, apparirà la pagina principale del modulo come mostrato nell'immagine sottostante, supponendo che tu abbia effettivamente installato il server.


Il modulo Server ProFTPD

Se invece la pagina principale mostra un messaggio di errore come *Impossibile trovare il server ProFTPD /usr/sbin/proftpd sul tuo sistema*, allora il server probabilmente non è installato e quindi il modulo non può essere utilizzato. La maggior parte delle distribuzioni Linux include un pacchetto ProFTPD sul proprio CD o sito Web, quindi utilizzare il modulo Pacchetti software (trattato nel capitolo 12) per installarlo. Se non esiste alcun pacchetto, scaricare il codice sorgente da www.proftpd.org, compilarlo e installarlo.

Se hai già installato un altro server FTP, dovresti prima rimuoverlo in modo che non si scontrino.

Un altro errore che potrebbe essere visualizzato nella pagina principale è *Il programma /usr/sbin/ftpd non sembra essere il server ProFTPD*. Ciò si verificherà se Webmin rileva che è invece installato un altro server FTP - in tal caso, sarà necessario rimuoverlo e installare ProFTPD.

ProFTPD può essere eseguito in due diverse modalità:sia come processo daemon autonomo che ascolta le connessioni FTP, sia da un super-server come inetd o xinetd. Il primo accetta connessioni più velocemente, ma al costo di una maggiore quantità di memoria utilizzata da un processo sempre in esecuzione. Quest'ultimo è migliore per i sistemi che non si aspettano di ricevere molto traffico FTP, poiché il programma ProFTPD viene eseguito solo quando è necessario.

Poiché la modalità standalone è più facile da configurare e poiché la memoria è abbondante sulla maggior parte dei sistemi, questo capitolo presuppone che la si eseguirà in quella modalità. Per avviare il processo del server ProFTPD, segui questi passaggi :

  1. Nel modulo Servizi e protocolli Internet (trattato in Servizi Internet), assicurati che qualsiasi servizio esistente denominato ftp abbia Programma disabilitato o Nessun programma assegnato selezionato. Ciò garantisce che nessun servizio FTP venga eseguito da inetd. Se disabiliti un servizio, assicurati di premere Applica modifiche pulsante nella pagina principale di quel modulo per attivare le modifiche.
  2. Nel modulo Servizi Internet estesi, assicurati che tutti i servizi con ftp nel nome (come wu-ftpd, proftpd o vsftpd) abbiano il loro Servizio abilitato? campo impostato su No . Ancora una volta, dovrai premere i moduli Applica modifiche per attivare eventuali modifiche.
  3. Tornando al modulo Server ProFTPD, fare clic sull'icona Opzioni di rete.
  4. Seleziona Demone autonomo dal Tipo di server menù.
  5. Fai clic su Salva pulsante in fondo alla pagina.
  6. Nella pagina principale del modulo, un pulsante con l'etichetta Avvia server dovrebbe apparire in basso. Premilo per avviare il demone ProFTPD.
  7. Se si desidera riavviare il demone all'avvio, utilizzare il modulo Bootup and Shutdown per creare un'azione denominata proftpd che esegue il comando /usr/sbin/proftpd all'avvio. Il percorso effettivo può essere /usr/local/sbin/proftpd o /usr/sbin/in.proftpd a seconda della distribuzione Linux in esecuzione o se hai compilato e installato il programma da solo invece di utilizzare un pacchetto. Inoltre, alcuni pacchetti ProFTPD potrebbero già includere uno script di avvio come questo, che potresti dover semplicemente abilitare.

Una volta avviato ProFTPD, è possibile testarlo utilizzando il client FTP Unix della riga di comando per connettersi al proprio sistema. Basta eseguire ftp localhost e assicurarsi di poter accedere come un utente diverso da root. Puoi verificare che il server sia davvero ProFTPD controllando la versione visualizzata dal comando ftp appena prima che venga richiesto un nome utente, a meno che non sia stato configurato per impostazione predefinita per non visualizzare le informazioni sulla versione.

Eseguire ProFTPD da inetd o xinetd

Anche configurare ProFTPD per l'esecuzione da un super-server non è troppo difficile e potrebbe essere una buona idea se il tuo sistema ha poca memoria o non riceve quasi mai connessioni FTP. Prima di poter eseguire questa operazione, è necessario terminare qualsiasi processo del server proftpd esistente (facilmente eseguito con il modulo Processi in esecuzione) e disabilitare o eliminare qualsiasi azione che lo avvii al momento dell'avvio.

Se il tuo sistema utilizza xinetd superiore, segui queste istruzioni per configurare il servizio FTP. Poiché molti pacchetti includono un file di configurazione /etc/xinetd.d per il server, alcuni dei campi spiegati di seguito potrebbero essere già compilati correttamente.

  1. Vai alla categoria Networking di Webmin e fai clic sull'icona *Extended Internet Services*. Se non esiste, xinetd non è installato e dovrai invece configurare il server usando inetd.
  2. Nella pagina principale del modulo, verifica la presenza di un servizio esistente denominato ftp o proftp. Se ne esiste uno, fai clic su di esso, altrimenti segui Crea un nuovo servizio Internet link sopra o sotto la tabella.
  3. Nel Nome del servizio campo, immettere ftp (a meno che non sia già stato compilato).
  4. Assicurati che il l'opzione è selezionata in Servizio abilitato? campo.
  5. Lascia il Lega all'indirizzo campo impostato su Tutto e il *Numero di porta* su Standard o 21 .
  6. Seleziona Stream dal Tipo di presa menu e Predefinito o TCP dal Protocollo elenco.
  7. Nel Servizio gestito da campo, selezionare il Programma server opzione e inserisci il percorso dell'eseguibile proftpd (come /usr/sbin/proftpd ) nella casella di testo adiacente. Il percorso dipende dal fatto che tu abbia installato il programma da un pacchetto o lo hai compilato dal codice sorgente.
  8. In Esegui come utente campo, inserisci root .
  9. Seleziona No per il Aspettare fino al completamento? campo.
  10. Lascia tutti gli altri campi impostati sui valori predefiniti e fai clic su Salva o Crea pulsante in fondo al modulo.
  11. Nella pagina principale del modulo, fai clic su Applica modifiche pulsante sotto l'elenco dei servizi.

In alternativa, per configurare un servizio inetd per ProFTPD utilizzando il modulo Servizi e protocolli Internet, attenersi alla seguente procedura:

  1. Vai alla categoria Networking di Webmin e clicca sull'icona *Internet Services and Protocols*. Se non esiste, è probabile che il tuo sistema stia utilizzando xinetd - vedere i passaggi nel paragrafo precedente per istruzioni su come configurarlo.
  2. Nella pagina principale del modulo, fai clic su ftp nella tabella *Servizi Internet*. Se non è visibile, inserisci ftp nel campo *Modifica servizio* e premi il pulsante. In entrambi i casi, verrà visualizzata la stessa pagina per la modifica del servizio del protocollo FTP.
  3. Nel Programma Server sezione, seleziona Programma abilitato .
  4. Nel campo Programma , seleziona il Comando opzione e inserisci il percorso completo dell'eseguibile del server ProFTPD nel campo accanto ad esso, ad esempio /usr/sbin/proftpd . Negli Args campo, inserisci solo proftpd . Il percorso dipende dal fatto che tu abbia installato il programma da un pacchetto o lo hai compilato dal codice sorgente.
  5. Imposta la Modalità di attesa a Non aspettare e inserisci root in Esegui come utente campo. Tutti gli altri possono essere lasciati invariati.
  6. Fai clic su Salva e quindi di nuovo nella pagina principale del modulo, fai clic su Applica modifiche .

Una volta che ProFTPD è stato configurato per l'esecuzione da inetd o xinetd, è possibile testarlo utilizzando il client FTP Unix della riga di comando per connettersi al proprio sistema. Basta eseguire ftp localhost e assicurarsi di poter accedere come un utente diverso da root. Se la connessione di prova non riesce con un errore come Servizio non disponibile , la causa più probabile è che ProFTPD è configurato per essere eseguito come server autonomo. Questo problema può essere risolto facilmente seguendo questi passaggi :

  1. Andare al modulo Server ProFTPD e fare clic sull'icona *Opzioni di rete* nella pagina principale.
  2. Dal Tipo di server menu nel modulo visualizzato, seleziona Esegui da Inetd .
  3. Premi Salva pulsante in fondo alla pagina.

Le istruzioni nel resto di questo capitolo funzioneranno bene indipendentemente dalla modalità in cui è in esecuzione ProFTPD. L'unica differenza è che Applica modifiche il pulsante non verrà visualizzato nella pagina principale, poiché non è necessario riavviare un processo del server per rendere effettive le modifiche alla configurazione. Le modifiche verranno invece applicate alla successiva sessione FTP avviata.

Utilizzo del modulo Server ProFTPD

ProFTPD utilizza un formato di file di configurazione molto simile ad Apache, quindi l'interfaccia utente per questo modulo è per molti versi la stessa del modulo di configurazione di Apache. Al livello più alto nella configurazione ci sono le impostazioni globali che influiscono sull'intero server. Sotto di essi ci sono i server virtuali e poi le opzioni FTP anonime, le opzioni per directory e le opzioni che si applicano solo a determinati comandi FTP.

Le opzioni che si applicano a ciascuna connessione o comando FTP sono determinate dal server virtuale collegato, dal tipo di login, dalla directory in cui si trova il file richiesto e dallo specifico comando FTP utilizzato. Le opzioni impostate dagli oggetti inferiori nella gerarchia hanno la precedenza su quelle ai livelli superiori, in modo da poter impedire il caricamento su un server, ma consentirlo per una directory. Allo stesso modo, le opzioni per una directory più specifica (come /usr/local/upload) sovrascrivono quelle per i suoi genitori (come /usr/local).

Un caso speciale è il server predefinito, che definisce le impostazioni per i client che non si connettono a nessun server virtuale specifico. A differenza di Apache, le opzioni impostate nel server predefinito non hanno effetto sui server virtuali. Se invece si vogliono specificare delle impostazioni che abbiano effetto su tutte, è necessario che si trovi nella speciale sezione globale della configurazione di ProFTPD. Questo vale anche per le opzioni specifiche di directory e comandi FTP.

Il modulo ha una pagina per la modifica delle opzioni per ogni oggetto nell'albero, che contiene icone che collegano agli oggetti più in basso. Ad esempio, nella pagina delle opzioni del server virtuale ci sono icone per le varie categorie di opzioni che si applicano a quel server (come la registrazione e l'utente e il gruppo), insieme alle icone per qualsiasi directory o comando FTP che ha le proprie opzioni all'interno del server virtuale server. C'è anche un'icona per le opzioni specifiche per le connessioni FTP anonime.

In ogni pagina della gerarchia ci sono moduli per l'aggiunta di oggetti (come una directory o un gruppo di comandi FTP) sotto di essa e un Configura icona per modificare o eliminare l'oggetto corrente. Ogni pagina contiene anche una Modifica direttive icona che consente di visualizzare e modificare manualmente le direttive ProFTPD per la directory, il server virtuale o qualunque cosa rappresenti la pagina. L'eccezione è la pagina del server predefinita, che non ha tali icone perché non può essere modificata o eliminata e perché le sue direttive non possono essere separate dal resto del file di configurazione.

A prima vista, alcuni dei moduli nel modulo possono sembrare scoraggianti poiché mostrano i campi per quasi tutte le opzioni ProFTPD disponibili in alcune categorie relative a un oggetto. Tuttavia, molte di queste opzioni sono estremamente specializzate e possono essere ignorate per la maggior parte del tempo. I passaggi nelle varie sezioni di questo capitolo spiegano quali è necessario modificare per ottenere un risultato - gli altri possono essere lasciati soli, poiché i loro valori predefiniti sono generalmente adeguati.

Poiché ogni nuova versione di ProFTPD rilasciata supporta nuove direttive, questo modulo può rilevare la versione in esecuzione e regolare la sua interfaccia utente per visualizzare solo i campi validi per la tua versione. Ciò significa che i moduli potrebbero non apparire esattamente uguali su tutti i sistemi e che alcune parti delle istruzioni in questo capitolo potrebbero non essere valide per il tuo server FTP se stai eseguendo una versione precedente.

Creazione di server virtuali

Probabilmente la caratteristica più utile di ProFTPD è il supporto per i server FTP virtuali. Ciò consente di definire un insieme completamente diverso di opzioni che si applicano ai client che si connettono a un particolare indirizzo IP. Nella maggior parte dei casi, sono simili ai server virtuali basati su IP di Apache, con cui la maggior parte degli amministratori di siti Web dovrebbe avere familiarità.

I server virtuali sono davvero utili solo se il tuo sistema ha più indirizzi IP. In genere, ciò avviene aggiungendo ulteriori indirizzi IP virtuali all'interfaccia di rete connessa a Internet, come spiegato nella pagina Configurazione di rete. Come al solito, qualsiasi indirizzo IP aggiuntivo deve essere correttamente instradato al tuo sistema:se sei connesso a un ISP e ti viene assegnato un solo indirizzo statico, non puoi semplicemente aggiungere ulteriori interfacce virtuali e aspettarti che funzionino. A differenza di Apache, ProFTPD non supporta i server virtuali basati sui nomi perché non sono previsti nel protocollo FTP per essi. I client non comunicano mai al server il nome host a cui si stanno connettendo, quindi il server FTP può utilizzare solo l'indirizzo IP su cui è stata ricevuta una connessione per determinare quale server virtuale desidera il client.

Quando il tuo sistema riceve una connessione FTP, ProFTPD confronterà l'indirizzo connesso con quelli di tutti i server virtuali configurati. Il primo a corrispondere definisce le opzioni che si applicano alla connessione. Se non viene trovata alcuna corrispondenza, viene utilizzato invece il server predefinito.

Per aggiungere un nuovo server FTP virtuale al tuo sistema, i passaggi da seguire sono:

  1. Nel modulo Configurazione di rete, aggiungi un nuovo indirizzo IP virtuale all'interfaccia di rete esterna del tuo sistema. Assicurati che venga attivato all'avvio e che sia attivo ora.
  2. Tornando al modulo Server ProFTPD, scorri verso il basso fino al modulo *Crea server virtuale* nella parte inferiore della pagina principale.
  3. Nell'Indirizzo campo, inserisci l'indirizzo IP che hai appena assegnato. Non dovrebbe essere utilizzato da nessun altro server virtuale già definito.
  4. Lascia il porto campo impostato su Predefinito .
  5. Nel Nome server campo, selezionare il secondo pulsante di opzione e immettere un nome per questo server che verrà visualizzato ai client di connessione. Ad esempio, puoi inserire _Server FTP di Example Corporation_. Se Predefinito è selezionato, i client vedranno invece un messaggio come ProFTPD 1.2.2rc2 Server.
  6. Premi Crea pulsante per aggiungere il server. Una volta creato, verrai indirizzato alla pagina delle opzioni del nuovo server.
  7. Torna alla pagina principale del modulo e fai clic su Applica modifiche pulsante per renderlo attivo.

Una volta creato un server virtuale, puoi impostare le opzioni ad esso applicabili facendo clic sulla sua icona nella pagina principale, quindi su una delle icone di categoria. Alcuni di questi sono spiegati più dettagliatamente più avanti nel capitolo. È anche possibile modificare gli attributi di un server virtuale facendo clic su Configura server virtuale icona, modificando i campi del modulo (che hanno lo stesso significato di quelli del modulo di creazione) e facendo clic su Salva . Oppure puoi rimuoverlo del tutto premendo Elimina server virtuale pulsante sul modulo di configurazione.

Configurazione FTP anonimo

Nella sua configurazione predefinita, ProFTPD consentirà generalmente a tutti gli utenti Unix di accedere con le loro password normali e di accedere a tutti i file sul sistema con le stesse autorizzazioni che avrebbero se avessero effettuato l'accesso tramite telnet o SSH. Alcuni pacchetti hanno anche abilitato FTP anonimo per il server predefinito, in modo che chiunque possa connettersi come utente anonimo e visualizzare i file in una directory specifica. Per configurare un FTP anonimo per un nuovo server virtuale, configurare cosa possono fare i client e a quali directory possono accedere, segui questi passaggi :

  1. Nella pagina principale del modulo, fare clic sull'icona del server virtuale o predefinito per il quale si desidera configurare l'FTP anonimo.
  2. Nella pagina delle opzioni del server virtuale, fare clic sull'icona *FTP anonimo*. Se è la prima volta che viene configurato per questo server, verrà visualizzato un piccolo modulo per l'immissione di impostazioni FTP anonime.
  3. Nel Limite alla directory campo, immettere la directory a cui devono essere limitati i client anonimi, ad esempio /home/example.com/anonftp .
  4. In Accedi ai file come utente opzione, seleziona il secondo pulsante di opzione e inserisci il nome di un utente Unix non privilegiato come ftp o nessuno . I client non saranno solo limitati alla directory scelta, ma potranno anche accedere ai file solo con i permessi di quell'utente Unix. Naturalmente, dovresti assicurarti che possa effettivamente leggere ed elencare la directory e i file che contiene. Questo utente non deve essere nell'elenco dei negati di ProFTPD o avere una shell non valida. Vedi il Limitare chi può accedere sezione più avanti nel capitolo per ulteriori informazioni su come modificare questo elenco e consentire agli utenti con qualsiasi shell.
  5. Se sei felice che i client utilizzino le autorizzazioni di gruppo dell'utente impostate nel campo precedente, lascia il campo *Accesso ai file come gruppo* impostato su Predefinito . Altrimenti, seleziona il secondo pulsante di opzione e inserisci il nome di un gruppo nel suo campo.
  6. Premi Crea pulsante per impostare la configurazione FTP anonima iniziale. Supponendo che abbia esito positivo, il browser verrà reindirizzato alla pagina delle opzioni FTP anonime in cui sono presenti le icone per le varie categorie di opzioni configurabili relative alle connessioni FTP anonime.
  7. Fare clic su Autenticazione e nella tabella Alias ​​nome utente inserisci anonimo sotto Nome utente di accesso e il nome dell'utente che hai scelto nel passaggio 4 in Nome utente reale . Questo dice a ProFTPD che i client che accedono come anonimi dovrebbero ricevere i permessi di quell'utente.
  8. Fai clic su Salva per tornare alla pagina delle opzioni FTP anonima.
  9. Nei comandi FTP campo, inserisci SCRIVI e premi Crea pulsante per avviare il processo di definizione delle opzioni che si applicano ai comandi FTP che modificano i dati sul server. Verrai indirizzato alla pagina delle opzioni per comando.
  10. Fai clic su Controllo accesso e seleziona Nega tutti i client nel Controllo accessi campo politico. Questo dice a ProFTPD di bloccare i tentativi da parte di client anonimi di caricare, eliminare o rinominare i file.
  11. Fai clic su Salva pulsante.
  12. Torna alla pagina principale del modulo e fai clic su Applica modifiche . Per assicurarti che tutto funzioni, prova ad accedere al server virtuale come utente anonimo e a scaricare alcuni file.

Se stai utilizzando il tuo sistema per ospitare più siti Web e FTP per clienti diversi, a ciascuno può essere assegnato il proprio server virtuale anonimo per rendere i file disponibili alle persone tramite FTP. I browser presuppongono che gli URL ftp:// richiedano un accesso anonimo e la maggior parte non gestisca bene i server FTP che richiedono l'autenticazione.

Limitazione degli utenti alle loro home directory

Per impostazione predefinita, i client che accedono a ProFTPD come utenti Unix validi (non anonimi) possono navigare nell'intero filesystem del sistema, proprio come farebbero se l'utente avesse effettuato l'accesso tramite SSH o telnet. Tuttavia, questo non è sempre auspicabile su un sistema che ha più utenti non attendibili a cui si desidera impedire la visualizzazione reciproca dei file. Anche se le autorizzazioni Unix possono essere utilizzate per impedire agli utenti di elencare le directory degli altri, causano problemi se si esegue anche un server web e si ha bisogno che il suo utente httpd abbia accesso ai file di tutti.

Fortunatamente, ProFTPD rende facile limitare gli utenti alle loro directory home oa qualche altra directory. Poiché questo si applica solo alle connessioni FTP, è abbastanza inutile se quegli stessi utenti possono entrare in telnet o SSH. Tuttavia, è facile consentire a un utente di connettersi solo tramite FTP dandogli una shell come /bin/false. Su un server di hosting virtuale, gli utenti devono solo caricare file per i loro siti Web e non hanno affatto bisogno dell'accesso alla shell Unix. Assicurati solo che /bin/false o qualsiasi shell non funzionale che scegli sia inclusa nel file /etc/shells in modo che ProFTPD non neghi l'accesso agli utenti.

Per limitare le directory a cui possono accedere i client FTP, segui questi passaggi :

  1. Se vuoi applicare una restrizione ad un solo server virtuale, clicca sulla sua icona nella pagina principale del modulo e poi su File e Directory icona nella pagina delle opzioni del server virtuale. Tuttavia, questo non è consigliabile in quanto potrebbe consentire agli utenti di evitare la restrizione collegandosi a un altro server virtuale. Invece, dovresti semplicemente premere File e directory icona nella Configurazione globale sezione nella pagina principale - eventuali restrizioni definite su di esso si applicheranno a tutti i server. In ogni caso, apparirà la pagina per configurare come il server elenca le directory e quali sono disponibili (mostrato nello screenshot qui sotto).
  2. Il Limita gli utenti alle directory field è in realtà una tabella che consente di inserire una limitazione di directory alla volta. Avrà sempre una riga vuota e se questa è la prima restrizione di questo tipo che hai creato, è tutto ciò che conterrà. Nella Directory colonna, seleziona Rubrica principale a se è lì che vuoi che gli utenti siano limitati. In alternativa, puoi selezionare il terzo pulsante di opzione e inserire un percorso come /home o /var/www per limitare gli utenti a quella directory. È anche possibile inserire un percorso relativo alle home directory degli utenti, come ~/public_html . Nei gruppi Unix colonna, seleziona Tutti per fare in modo che la restrizione si applichi a tutti gli utenti, oppure selezionare il secondo pulsante di opzione e inserire il nome di un gruppo in modo che si applichi solo ai membri di quel gruppo. È possibile inserire più gruppi separando i loro nomi con virgole, come utenti, personale .
  3. Fai clic su Salva per tornare alla pagina delle opzioni del server virtuale. Se desideri aggiungere un'altra restrizione (ad esempio per un gruppo e una directory diversi), fai clic su File e directory di nuovo e compilare la nuova riga vuota nella tabella.
  4. Al termine, torna alla pagina principale del modulo e premi il pulsante *Applica modifiche* per rendere attive le restrizioni.


I file e le directory formano

D'ora in poi, quando gli utenti con restrizioni si connettono, non saranno in grado di vedere i file al di fuori della directory specificata o persino di capire a quale directory sono stati limitati. A differenza di altri server FTP che supportano questo tipo di restrizione, non è necessario copiare alcun file o libreria come /bin/ls nella directory, poiché ProFTPD non dipende da alcun programma esterno.

Limitare chi può accedere

ProFTPD non consente a tutti gli utenti Unix di accedere, anche se hanno nomi utente e password validi. Il file separato /etc/ftpusers elenca gli utenti a cui non è consentito autenticarsi, che in genere includono account di sistema come bin, daemon e uucp. Inoltre, esiste un'opzione di configurazione separata che controlla se l'utente root può accedere o meno. Per impostazione predefinita non lo è, perché le password inviate dal protocollo FTP non sono crittografate e quindi consentire a root di autenticarsi potrebbe essere un grave rischio per la sicurezza.

Per impostazione predefinita, ProFTPD impedisce anche agli utenti senza una shell valida di accedere. Una shell valida è quella elencata nel file /etc/shells. Questa funzione può essere utile per impedire l'accesso a un gruppo numeroso di utenti, come quelli che dovrebbero essere in grado di connettersi solo a un server POP3 per scaricare la propria posta elettronica. Tuttavia, può essere disattivato se necessario.

Per modificare l'elenco degli utenti negati e altre restrizioni di accesso, segui questi passaggi :

  1. Nella pagina principale del modulo, fare clic su Utenti FTP negati icona. Nel modulo che appare c'è una casella di testo che elenca tutti gli utenti Unix bloccati. Modificalo per aggiungere o rimuovere tutti quelli che non dovrebbero o dovrebbero essere autorizzati ad accedere e premi il pulsante Salva pulsante.
  2. Per consentire all'utente root di connettersi, fare clic su Autenticazione icona e modificare Consenti l'accesso tramite root? campo su .
  3. Per consentire l'accesso agli utenti con shell non elencate, cambia il campo *Consenti accesso solo agli utenti con shell valida?* su anche.
  4. Premi Salva per tornare alla pagina principale, quindi fai clic su Applica modifiche per rendere attive le nuove restrizioni.

Le opzioni per consentire all'utente root e agli utenti con shell non valide di accedere possono anche essere impostate su base per server virtuale, in Autenticazione icona nella pagina delle opzioni del server virtuale. Tuttavia, non è generalmente utile dal punto di vista della sicurezza consentire ai client di un solo server di accedere, poiché gli utenti possono scegliere qualsiasi server a cui connettersi.

Impostazione delle opzioni di elenco delle directory

Normalmente, quando un client FTP richiede un elenco di directory, ProFTPD restituirà un elenco completo e accurato nel formato prodotto dal comando ls -l. A volte, tuttavia, questo fornisce troppe informazioni sul tuo sistema, come i nomi di utenti e gruppi o destinazioni di collegamenti simbolici. Spesso può essere utile nascondere determinati file che non sono rilevanti per i client perché devono essere conservati in una directory accessibile tramite FTP per altri motivi. Questo tipo di nascondere le informazioni è meglio applicato agli utenti FTP anonimi, poiché non dovrebbero essere in grado di scoprire nulla sul tuo sistema che non hanno bisogno di sapere.

Per modificare il formato degli elenchi di directory, procedi nel seguente modo:

  1. Nella pagina principale del modulo, fare clic sull'icona del server virtuale o predefinito per il quale si desidera modificare l'elenco delle directory per visualizzare la pagina delle opzioni.
  2. Supponendo di voler modificare solo le informazioni elencate per i client anonimi, fare clic su FTP anonimo icona per andare alla pagina delle opzioni FTP anonime. Altrimenti verranno effettuati anche i normali utenti Unix.
  3. Fai clic su File e directory icona per visualizzare un modulo simile a quello in Figura 40-3 per impostare le varie opzioni di elenco.
  4. Per nascondere i file con determinati proprietari di gruppi, inserisci uno o più nomi di gruppi separati da spazi nel campo *Nascondi file di proprietà di gruppi*. Tieni presente che i file nascosti in questo modo possono ancora essere scaricati, rinominati o eliminati a meno che le autorizzazioni Unix o la configurazione del server non lo impediscano.
  5. Allo stesso modo, per nascondere i file con una determinata proprietà dell'utente, compila il campo Nascondi i file di proprietà degli utenti campo con un elenco di nomi utente Unix.
  6. Per nascondere i file che l'utente FTP anonimo non sarebbe in grado di leggere, modificare Nascondere i file a cui non è possibile accedere? campo su .
  7. Per fare in modo che ProFTPD converta i collegamenti simbolici negli elenchi alle autorizzazioni e alle dimensioni del file di destinazione, modificare il campo *Mostra collegamenti simbolici?* su . Normalmente vengono visualizzati sia il collegamento che il nome della destinazione e le autorizzazioni e la proprietà visualizzate sono quelle del collegamento. Tuttavia, anche con questa funzione abilitata, la destinazione del collegamento deve essere ancora all'interno della directory FTP anonima.
  8. Normalmente, gli elenchi di directory includono l'utente reale ei proprietari di gruppo dei file. Per modificare questa impostazione, imposta il campo *Gruppo falso negli elenchi di directory?* su Sì, come gruppo . Quindi dalla casella in basso seleziona ftp per forzare il proprietario del gruppo a essere sempre mostrato come ftp, o il terzo pulsante di opzione per farlo apparire come qualsiasi gruppo immesso nella casella di testo adiacente. L'opzione *Gruppo connesso* ha davvero senso solo per client non anonimi, poiché fa sembrare che i file appartengano al gruppo principale dell'utente connesso.
  9. Allo stesso modo, puoi modificare l'utente Unix proprietario dei file con Utente falso negli elenchi di directory? campo. Se si sceglie *Utente connesso*, i file appariranno di proprietà dell'utente attualmente connesso al server FTP.
  10. Per impostazione predefinita, ProFTPD mostrerà i permessi dei file Unix reali negli elenchi. Per forzare invece la visualizzazione dei falsi, seleziona la seconda opzione in Autorizzazioni false negli elenchi di directory campo e inserisci un numero ottale come 0644 del tipo utilizzato dal comando chmod. Ciò non ha alcun effetto sulle effettive autorizzazioni che si applicano se un client tenta di scaricare o caricare un file, ovviamente.
  11. Per nascondere i file punto come .login e .profile negli elenchi (come fa di solito il comando ls), impostare *Mostra file che iniziano con . nelle inserzioni?* campo su .
  12. Infine, premi Salva pulsante in fondo alla pagina per aggiornare il file di configurazione di ProFTPD.
  13. Torna alla pagina principale del modulo e fai clic su Applica modifiche pulsante per rendere attive le impostazioni.

As well as hiding certain files (as explained in steps 4 and 5), you can also prevent clients from reading or writing those files altogether. This can be done using the Make hidden files inaccessible? field, explained in the Restricting access to FTP commands section later in the chapter.

Message and readme files

ProFTPD can be configured to display messages to clients when they login or enter certain directories. This can be useful for notifying users of possible mirror sites, the locations of various common files on the server, and the details of the contents of a directory.

To set the messages that are displayed to clients, follow these steps :

  1. If you want the messages to be used by all virtual servers, click on the Authentication icon on the module's main page. To set messages for a specific virtual server, click on its icon and then on Authentication on the server options page. Either way, the same form will be displayed. It is also possible to set most of the message file options below for only anonymous clients by clicking on the Anonymous FTP icon on the virtual server page and then on Authentication . Naturally, you cannot set the pre-login message because the server does not know if a client is anonymous or not at that stage.
  2. In the Pre-login message file field, enter the full path to a file whose contents should be sent to clients as soon as they connect. If you don't want any message file to be used at all, select None invece.
  3. In the Post-login message file field, enter the path to a text file whose contents will be sent to clients after they have been properly authenticated. If the client is limited to a directory (because it logged in anonymously or has a home directory restriction in force), the file must be within and relative to that directory. If the filename is relative (like welcome.txt ), it will be searched for in the directory that the client is initially placed in.
  4. To set a message sent to clients when they request to disconnect, fill in the Logout message file campo. Again, this must be relative to and under any directory that the client is restricted to.
  5. If you have a restriction on the maximum number of simultaneous logins in force, you can set the message sent to clients blocked by it by filling in the Too many connections message file campo. You should enter a full path, which can be anywhere on your system. See the Limiting concurrent logins section for more details.# Hit the Save button at the bottom of the page to go back to the global, virtual server or anonymous FTP options page.
  6. Click on the Files and Directories icon on the same page.
  7. In the Directory README filename field, enter a relative name like readme.txt that will be searched for in each directory that a client enters. If this is the first time the client has entered the directory in this session (or if the file has changed since the last time), its contents will be sent to the FTP client.
  8. To have the server send a message to clients suggesting that a particular file should be read, fill in the *Notify user of readme files matching* field. If files in the directory matching the specified regular expression (like README.* ) exist, a short message containing their names and modification times will be sent.
  9. Fai clic su Salva button on this form, then return to the module's main page. Finally click the Apply Changes button to activate the new message file settings.

The files sent to the client by the options covered above can contain certain special cookies that start with a %, which are replaced by ProFTPD with text determined at the time of sending. According to the ProFTPD documentation, the currently supported cookies are :

Not all may make sense in all situations though - for example, %U will not be set in the pre-login message file.

Setting per-directory options

The ProFTPD module allows you to set options that apply only to a specific directory, rather than globally or to an entire virtual server. This allows you to do things like hide a directory from clients, allow uploads by anonymous clients in just one location, or set the user and group ownership of files added to a directory.

To create a new set of per-directory options, follow these steps:

  1. If you want the options to apply to all virtual servers, enter the directory into the Directory path field in the *Add per-directory options for* form on the module's main page and hit the Create pulsante. Alternately, you can limit them to a particular virtual server by clicking on its icon and using the same form on the virtual server options page. Or you can define options that only apply to anonymous clients by hitting the Anonymous FTP icon for a virtual server and using its directory options creation form. In all cases, the directory should be entered as an absolute path like /usr/local . It is also possible to specify a path relative to the connecting user's home directory, like ~/public_html . You can even enter a path in a particular user's home directory, like ~jcameron/www . Normally, the options will apply to the directory and all its contents and subdirectories. To have them apply to only the contents and not the directory itself, add /* to the end of the path that you enter, like /usr/local/* .
  2. After hitting Create , you will be taken to a page of option category icons for the directory as shown in Figure 40-4. As usual, clicking on these icons will take you to forms for configuring various settings that apply only to requests for and listings of that directory.
  3. To totally deny access to clients, click on Access Control and change the Access control policy field to Deny all clients, then click Save .
  4. Normally, files uploaded by clients will end up owned by the Unix user that the client logged in as. To change this, click on the User and Group icon and enter a username for the *Owner of uploaded files* field. Uploaded files' group will be the primary group of the specified user, unless you fill in the Group owner of uploaded files field as well. Again, click Save after making any changes to return to the per-directory options page.
  5. To limit only the uploading or downloading of files in this directory, you will need to create a set of per-command options under it. The Restricting access to FTP commands section explains how.
  6. To activate your changes for this directory, return to the module's main page and hit the Apply Changes pulsante.


The per-directory options page

You can also remove a directory options object from the ProFTPD configuration entirely by clicking on Configure Directory and then hitting the Delete directory config pulsante. All settings and per-command options for the directory will be immediately and permanently deleted from the FTP server's configuration.

If you define options for both a directory and one of its children (such as /usr/local and /usr/local/bin ), ProFTPD will always give precedence to the most specific directory when deciding which options to apply to a particular client request. This means that a setting made for /usr/local will apply to a download of /usr/local/bin/foo, unless it is overridden by a setting for /usr/local/bin.

Restricting access to FTP commands

When a client wants to download or upload a file, list a directory or perform any other operation it sends a command to the server. ProFTPD can be configured to restrict which commands a client can use for a particular virtual server or directory, or when logged in anonymously. However, before you can do this you need to have a basic understanding of which FTP commands exist and what they do. The table below lists the ones that are relevant for access control purposes :

ProFTPD allows you to define options that only apply to particular client commands or groups of commands. Typically, this is used to deny access to certain operations, such as uploading by anonymous FTP users. It is also possible to allow or deny only certain Unix users, or only clients connecting from certain addresses.

To create a new set of per-command options, follow these steps:

  1. First decide if the options should apply to commands only in a particular directory, only to clients of a virtual server, only to anonymous clients or to all users of your FTP server. On the per-directory, virtual server, anonymous FTP and main pages is a form titled Add per-command options for . In the FTP commands field, enter one or more commands from the list above, separated by spaces. When you hit the Create button, your browser will be taken to the page shown in Figure 40-5.
  2. Click on the Access Control icon to bring up a form for restricting who can use these commands.
  3. To completely deny access to everyone, change the *Access control policy* field to Deny all clients . Conversely, to allow access select Allow all clients invece. This is most useful if you are editing options for commands within a directory and there is a set of options for the same commands at a higher level (such as for the virtual server or anonymous FTP) that denies access. For example, typically anonymous clients cannot use the WRITE commands, but you may want to allow it for a particular directory.
  4. To only allow certain Unix users or members of certain group access to the commands, fill in the Only allow users and Only allow group campi. Multiple user or group names must be entered separated by spaces.
  5. Similarly, to deny certain users and groups while allowing everyone else access to the FTP commands, fill in the *Deny users* and Deny groups campi.
  6. The Restrict access table can be used to block clients from certain IP addresses by entering a series of rules. The three radio buttons at the top control the order in which entries in the table are evaluated. If Deny then allow is selected, any client that matches a Deny row or which does not match an Allow row will be blocked. Conversely, if Allow then deny is chosen only clients that match a Deny row and do not match an Allow will be prevented from using the commands. This mode is also the default. The table will always have one empty row for adding a new rule, and because this is a new set of per-commands options that is all it will contain. In the empty row select either Allow or Deny from the Action menù. Then from the Condition menu choose one of the following to determine which clients match and thus are allowed or denied. *All *All clients match, no matter where they are from. *None *No clients match the rule. *IP address *Only clients from the IP address entered in the adjacent text field match. *Network *Only clients from the IP network entered match. The network address must be a partial IP with a trailing dot, like 192.168.1. . *Hostname *Only clients whose IP address reverse-resolves to the entered name match. You can specify an entire domain by putting a dot at the front, like .example.com . If you want to add more than one rule, you will need to re-enter this page after saving so that a new blank row appears. To delete a rule, select the blank option from the Action menù.
  7. When you are done choosing who can use the FTP commands, hit the Save pulsante. Then return to the module's main page and click Apply Changes to make the restrictions active.


The per-command options page

Configuring logging

By default, ProFTPD logs all transfers to the file /var/log/xferlog in the standard FTP logging format (unless a different path has been selected at compile time). However, you can configure the server to log transfers to and from each virtual server differently, and anonymous FTP traffic as well. This is most useful in a virtual hosting environment, in which your system hosts FTP sites for many different customers.

It is also possible to define additional log files that use different formats, and optionally include only a subset of FTP commands. This can be useful if you only care about uploads, and don't want your log files clogged up with useless information.

To configure where and how logs are written globally or for an individual virtual server, the steps to follow are :

  1. If you want to change the location of the global log file that is used for all transfers (unless overridden by a virtual server), click on the Logging icon on the main page. Alternately, if you want to configure a specific virtual server to use a different log file, click on its icon and then on Logging on the virtual server options page. To change the logging settings for anonymous clients only, click on a virtual server icon, then on Anonymous FTP and finally on the Logging icon on the anonymous FTP options page.
  2. On the resulting logging options form, the *FTP transfers logfile* field controls where logs are written to. To specify a file, select the last option and enter a full path like /var/log/example.com.xfers into the adjacent text field. To turn off logging altogether, select Logging disabled . To use the global default, select the Default option (if you are editing the global logging settings, ProFTPD will use the compiled-in default log file /var/log/xferlog).
  3. The Custom logfiles table can be used to define additional logs for specific commands and with arbitrary formats. As usual, it will always have one empty row for adding a new custom log file. To add one, fill in the fields under these headings :*Logfile *The full path to the log file, such as /home/example.com/ftplog . For FTP commands *If *All is selected, all FTP commands will be logged. However, if you choose the second option only those command classes in the adjacent text box will be included. Recognized classes are NONE (no commands), ALL (all commands), INFO (information requests), DIRS (directory navigation), READ (file download), WRITE (file upload and directory creation), SITE (non-standard commands like CHMOD) and MISC (other miscellaneous commands). Multiple classes must be separated by commas, like READ,WRITE . You cannot use the names documented in the Restricting access to FTP commands sezione. *Log format If *Default is selected, the standard FTP log format will be used. But if the second option is chosen, you must enter a recognized log format name into the text box. The next paragraph explains how to set up named log formats. Because only one empty row appears in the table, you can only add one custom log at a time. To add more, click on the Logging icon again after saving and fill in the new blank row. To delete a custom log, just clear out its field in the Logfile column.
  4. Premi Salva button to save the new settings, and then *Apply Changes* on the main page to activate them.

If you want to use your own custom formats for log files, they must first be defined globally. The steps to create a format are :

  1. On the module's main page, click on the Logging icon to bring up the global log file options page.
  2. The Custom log formats table is for defining your own formats. In the first blank field under Format name , enter a short name for your new format such as filesonly . In the field next to it under Format string , enter text containing the log codes recognized by ProFTPD, like Downloaded %f at %t . The special codes in the string starting with % are replaced by the server with information about the command, as explained in the table below. As usual, you can add more than one custom format by re-entering the page after saving so that a new blank row appears. A format can be deleted by just clearing out its Format name campo.
  3. Fai clic su Salva button to return to the main page, and then click Apply Changes . The new format can now be used in custom log files.

Limiting concurrent logins

If your system is configured to allow anonymous FTP logins and you expect to receive a lot of traffic, it makes sense to limit the number of connections that can be open to the FTP server at any one time. This puts a ceiling on the network and CPU load that FTP transfers can generate, which is important if the system is being used for some other purpose (such as running a web server).

This limit can be set globally, on a per-virtual server basis or just for anonymous clients. This means that you can set a limit that applies to all servers, and then increase or decrease it for a particular virtual host. Or you can set a lower limit for anonymous clients versus those that have valid logins.

ProFTPD can also be configured to limit the number of concurrent connections that a single client host can have. This is useful if you want to stop people downloading more than one file at a time from your server, and thus taking more than their fair share of bandwidth.

To set a connection limit for your server, follow these steps:

  1. If you want to set a global limit, click on the *Networking Options* icon on the module's main page. To set a limit for a single virtual server, click on its icon and then on *Networking Options*. To define a limit that applies only to anonymous clients, click on the icon for a virtual server, then on *Anonymous FTP* and finally on the Networking Options icon on the anonymous FTP options page.
  2. On the form that appears, find the Maximum concurrent logins campo. To set a limit, select the third radio button and enter a number in the text box next to it. Alternately, you can select Unlimited to turn off any restriction that applies to this virtual server that has been set globally.
  3. To define an error message sent to clients that try to connect when the limit has been reached, enter it into the *Login error message* box in the Maximum concurrent logins campo. If the message contains the special code %m it will be replaced with the maximum allowed number.
  4. To set the per-client host limit, fill in the *Maximum concurrent logins per host* field in the same way. It also has a *Login error message* box that can be used to set a message sent to FTP clients that exceed the limit.
  5. If you are editing the global networking options, you can also set a limit on the total number of ProFTPD sub-processes that can be active at any one time. This is useful for protecting your system from denial-of-service using hundreds of useless connections. Just select the second option for the *Maximum concurrent sessions* field and enter a number into its adjacent text box. If Default is selected, no limit will be enforced. If you are running the server from a super-server like inetd or xinetd, this limit will have no effect. Fortunately, both those servers have configuration options that can be used to achieve the same result.
  6. When you are done editing client restrictions, hit the *Save *button at the bottom of the form to update the ProFTPD configuration, and then the Apply Changes button back on the main page.

Restricting clients by IP address

By default, ProFTPD will allow clients to connect from any IP address. However, like everything else this is configurable so that you can restrict access to systems on your own network, either globally or for particular virtual servers. This comes in handy if you are setting up an FTP server that is for internal use only, even though the system it is running on is accessible from the Internet.

To restrict clients by address, follow these steps:

  1. To create a global restriction that will apply to all virtual servers, enter LOGIN into the FTP commands field of the Add per-command options for form on the module's main page, then click Create . If you only want to limit who can connect to a particular virtual server, click on its icon before entering LOGIN into the same form on the virtual server options page.
  2. Regardless of what level the restriction is being defined at, you will be taken to the per-command options page shown above. Click on the Access Control icon to go to the aptly-named access control form.
  3. The Restrict access table can be used to block clients from certain IP addresses by entering a series of rules. The three radio buttons at the top control the order in which entries in the table are evaluated. If Deny then allow is selected, any client that matches a Deny row or which does not match an Allow row will be blocked. Conversely, if Allow then deny is chosen only clients that match a Deny row and do not match an Allow will be prevented from logging in. This mode is also the default. The table will always have one empty row for adding a new rule, and because this is a new set of per-commands options that is all it will initially contain. In the empty row select either Allow or Deny from the Action menù. Then from the Condition menu choose one of the following to determine which clients match and thus are allowed or denied.
  • All
    All clients match, no matter where they are from. *None *No clients match the rule.
    IP address
    Only clients from the IP address entered in the adjacent text field match.
    Network
    Only clients from the IP network entered match. The network address must be a partial IP with a trailing dot, like 192.168.1. .
    Hostname
    Only clients whose IP address reverse-resolves to the entered name match. You can specify an entire domain by putting a dot at the front, like .example.com . If you want to add more than one rule, you will need to re-enter this page after saving so that a new blank row appears. To delete a rule, select the blank option from the Action menù.
  1. When you are finished entering client restrictions, hit the Save pulsante in fondo al modulo. Then return to the main page and click Save and Apply to activate them.

Commonly, you will want to give only clients on a single network access. To do this, select the Deny then allow option, choose Allow from the Action menu , Network from the Condition menu and enter the network address with a trailing dot (like 10.254.1.) into the condition text box.

Limiting uploads

If clients are allowed to upload files to your server, they will be able to choose any name that they wish for uploaded files. Sometimes this is not desirable though - you may want to allow the storing of only image files whose names end with .gif or .jpg, or prevent the uploading of Windows executables with filenames ending in .exe or .com. Fortunately, ProFTPD has configuration options that allow you to set this up.

There are also several other settings that apply to uploads, which control whether clients are allowed to overwrite files and if partially transferred files are visible. All can be set globally, for a single virtual server or for anonymous clients only. The steps to set these options are :

  1. If you want to the settings to be global, click on the *Files and Directories* icon on the module's main page. To have them apply to just a single virtual server, click on its icon and then on Files and Directories . Or to effect just clients that login anonymously, click on a virtual server icon, then on Anonymous FTP and finally on Files and Directories icon on the virtual server options page. No matter which configuration object you chose, the files and directories form that appears will be almost identical.
  2. To hide files that are in the process of being uploaded, change the Hide files during upload? campo su . This tells ProFTPD to use a temporary file whose name starts with .in. for transferred data, which is only renamed to the real filename when the upload is complete. This prevents incomplete partial uploads, and stops files being downloaded or accessed while they are still being sent.
  3. To have ProFTPD delete uploaded files that are not fully transferred, select Yes for the Delete aborted uploads? campo. Again, this prevents corrupt partially uploaded files from being created on your system.
  4. To allow users to only create files whose relative names match a certain pattern, fill in the *Allowed uploaded filename regex* field with a Perl regular expression. For example, to only allow GIF files you might enter ^.*\.gif$ . Because clients are normally allowed to rename files, this option alone is not enough to stop the creation of invalid filenames. You will also need to block access to the RNFR command, as explained in the Restricting access to FTP commands sezione.
  5. Alternately, you can block the use of certain filenames by filling in the Denied uploaded filename regex field with a regular expression like ^.*\.exe$ . If both this and the previous field are set, only files that match the allow expression but not this deny expression will be permitted. Another common use of this option is blocking the upload of .ftpaccess or .htaccess files, which set per-directory ProFTPD and Apache options.
  6. Premi Salva pulsante in fondo alla pagina.
  7. If you want to stop clients overwriting files with new uploads, click on the Access Control icon and change the *Allow overwriting of files?* field to No . This can be useful on an server that allows anonymous users to upload to a particular directory, perhaps for incoming files of some kind. Don't forget to click Save if you make this change.
  8. Return to the module's main page and hit the Apply Changes button to activate your new filename restrictions.

Manually editing directives

If you prefer to manually edit your ProFTPD configuration file in some cases or just want to see which directives an action in Webmin has set, you can do so using this module. Except for the default server, every object's options page (virtual server, per-directory and per-command) has an icon labeled Edit Directives . When clicked on it will take you to a form containing a large text box showing the lines from the configuration file in the section related to the object. You can edit them to your heart's content, then click the Save button to update the actual file. Be aware though that no validation of your input is done. Also, you will need to use the Apply Changes button on the module's main page to activate any changes, as usual.

To view and edit the entire ProFTPD configuration, use the *Edit Config Files* icon on the module's main page. This will bring up a similar form, but showing and allowing the editing of a complete configuration file at once. Because ProFTPD can read multiple configuration files (though the use of Include directives), at the top of the form is a button labeled Edit Directives in File with a menu of filenames next to it. To switch the view to a different file, just select the one you want and hit the button. Normally though only a single proftpd.conf file will be used.


Webmin
  1. Server WU-FTPD

  2. Come installare ProFTPD su CentOS 7

  3. Come installare ProFTPD su Ubuntu 14.04

  4. Come installare ProFTPD su Ubuntu 15.04

  5. Come installare un server FTP su CentOS 7

Come installare un server FTP?

Come installare il server FTP su Ubuntu?

Come configurare un server FTP con ProFTPD in Ubuntu 18.04

Come installare il server FTP con ProFTPD su RockyLinux 8

Come installare FTP su Ubuntu 18.04?

Installa FTP su Windows Server 2012 (R2)