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

Server WU-FTPD


In questo capitolo il Server WU-FTPD per il protocollo FTP viene spiegato e vengono elencati i passaggi da seguire per configurarlo per molte attività comuni.

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 WU-FTPD

WU-FTPD (WU sta per Washington University) è probabilmente il server FTP Unix più popolare su Internet ed è incluso per impostazione predefinita con la maggior parte dei sistemi operativi Unix e Linux. Il gran numero di opzioni configurabili lo rende superiore al server FTP "classico" o BSD che è ancora utilizzato da alcune versioni di Unix, ma secondo me non è implementato in modo flessibile o pulito come ProFTPD, trattato nel capitolo 40. Quel capitolo ha anche una breve introduzione al protocollo FTP, che dovresti leggere prima di andare oltre se non hai familiarità con concetti come client e server FTP.

Nella sua normale configurazione predefinita, WU-FTPD consentirà a qualsiasi utente Unix (tranne gli utenti di sistema) di accedere con i propri nomi utente e password standard e caricare, scaricare e manipolare file sul sistema server con le stesse autorizzazioni che avrebbero se connesso tramite telnet o SSH. Può anche essere configurato per supportare accessi anonimi, in modo che chiunque possa connettersi senza bisogno di un account Unix valido, sebbene i client anonimi siano generalmente limitati a una determinata directory e non possano caricare file.

Il file di configurazione principale di WU-FTPD si chiama /etc/ftpaccess, ma utilizza anche molti altri file come /etc/ftpusers e /etc/ftphosts. Il file ftpaccess contiene una serie di direttive, una per riga, ognuna delle quali ha un nome e diversi valori. Ogni direttiva imposta una singola opzione come il percorso di un file di messaggio o un alias di directory.

Come ProFTPD, WU-FTPD può essere eseguito sia come processo demone autonomo permanente che da un super server come inetd o xinetd. In genere viene utilizzata quest'ultima opzione, poiché elimina la necessità di un processo server aggiuntivo in esecuzione in ogni momento in attesa di una connessione FTP. Per quanto riguarda i client e il file di configurazione, non c'è differenza tra le due modalità a parte le prestazioni.

Il modulo server WU-FTPD

Per configurare il server FTP da Webmin, fare clic sull'icona *WU-FTPD Server* nella categoria Server. Se è correttamente installato e funzionante, verrà visualizzata la pagina principale del modulo come mostrato nella Figura 41-1. Ciascuna delle icone ti porterà a un modulo per l'impostazione di una classe di opzioni configurabili, come quelle relative alla registrazione o ai messaggi e ai banner.

Non fatto

 Figure 41-1 “The WU-FTPD Server module” 

Se il modulo non riesce a trovare l'eseguibile del server WU-FTPD, un messaggio di errore come *Il server FTP /usr/sbin/in.ftpd non è stato trovato sul tuo sistema* o *Il file di configurazione del server FTP /etc/ftpaccess non esiste * sarà mostrato. Questo di solito significa che il programma non è installato:controlla il tuo CD di distribuzione Linux o il sito Web per il pacchetto wu-ftpd e installalo utilizzando il modulo Pacchetti software, trattato nel capitolo 12. Può anche significare che il modulo sta cercando nella posizione sbagliata per il programma del server o il file di configurazione. Se si è certi che WU-FTPD sia installato, vedere la sezione "Configurazione del modulo server WU-FTPD" più avanti in questo capitolo per informazioni sulla regolazione dei percorsi in cui Webmin li cerca.

A volte, anche se WU-FTPD è installato, sarà disabilitato per impostazione predefinita. Se si esegue ftp localhost al prompt dei comandi e viene visualizzato il messaggio di errore Connessione rifiutata, nessun server FTP è in esecuzione. Ciò può essere dovuto al fatto che nessun servizio inetd o xinetd è stato ancora creato per FTP, o perché uno esiste ma è disabilitato. Segui le istruzioni di seguito per spiegare come impostare o attivare un servizio super server per ProFTPD.

Se WU-FTPD ha davvero bisogno di essere installato, devi prima rimuovere qualsiasi altro server FTP (come ProFTPD o PureFTP) attualmente installato sul tuo sistema. Assicurati di uccidere anche tutti i suoi processi, in modo che nulla rimanga in ascolto sulla porta FTP. È possibile verificare che l'altro server sia stato completamente spento eseguendo ftp localhost al prompt dei comandi:dovrebbe essere visualizzato il messaggio di errore Connessione rifiutata, che indica che nulla è in ascolto sulla porta 21.

Dopo aver installato WU-FTPD, sarà necessario configurare inetd o xinetd per l'ascolto sulla porta FTP ed eseguire il programma del server. Prima di poterlo fare, scopri dove il programma è stato effettivamente installato sul tuo sistema:in genere sarà in /usr/sbin/in.ftpd, ma potrebbe variare a seconda del tuo sistema operativo.

Se il tuo sistema utilizza il super-server 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 wu-ftpd. 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 immettere il percorso dell'eseguibile WU-FTPD con gli argomenti –l –a (come /usr/sbin/in.ftpd –l -a ) nella casella di testo adiacente.
  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 WU-FTPD utilizzando il modulo Servizi e protocolli Internet, segui questi passaggi :

  1. Vai alla categoria Networking di Webmin e clicca sull'icona *Internet Services and Protocols*. Se non esiste, probabilmente il tuo sistema sta usando xinetd.
  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 immettere il percorso completo dell'eseguibile del server WU-FTPD nel campo accanto, ad esempio /usr/sbin/in.ftpd . Negli Args campo, immettere in.ftpd –l -a .
  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 WU-FTPD è 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. In caso contrario, controlla i tuoi file di registro (usando il modulo Registri di sistema, trattato nel capitolo 13) per eventuali messaggi da inetd o xinetd che potrebbero spiegare cosa è andato storto.

Limitare chi può accedere

Nella sua configurazione normale, WU-FTPD consentirà a qualsiasi utente Unix di accedere con l'eccezione degli account di sistema come root, bin e daemon. L'utente root viene quasi sempre negato per impostazione predefinita perché il protocollo FTP non crittografa le password quando vengono inviate sulla rete, il che significa che un accesso remoto come root potrebbe esporre la sua password agli aggressori. Per modificare gli utenti e i gruppi che possono accedere al tuo sistema, segui questi passaggi:

  1. Nella pagina principale del modulo, fai clic su Utenti e classi icona per visualizzare il modulo mostrato nella Figura 41-2.
  2. Aggiungi agli Utenti Unix da negare campo tutti gli account che si desidera impedire di utilizzare il server FTP o rimuovere quelli che si desidera consentire. Questo aggiornerà il file /etc/ftpaccess, che viene utilizzato da altri server FTP come ProFTPD nel caso in cui un giorno decidessi di cambiare.
  3. Per negare agli utenti i cui UID rientrano in determinati intervalli, compila gli Utenti Unix e gli UID da rifiutare campo. Puoi inserire un intervallo UID come %3000-4000 , che bloccherebbe tutti gli utenti con UID compresi tra 3000 e 4000. Oppure puoi inserire intervalli come %-100 o %5000- che negherà gli utenti con UID rispettivamente inferiori a 100 o superiori a 5000. È possibile inserire più intervalli, separati da spazi. I normali nomi utente possono essere utilizzati anche in questo campo, sebbene ciò abbia lo stesso effetto di inserirli negli Utenti Unix da negare campo.
  4. Per negare agli utenti i cui ID gruppo principale rientrano in determinati intervalli, compila i Gruppi Unix e GID da rifiutare campo. Anche in questo caso, puoi inserire intervalli di ID come %100-200 o %-10 , oltre a nomi di gruppi come utenti . Conta solo l'appartenenza al gruppo principale:se un utente è un membro secondario di uno dei gruppi elencati, non verrà bloccato.
  5. Per escludere alcuni utenti o gruppi dagli elenchi di rifiuto definiti nei due passaggi precedenti, compilare gli Utenti Unix e UID da non rifiutare e Gruppi Unix e GID da non negare campi. Il primo campo accetterà intervalli di UID o nomi utente e il secondo intervalli di ID di gruppo o nomi di gruppo. Questi campi sono utili se desideri consentire solo un paio di utenti mentre blocchi tutti gli altri con un intervallo UID che copre tutti gli account.
  6. Premi Salva pulsante in fondo alla pagina per salvare e attivare le nuove restrizioni utente.

Non fatto

Figure 41-2 “The users and classes page” 

WU-FTPD normalmente impedirà anche agli utenti la cui shell non è elencata nel file /etc/shells di accedere. Ciò viene normalmente fatto per consentire la creazione di account che possono accedere a un server POP3, ma non possono connettersi tramite telnet, SSH o FTP. Sfortunatamente, non esiste un'opzione di configurazione WU-FTPD che possa essere modificata per disattivare questo controllo della shell. È codificato nel programma o imposto dal servizio ftp PAM che viene realmente utilizzato per autenticare gli utenti.

Se WU-FTPD sul tuo sistema usa PAM (come fa sulla maggior parte delle distribuzioni Linux), segui questi passaggi per disattivare il controllo /etc/shells:

  1. Vai al modulo Autenticazione PAM, che si trova nella categoria Sistema nel menu principale di Webmin.
  2. Fare clic su ftp o wu-ftpd servizio nella pagina principale.
  3. Nel modulo di modifica visualizzato, fai clic su pam_shells.so nel modulo PAM nella colonna Passaggi di autenticazione sezione.
  4. Dal Livello di errore dal menu seleziona Facoltativo , in modo che l'esito positivo o negativo del controllo del file shell venga ignorato ai fini dell'autenticazione.
  5. Fai clic su Salva pulsante. Gli utenti con una shell non valida non potranno accedere al tuo server FTP.

Su altri sistemi operativi i passaggi precedenti sono inutili, poiché il modulo di autenticazione PAM è disponibile solo su Linux.

Configurazione FTP anonimo

La configurazione di WU-FTPD per accettare accessi anonimi è leggermente più complessa di quanto ci si aspetterebbe, a causa dell'uso del comando ls per generare elenchi di directory. In modo che questo comando (e altri utilizzati dal server) non possano sfuggire alla directory a cui sono limitati i client anonimi, il server utilizza la chiamata di sistema Unix chroot per limitare se stesso e tutti i programmi che esegue a quella directory. Ciò significa che la directory principale deve contenere tutti i programmi, i file e le librerie condivise che WU-FTPD e il comando ls devono eseguire.

Per impostazione predefinita, la home directory dell'utente speciale Unix ftp viene utilizzata come root FTP anonimo, ma è possibile assegnare root differenti a classi client differenti. Tuttavia, qualunque directory venga scelta deve contenere una sottodirectory bin con i comandi ls, gzip, tar, recompress, cpio e zcat. Deve anche avere una sottodirectory lib contenente tutte le librerie condivise necessarie per quei comandi, una sottodirectory etc con passwd e file di gruppo e una directory pub in cui sono archiviati i file scaricabili.

Come puoi immaginare, copiare tutti questi file in posizione e assicurarsi che funzionino è piuttosto complicato. Fortunatamente, molte distribuzioni Linux che includono un pacchetto wu-ftpd hanno anche un pacchetto chiamato anonftp che inserisce tutti i file necessari nella directory home dell'utente ftp. Nella maggior parte dei casi, tutto ciò che devi fare è installare questo pacchetto e WU-FTPD consentirà ai client di accedere in modo anonimo.

Indipendentemente dai permessi sulla directory principale, WU-FTPD impedirà sempre ai client anonimi di caricare, rinominare o eliminare file. Tutto ciò che potranno fare è scaricare i file che metti nella sottodirectory pub per la distribuzione pubblica.

Gli accessi anonimi possono essere ulteriormente configurati seguendo questi passaggi:

  1. Fare clic su FTP anonimo icona nella pagina principale del modulo.
  2. Le directory radice FTP anonime La tabella consente di specificare diverse radici da utilizzare per diverse classi di client. Qualsiasi directory esistente (a parte l'impostazione predefinita di ~ftp) è elencata nella tabella per la modifica e ci sarà sempre una riga vuota per aggiungerne una nuova. Non appena una voce viene aggiunta, sostituirà quella predefinita, quindi assicurati di aggiungerla esplicitamente se vuoi che continui a funzionare. Se desideri aggiungere più di una directory, dovrai salvare e riaprire questa pagina in modo che appaia una nuova riga vuota. Ogni riga ha due campi, ovvero:Directory In questo campo devi inserire il percorso completo di una directory FTP anonima valida (una che contenga etc, le sottodirectory bin, lib e pub e tutti i programmi necessari). Per la lezione Da questo menu è necessario scegliere una classe client per la quale deve essere utilizzata la directory, supponendo che i client in quella classe accedano in modo anonimo. Se Qualcuno è selezionato verrà utilizzato per i client non in nessun'altra classe in questa tabella. Vedere la sezione "Gestione delle classi utente" per i dettagli su come definire le proprie classi.
  3. Quando un utente accede al tuo server FTP in modo anonimo, deve comunque fornire una password anche se non viene utilizzata per l'autenticazione. In genere questa password è l'indirizzo e-mail dell'utente, che può essere utilizzato per avere un'idea approssimativa della provenienza dei client di dominio. Tuttavia, per motivi di privacy, molti client e browser FTP moderni non inviano più un vero indirizzo e-mail, ma accedono con uno falso come [email protected]. Puoi configurare WU-FTPD per controllare il formato delle password di accesso anonime per assicurarti che assomiglino a indirizzi e-mail utilizzando il Controllo password FTP anonimo campo in questa pagina. Se Predefinito è selezionato, non verrà eseguito alcun controllo. Tuttavia, se viene scelta la seconda opzione, il livello di controllo dipende dalla scelta che fai dal suo menu:Consenti qualsiasi cosa È consentita qualsiasi password, anche vuota (questa è la stessa della modalità predefinita). Deve contenere @ La password deve contenere il simbolo @. Deve essere un indirizzo email RFC882 La password deve avere l'aspetto di un indirizzo email valido, con lettere e numeri prima e dopo una @. Il secondo menu determina se il server FTP avverte solo i client che violano il controllo (se Solo avviso viene scelto) o li blocca del tutto (se Nega accesso è selezionato).
  4. Per bloccare del tutto determinate password anonime (anche se valide), compila le Password FTP anonime da negare campo con un elenco di indirizzi email completi o parziali. Questo può essere utile per bloccare i client FTP che sono configurati per impostazione predefinita per utilizzare un indirizzo falso. Tuttavia, sconsiglio di utilizzare questa funzione in quanto bloccherà molte persone, in particolare quelle che utilizzano i browser web.
  5. Premi Salva pulsante in fondo alla pagina per attivare le nuove impostazioni FTP anonime.

Gestione delle classi utente

Il server FTP classifica i client in classi in base ai loro indirizzi di origine e ai tipi di accesso. La classificazione può essere utilizzata in diversi punti della configurazione WU-FTPD per definire impostazioni che si applicano solo a determinati client. Può anche essere utilizzato per bloccare gli accessi non anonimi (o anche tutti gli accessi) dall'esterno della rete. Questo può essere utile se si desidera consentire solo a determinati host attendibili di caricare dati sul server, ma consentire a chiunque su Internet di accedere in modo anonimo per il download.

Ogni classe ha un nome, un elenco di tipi di accesso e un elenco di indirizzi client, nomi host o reti. Solo i client che corrispondono a entrambi i tipi di accesso e gli indirizzi sono considerati nella classe e se più di una classe corrisponde, viene utilizzata la prima. I client che non rientrano in nessuna classe non possono utilizzare il server FTP.

I seguenti tre tipi di login sono riconosciuti da WU-FTPD:

Unix
Utenti Unix normali che possono accedere tramite telnet o SSH e accedere a tutti i file sul sistema con i loro permessi regolari.
Ospite
Utenti Unix che sono stati designati come ospiti, e questo è limitato a una directory (di solito la loro home) allo stesso modo degli utenti anonimi. Per maggiori dettagli, consulta la sezione "Configurazione degli utenti ospiti".
Anonimo
Utenti che accedono in modo anonimo e quindi sono limitati a una determinata directory.

Per definire e modificare le classi utilizzando il modulo, segui queste istruzioni:

  1. Fai clic su Utenti e classi icona nell'angolo in alto a sinistra della pagina principale del modulo. Il modulo mostrato nella Figura 41-2 apparirà nel tuo browser.
  2. Nella parte superiore della pagina c'è la tabella con l'etichetta Classi utente . Ogni riga definisce una classe e ce ne sarà sempre almeno una già elencata (in genere la classe all che corrisponde a tutti i client). La tabella ha sempre una singola riga vuota nella parte inferiore per aggiungere una nuova classe:se vuoi aggiungerne più di una, dovrai crearle una alla volta. Puoi modificare le classi esistenti modificandone i campi o eliminare una classe cancellando il campo del nome. Assicurati di non eliminarli tutti, in quanto ciò impedirà a tutti gli utenti di accedere. I campi per ogni classe sono:Nome classe Un nome breve per questa classe che dovrebbe essere composto solo da lettere e numeri, come homenet o fidato . Più di una riga può avere lo stesso nome di classe e un client che corrisponde al tipo di utente e agli indirizzi in qualsiasi riga sarà considerato un membro della classe. *Tipi di utente *I tipi di login che questa classe corrisponde, come spiegato sopra. Devi selezionare almeno una delle tre caselle di controllo. Indirizzi corrispondenti Questo campo è dove puoi inserire gli indirizzi client che corrispondono alla classe. Puoi inserire singoli IP (come 192.168.1.1 ), nomi host (come www.foo.com ), IP con caratteri jolly e nomi host (come 10.254.1.* o *.example.com ) o anche percorsi di file contenenti più indirizzi e nomi host di questo tipo. Più voci devono essere separate da spazi. Voci negate come !*.foo.com sono anche consentiti, che corrisponderebbero a tutti i client i cui nomi host sono al di fuori di foo.com dominio. Fai attenzione quando usi i nomi host, poiché WU-FTPD deve cercare i nomi host dei client dai loro indirizzi IP, il cui risultato può essere falsificato da un utente malintenzionato.
  3. Quando hai finito di definire le classi, clicca su Salva pulsante in fondo al modulo. Ora puoi usarli in altre pagine del modulo.

Negare l'accesso ai file

A volte è utile limitare i tipi di file che gli utenti possono scaricare, soprattutto per i client anonimi non attendibili. Puoi bloccare l'accesso a un nome di file in qualsiasi directory (come secret.txt ), un percorso assoluto (come /etc/passwd ) o anche una directory e tutto il suo contenuto (come /var/log ). I caratteri jolly della shell * e ? può essere utilizzato anche nei nomi di file e percorsi, il che fornisce ulteriore flessibilità. Questo può essere utile se vuoi proteggere file contenenti informazioni segrete o limitare i client a scaricare da una determinata directory (come /home ). Tuttavia, non è possibile impedire l'elenco delle directory utilizzando questa funzione.

Per impostare le restrizioni per il download dei nomi di file, i passaggi da seguire sono:

  1. Nella pagina principale, fai clic su Limiti e controllo accessi icona per visualizzare il modulo mostrato nella Figura 41-4.
  2. Ogni riga in Nega accesso ai file table definisce una singola restrizione del nome file. Come con altre tabelle in questo modulo, nella parte inferiore della tabella c'è una singola riga vuota per aggiungere un nuovo nome file o percorso – e se questa è la prima volta che usi questa funzione, una singola riga è tutto ciò che la tabella conterrà. In caso contrario, verranno elencate le restrizioni esistenti, consentendoti di modificarle o eliminarle. I campi in ogni riga e il loro significato sono:File da negare Un elenco di nomi di file o modelli relativi o assoluti a cui negare l'accesso, separati da spazi. I caratteri jolly * e ? può essere utilizzato per entrambi, permettendoti di inserire file come secret.* o /home/*/public_html . Relativo al chroot? Se è selezionato, qualsiasi percorso assoluto immesso nel primo campo viene considerato relativo alla directory radice FTP anonima. Se No viene scelto, i percorsi vengono considerati relativi alla directory radice reale. Nega per le classi In questo campo è necessario selezionare le caselle di controllo per le classi a cui si applica la restrizione. Consulta la sezione "Gestione delle classi utente" per ulteriori informazioni su come aggiungere le tue classi. Questo può essere utile se vuoi bloccare l'accesso da parte di client anonimi ad alcuni file, ma consentire a utenti Unix reali.
  3. Il Consenti l'accesso ai file anche se negato table ha esattamente la stessa struttura della tabella di rifiuto, ma serve per inserire nomi di file e percorsi a cui dovrebbe essere consentito l'accesso anche se sono negati da una voce nella tabella sopra. Questo può essere utilizzato per negare l'accesso a tutto (inserendo _*_ in un File da negare riga) e quindi concedere indietro i diritti di download solo sui file che corrispondono a un modello (come *.html Per esempio).
  4. Fai clic su Salva pulsante in fondo alla pagina per salvare e attivare eventuali nuove restrizioni sui file. Se si desidera aggiungere più di una voce in una delle tabelle, fare nuovamente clic sull'icona *Limiti e controllo degli accessi* per visualizzare nuovamente il modulo e compilare le nuove righe vuote visualizzate.

Non fatto

Figure 41-4 “The limits and access control form” 

Esiste anche una funzione simile per limitare i nomi dei file che i client possono caricare. Questo può essere utile per bloccare la creazione di file o directory nascosti i cui nomi iniziano con un punto o nomi di difficile comprensione contenenti spazi e caratteri di controllo. Questi sono spesso usati da persone subdole per nascondere i file sul tuo server FTP anonimo se consenti il ​​caricamento. Poiché le persone fidate possono avere buoni motivi per creare tali file, è possibile definire restrizioni che si applicano solo agli utenti anonimi o ospiti.

Per aggiungere e modificare i limiti dei nomi dei file di caricamento, procedi nel seguente modo:

  1. Nella pagina principale del modulo, fai clic su Autorizzazioni icona.
  2. Nel modulo visualizzato, i Nomi file di caricamento non consentiti la tabella in fondo elenca i nomi di file che sono consentiti e negati per diversi tipi di utenti. Le restrizioni esistenti possono essere modificate semplicemente cambiando i loro campi nella tabella e una nuova creata compilando l'ultima riga vuota (che sarà tutto ciò che la tabella contiene se non hai utilizzato questo modulo prima). Le colonne della tabella e il significato dei relativi campi sono:Caratteri consentiti Una singola espressione regolare Perl che deve corrispondere a tutti i file caricati. Ad esempio, se hai inserito ^[a-z]+$ , sarebbero consentiti solo nomi di file composti da lettere minuscole. File regexp da negare Un elenco separato da spazi di espressioni regolari che non sono consentite nei nomi di file. Un buon esempio è ^\. , che blocca qualsiasi nome che inizia con un punto, che nasconde il file. Tipi di utenti I tipi di utenti a cui si applica questa restrizione. Spesso vorrai porre limiti più severi ai clienti anonimi rispetto agli utenti reali o ospiti. File del messaggio di errore Il percorso completo di un file che verrà inviato a qualsiasi client che tenti di caricare un file il cui nome non corrisponde all'espressione consentita o corrisponde a una delle espressioni negate.
  3. Come al solito, fai clic su Salva pulsante in fondo alla pagina per attivare eventuali nuove restrizioni quando hai finito.

Se più di una restrizione è definita per lo stesso tipo di utente, verranno tutte controllate per determinare se è consentito un nome file caricato.

Configurazione degli utenti ospiti

Un utente FTP ospite è un vero utente Unix che è limitato da WU-FTPD a una determinata directory, proprio come i client anonimi sono limitati. Tuttavia, hanno ancora i privilegi completi all'interno di quella directory, inclusi i diritti per caricare file, rinominare e chmod file. Limitare un utente all'accesso come ospite può essere utile se vuoi impedirgli di vedere parti del tuo filesystem al di fuori della sua home directory o di qualche directory padre come /home.

Ogni utente designato come ospite dalla configurazione del server FTP può avere una directory radice diversa o alcuni possono essere la stessa. Tuttavia, le directory root scelte devono essere impostate allo stesso modo della root FTP anonima, con le sottodirectory bin, lib e etc contenenti tutti i programmi ei file necessari per WU-FTPD. Tuttavia, puoi semplicemente copiare quelle directory dalla radice anonima, quindi il processo di installazione non è così difficile.

Per configurare un utente come ospite, la sua home directory deve essere modificata in modo speciale. I passaggi seguenti spiegano come farlo utilizzando Webmin:

  1. Vai al modulo Utenti e gruppi (trattato nel capitolo 4) e fai clic sul nome dell'utente che desideri limitare.
  2. Cambia la sua home directory in guestroot_/./_homedir , in cui guestroom è la directory principale che hai preparato e homedir una sottodirectory sotto di essa. Se stai usando /home come root, /home/./jcameron potrebbe essere la directory per l'utente jcameron. Questa voce speciale /./ nel percorso dice a WU-FTPD dove si trova la radice, ma non dovrebbe confondere altri programmi.
  3. Fai clic su Salva pulsante in fondo alla pagina. Webmin sposterà la sua home directory nella nuova posizione, se necessario.

Naturalmente, puoi specificare una tale home anche quando crei un nuovo utente. Tuttavia, questo è solo il primo passaggio:per configurare WU-FTPD in modo che tratti determinati utenti come ospiti, dovrai seguire questi passaggi:

  1. Nel modulo WU-FTPD Server fare clic su Utenti e classi icona per visualizzare il modulo mostrato nella Figura 41-2.
  2. In Utenti e UID Unix da trattare come ospiti , inserisci un elenco separato da spazi di nomi utente, UID o intervalli UID (come %1000-2000 _o %5000-_) di utenti da designare come ospiti. Puoi anche inserire un elenco di nomi di gruppi, ID e intervalli di ID nel campo *Gruppi Unix e GID da trattare come ospiti* per fare in modo che anche tutti i membri primari vengano trattati come ospiti.
  3. Per impedire che alcuni utenti vengano convertiti in ospiti anche se si trovano negli elenchi o negli intervalli impostati nel passaggio 2, compila gli Utenti Unix e UID da non considerare ospiti e Gruppi Unix e GID da non trattare come ospiti campi. Questo può essere utile se vuoi rendere tutti ospiti tranne alcuni utenti fidati.
  4. Fai clic su Salva pulsante in fondo alla pagina per attivare le nuove designazioni degli ospiti.

Se un utente è stato configurato come guest ma non ha /./ nella sua home directory, non sarà limitato a nessuna directory root.

Modifica degli alias delle directory

Per semplificare la vita agli utenti che hanno spesso bisogno di accedere a directory con percorsi lunghi, WU-FTPD consente di definire alias di directory che possono essere utilizzati quando si passa a una directory diversa. Ciò significa che qualcuno che utilizza un client FTP da riga di comando può inserire cd stuff:invece di cd /usr/local/etc/stuff, supponendo che sia stato creato un alias adatto.

Per impostare gli alias, segui questi passaggi:

  1. Nella pagina principale del modulo, fai clic su Alias ​​e percorsi icona.
  2. Gli alias della directory del CD field è in realtà una tabella che elenca gli alias esistenti (se presenti) e ha sempre una riga vuota per aggiungerne una nuova. Nel primo campo vuoto sotto il Nome alias colonna, inserisci il nome per un nuovo alias come stuff: o spazzatura: . Non è necessario che un alias termini con i due punti, tuttavia, questa è una buona idea in quanto riduce il rischio che un nome alias sia uguale a una directory relativa effettiva. Nel campo corrispondente in Alias ​​alla directory , inserisci un percorso di directory completo come /usr/local/junk a cui l'alias è uguale. Se desideri aggiungere più di un alias, dovrai salvare e riaprire questa pagina in modo che appaia una nuova riga vuota. Per eliminarne uno, basta cancellare entrambi i suoi campi nella tabella.
  3. Il percorso di ricerca nella directory del CD casella di testo consente di inserire un elenco di directory in cui verrà eseguita la ricerca se un client tenta di passare a una relativa sottodirectory che non si trova nella directory corrente. Ad esempio, se /usr/local è stato incluso e un client ha provato a passare alla directory bin, sarebbe stato posizionato in /usr/local/bin (supponendo che non esista una vera sottodirectory bin).
  4. Premi Salva pulsante in fondo alla pagina per attivare i nuovi alias.

Gli alias non sono particolarmente utili nei client FTP grafici che presentano all'utente un elenco di directory su cui fare clic. Poiché gli utenti non possono e spesso non possono passare a una pseudo-directory esplicita come roba:e gli alias non sono inclusi negli elenchi, sono difficili da usare. Tuttavia, i client FTP simili a comandi come ncftp e il classico programma ftp Unix sono più adatti per usarli.

File di messaggi e leggimi

WU-FTPD può essere configurato per inviare il contenuto di vari file di messaggi ai client quando effettuano il login o entrano in determinate directory. Questo può essere utile per visualizzare informazioni sul tuo server FTP (come chi lo esegue e quali file sono ospitati) o dettagli del contenuto di una particolare directory agli utenti FTP. Ogni file viene inviato una sola volta a un client in una singola sessione, per evitare di infastidire l'utente con messaggi ripetuti.

Il server può anche essere configurato per notificare ai client l'esistenza di determinati file e informarli delle loro ultime date di modifica. Questo è in genere utilizzato per i file README contenenti informazioni leggermente meno importanti su una directory o sul server, che gli utenti potrebbero voler leggere. Anche in questo caso, i client vengono avvisati solo una volta per sessione per ciascuno di questi file.

Per definire i file di messaggi e banner, segui questi passaggi:

  1. Fai clic su Messaggi e banner icona nella pagina principale del modulo, che ti porterà al modulo mostrato in Figura 41-3.
  2. I File dei messaggi la sezione è una tabella per specificare i file il cui contenuto verrà inviato ai client. Come al solito con le tabelle in Webmin, elenca i file esistenti e i loro contesti e ha una riga vuota in basso per aggiungerne una nuova. I significati dei campi sono:Percorso Il percorso del file il cui contenuto deve essere inviato al client. Può essere un percorso assoluto come /etc/login.message o un nome file relativo come message.txt . In quest'ultimo caso, viene cercato in ogni directory in cui il client entra. Se si immette un percorso completo e si desidera che i client anonimi siano in grado di vederlo, è necessario che si trovi nella directory radice FTP anonima. Quando visualizzare Se Al login è selezionato, il file verrà inviato ai client dopo l'accesso. Se Inserendo una directory qualsiasi viene selezionato, il file verrà cercato e inviato quando si passa a una directory qualsiasi. Quando Inserisci dir viene selezionato, il file verrà inviato solo quando viene inserita la directory di cui si specifica il percorso nella casella di testo adiacente. Anche in questo caso, questo deve essere relativo alla directory principale per i client anonimi. Classi da visualizzare Se questo campo viene lasciato vuoto, il messaggio viene inviato a tutti i client. Tuttavia, se viene inserita una o più classi di clienti (separate da spazi), verrà utilizzata solo per i clienti che rientrano in tali classi. Questo può essere utile per definire file di messaggi solo per utenti anonimi, specialmente quando si utilizzano percorsi assoluti.
  3. Per definire i file di cui i client saranno informati dell'esistenza, dovrai compilare i file LEGGIMI tavolo. Ancora una volta, questo elenca tutti i file esistenti e ha una riga vuota per aggiungerne uno nuovo. I significati dei campi nelle colonne di questa tabella sono:Percorso' Il percorso del file la cui esistenza e ora di modifica devono essere inviate al client. Può essere un percorso assoluto come /etc/README o un nome file relativo alla directory inserita come README.txt . Puoi persino utilizzare i caratteri jolly della shell come * e ? nel nome del file per abbinare più file, ad esempio README* . Quando visualizzare la data dell'ultima modifica Se Al login è selezionato, le informazioni verranno inviate ai clienti dopo l'accesso. Se Inserendo qualsiasi directory viene selezionato, il file verrà ricercato e la sua data di modifica inviata quando si passa a una directory qualsiasi. Quando Inserendo dir viene selezionata, la data di modifica verrà inviata solo quando verrà inserita la directory di cui si specifica il percorso nella casella di testo adiacente. Classi da visualizzare If this field is left blank, the modification is sent to all clients. However, if one or more classes of client is entered (separated by spaces) it will only be used for clients that fall into those classes.
  4. To change the amount of information that WU-FTPD sends to clients when they connect, adjust the Greeting level campo. If Hostname and version is selected, both the system's hostname and the FTP server version will be sent. If just Hostname is chosen only the hostname will be displayed, while if Neither is selected no information will be sent. The latter two options are the most secure, as an attacker may be able to use your FTP server's version to find a bug in it that could be exploited to take over your system.
  5. If you want to have the server sent a message to clients as soon as they connect, put it in a file and select the From file option for the Pre-login banner file campo. Then enter the full path to the message file into the text box next to it.
  6. To change the hostname that WU-FTPD sends in the greeting and other messages, select the second option in the Hostname for messages field and enter some alternative name in the text box. This can be useful if your system's real hostname does not match the name the FTP clients use (server5.example.com instead of ftp.example.com for example).
  7. When you are done with this form, click the Save button to activate your changes. They will apply to all new FTP clients that connect from now on.

On many operating systems, the WU-FTPD configuration will include one or two message and README file definitions by default. Typically the .message file is searched for in every directory and sent to clients, as is the modification time of any file whose name matches the README* pattern.

Any message files that you define that can contain special codes starting with % that are replaced when the file is sent by dynamically generated text. For example, %U is replaced with the client's FTP login name, so a file containing the line _Welcome %U to the example.com FTP server_ would be sent to the client as something like Welcome jcameron to the example.com FTP server . According to the WU-FTPD manual page, the available codes are:

Not done

Configuring logging

In a typical default configuration, WU-FTPD will log all uploads and downloads to the file /var/log/xferlog. However, you can choose the types of users that logging will be done for (Unix, anonymous or guest), have the log written to syslog instead, and select to record commands are security violations for some types of users. Logging to the system log gives you more flexibility, as you can choose which file messages are written to – although they will be mixed in with other daemon facility messages. See chapter 13 and the System Logs module for more information on how syslog works and which files it ultimately writes to.

Enabling logging of all commands allows you to track exactly what clients are doing, but can consume a large amount of disk space. The logging of security violations (attempts to violate WU-FTPD's file restrictions, covered in the “Denying access to files” section) can be useful for detecting hackers, and is unlikely to use up much space as such violations are not usually very frequent.

To edit FTP logging-related options in Webmin, the steps to follow are:

  1. On the module's main page, click on the Logging icon to bring up the small logging options form.
  2. To have all FTP commands executed by clients (including trivial ones such as CWD and LIST) recorded in the system log, select types of users for which they should be logged from the Log all commands for campo.
  3. To change the types of users that transfer logging is done for, select them from the Log transfers for campo. The *In directions* sub-field lets you choose whether uploads (Inbound ), downloads (Outbound ) or Both are recorded. On an anonymous FTP server, it may make sense to only record uploads due to the large number of downloads.
  4. To have transfers written to syslog, select System log in the Log transfers to campo. Or to tell WU-FTPD to write to the /var/log/xferlog file instead, select XFER log file . If Both is chosen, transfers will be logged to both destinations. If you want to use a program like Webalizer (covered in chapter 39) to analyze your FTP server's logs, they must be written to xferlog as the lines that end up being written out by syslog have additional information added and thus cannot be parsed. Anything written to the system log will use the daemon facility, unless WU-FTPD has been compiled to use a different one, such as local7. This can in fact be quite useful, as it allows you to separate out the FTP messages and have them written to a different file, while still enjoying all the benefits of syslog.
  5. To enable the logging of attempted filename security violations, select the types of users that this should be enabled for from the Log security violations for campo. These will always been written to syslog.
  6. Fai clic su Salva button at the bottom of the page to save and activate the new logging settings.

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).

WU-FTPD allows you to define limits on a per-class basis, so that anonymous clients can be restricted while real Unix users are not. It also lets you specify the times during which restrictions apply, so that a higher limit can be granted when the server is not as heavily used for other purposes (such as at night).

To set up concurrent login limits, follow these instructions:

  1. On the module's main page, click on the Limits and Access Control icona. The form shown in Figure 41-4 will appear in your browser.
  2. The Concurrent user limits table is where limits on the number of connections can be entered. Each row defines a limit that applies to a certain class at certain times. As usual with tables in this module, there will be one empty row at the bottom for adding a new limit (and if this is the first one, the table will only contain that one row). Existing limits can be edited by changing their fields in the table, or deleted by selecting the empty option from the class menu. The fields in each row should be filled in as follows:Apply to class' You must select the name of the class that this limit will apply to from the menu. Multiple limits can be defined for the same class at different times. Maximum users To set a limit for the chosen class, select the second radio button and enter the maximum number of concurrent connections into the adjacent text box. If the Unlimited button is selected, no limit will apply to the class at the specified times. For example, you could add a row that turns off restrictions at night above another row that sets them for the entire day. At times If Any time is selected, the limit will apply all the time. However, if you choose the second option and enter a UUCP-style time specification into the text box, only connections made during that period will be restricted. For example, Any0900-1700 means 9am to 5pm every day, Mo,Tu,We means Mondays, Tuesdays and Wednesdays, Wk means weekdays and and Wk1700-0900,Sa,Su means times outside office hours. WU-FTPD always checks the table in order for an entry that matches a connecting client's class and the current time, and stops when it finds one. This means that entries that specify times (such as Any0900-1700 ) should be placed above those that have Any time selected so that the specific entry is actually used when appropriate. Error message file The full path to a file containing a message that will be sent to clients whose connections exceed the limit. This should explain why they are being rejected, and suggest other times or FTP servers to try.
  3. Premi Salva button at the bottom of the page to activate the connection limits. To add more than one, you will need to re-visit the form so that a new blank row appears in the table.

Restricting clients by IP address

Even though it is possible to block clients from certain addresses by ensuring that they do not fall into any class, there is a feature in the module dedicated specifically to blocking clients based on their IP addresses or hostnames. This can be used to lock out specific hosts that are abusing your FTP server, or to restrict access to clients from only your own company or home network.

The steps to define banned client systems are:

  1. Click on the Limits and Access Control icon on the module's main page to open the form shown in Figure 41-4.
  2. Each row in the Deny access from table specifies an IP address, hostname or pattern to block logins from. As with other tables in this module, it will always an additional empty row for adding a new restricted address. In the Deny from address field you can also enter the full path to a file containing banned addresses, use negated patterns like !192.168.1.* or even the special address !nameserved which matches all clients that do not have a valid reverse DNS address. Only one can be entered though – to block additional addresses, you will need to add more rows. In the Error message file field you must enter the full path to a file containing a message that will be sent to blocked clients. This should explain to connecting users that they have been blocked, and perhaps give a reason why. If you want to add more than one row, you will need to save this form and re-open it so that a new empty row appears at the bottom of the table. Existing restrictions can be edited by just changing their fields, or deleted by clearing out the address.
  3. When you are done, hit the Save button at the bottom of the form to activate the new address restrictions.

Restricting access to FTP commands

WU-FTPD can be configured to restrict the FTP commands that certain types and classes of users can use. This is useful for stopping anonymous clients modifying files, as on most FTP servers they are only allowed to download, not upload, rename or delete. In fact, in its usual default configuration this is exactly how WU-FTPD is configured.

There are five commands that you can restrict access to, all related to server-side data modification. They are:

chmod
Change the Unix permissions of a file on the server (chmod in the Unix FTP client).
delete
Delete a file or directory on the server (del or rmdir in the Unix FTP client).
rename
Change the name of a file or directory (rename in the FTP client).
overwrite
Upload a file with the same name as one that already exists.
umask
Change the default Unix permissions for newly created files (umask in the Unix FTP client).

It is not possible to stop clients using directory listing or download commands. Neither is it possible using this feature to prevent the upload of files that do not already exist – however, this can be achieved by setting directory permissions appropriately, or blocking all uploaded filenames as explained in the “Denying access to files” section.

To define which clients can use which commands, follow these steps:

  1. Click on the Permissions icon on the module's main page.
  2. On the form that appears, the Command restrictions table lists existing commands and the user types and client classes that are or are not allowed to use them. As usual, you can add a new command using the blank row at the bottom, edit existing entries or delete the restrictions on a command altogether by selecting the blank option from the Command menù. The FTP server processes this table in order when a client tries to do something, and uses the selection in the Allow? column for the first entry that matches to decide if it is allowed or not. This means that the order matters, and thus if two entries match the first one will decide what happens. The fields for each row and their meanings are:Command You must select types. The restriction will only apply to the types of user selected in this column. See the “Managing user classes” section earlier in the chapter for details on what each means. For classes Only the client classes selected in this column will be effected by the restriction.
  3. When you are done editing or adding to the table, hit the Save button to activate your changes.

If a client command does not match any entry in the table, it will be allowed by the FTP server (unless blocked by some other filename restriction set elsewhere).

Configuring the WU-FTPD Server module

To change the paths that the module uses for the WU-FTPD configuration files and programs, you will need to click on the standard Module Config link nell'angolo in alto a sinistra della pagina principale. Unlike other modules there are no options related to the user interface, so you will probably not need to adjust anything on the configuration form if the module is working for you. By default, all the configuration fields are set to match the WU-FTPFD package included with your operating system or Linux distribution.

Even though there are fields for configuration files other than ftpaccess, at the time of writing the module does not actually edit those files yet.


Webmin
  1. Jabber IM Server

  2. Server ProFTPD

  3. Installare il server FTP su Debian 10 - Una guida passo passo?

  4. Server FTP di base di Ubuntu?

  5. Come connettersi al server locale?

Come installare il server FTP su Manjaro 20

Come installare il server FTP su CentOS 8

Come installare un server FTP?

Come installare il server FTP su Ubuntu?

Come installare FTP su Ubuntu 18.04?

Installa FTP su Windows Server 2012 (R2)