Server FTP di base Ubuntu


33

Vorrei installare un server FTP di base sulla mia installazione di Ubuntu Server. Ho giocato con VSFTPD, ma sto riscontrando problemi nel far sì che il server mi consenta di creare directory e copiare file. Ho impostato il sistema per consentire agli utenti locali, ma sembra che ciò non significhi che ho accesso alla creazione di directory. Questa potrebbe essere un'istanza in cui ho bisogno di essere meglio radicato nella configurazione del server Ubuntu per configurare adeguatamente questo server FTP. L'obiettivo finale è quello di essere in grado di spostare i file dalla mia cartella dev locale nella mia cartella www per la distribuzione. Anche le directory devono essere in grado di spostarsi. Qualsiasi aiuto sarebbe molto apprezzato.


Hai menzionato lo spostamento di file e cartelle dallo sviluppatore locale alla cartella www - stai facendo tutto sulla stessa macchina o macchine diverse?
Marco Ceppi

Inoltre sei completamente venduto con VSFTPD? O ti interesserebbero altri tipi di software FTP come pureftp?
Marco Ceppi

Lo sviluppatore locale è una macchina completamente separata. Ho familiarità con lo spostamento di file su server Web tramite FTP, forse c'è un modo migliore.
JPrescottSanders

Non sono venduto su VSFTPD, è stato il primo che ho trovato su Google, se hai una soluzione più semplice sono tutto orecchi.
JPrescottSanders

Risposte:


42

Consiglierò PureFTPD perché secondo me è stato il più semplice e facile da usare. Dovrai prima installarlo: sudo apt-get install pure-ftpduna volta installato si avvierà automaticamente. Per impostazione predefinita utilizza l'autenticazione PAM, ovvero utilizza gli account già esistenti sul sistema per la sua autenticazione. Tutto quello che devi fare è creare un account utente con la directory home come percorso www e impostare la password per quell'account. Dovresti quindi essere in grado di connetterti con quella combinazione utente / passaggio per caricare / scaricare file.

Qualcosa come questo:

sudo adduser ftpman --home /var/www/ --ingroup www-data

Il che creerà l' ftpmanutente e lo inserirà nel gruppo www-data utilizzato da Apache e ti guiderà attraverso il resto dello script di installazione. Una volta definito, assicurati chmoddella cartella WWW se ricevi errori su di essa già esistenti nella combinazione utente / gruppo che hai creato.

Infine, se si desidera bloccare l'accesso SSH per l'esecuzione di quell'account: il sudo chsh -s /bin/false ftpmanche cambierà la shell degli utenti in false. (Sostituisci ftpman con il tuo utente ftp)


5
PureFTP è il più semplice da configurare per quanto mi riguarda.
Nathan Osman,

1
Hai l'abitudine di dare una spiegazione completa sempre come un insegnante. Eccezionale!!!
user3215

1
Ho provato questo, ma non riesco a connettermi con l'utente appena creato. Gli utenti esistenti funzionano bene
wim

1
Tutto funziona bene, tranne quando lo eseguo, chshquesto sembra impedire agli utenti di accedere anche tramite FTP. Tornare su per /bin/bashconsentirgli di funzionare di nuovo.
Dan

1
Grazie e posso confermare che ho trascorso un'intera giornata con vsftpd e 5 minuti con pureftpd in fase di configurazione. Per una configurazione semplice e sicura, utilizzare pureftpd. Sono confuso perché mainstream touts vsftpd!
RyBolt,

10

A mio avviso, SFTP è un modo migliore di procedere. Ehi, ha la parola "sicuro" nel nome, deve essere migliore :)

SFTP usa ssh per eseguire trasferimenti di file (come distinto da FTPS, che è sostanzialmente FTP + TLS). Ciò significa che se è possibile eseguire lo ssh sul computer di destinazione, è quasi sempre possibile utilizzare SFTP su di esso, poiché utilizza gli stessi meccanismi di autenticazione, quindi non è necessario installare e configurare affatto diversi demoni del server (ovvero senza pureftpd o vsftpd). Finché le autorizzazioni sono impostate correttamente per /var/www- il che probabilmente è una questione di sudo chmod g+w /var/www; sudo usermod -g $USER -G www-data $USER- dovresti essere in grado di utilizzare immediatamente SFTP.

La maggior parte dei software client oggigiorno eseguirà SFTP abbastanza felicemente, e puoi anche usarlo scpda una shell sul server dev per copiare cose ( scp -Rcopierà intere cartelle ed è molto utile). Puoi anche fare un altro passo e automatizzare gli accessi con le chiavi pubbliche, il che significa che non dovrai più digitare password :)


3
suggerimento suggerimento ... se hai client Windows possono usare WinSCP winscp.net/eng/index.php per accedere a un server sftp.
LassePoulsen,

Secondo il tuo commento, l'OP dovrebbe ovviamente usare vsftpd, perché vs sta per molto sicuro . :-)
qbi

PureFTPD utilizza la stessa autenticazione di SFTP - è in realtà più sicuro secondo me perché se le informazioni del tuo account vengono divulgate, nessuno può accedere come SSH al tuo computer. Nel peggiore dei casi hanno accesso ai file.
Marco Ceppi

Se la tua app supporta solo FTP e stai effettuando il tunneling su SSH, qual è la differenza? :)
endolith

5

Consiglio vivamente di usare vsftpd. È uno dei demoni FTP più sicuri in Linux. Molti altri avevano punti deboli in passato e sembra che l'FTP sia difficile da implementare in modo sicuro.

vsftpd inizia subito dopo averlo installato. Ubuntu consente agli utenti locali di accedere. Quindi avvia il tuo client FTP e accedi come normale utente con la tua password di sistema (Il mio esempio usa lftp):

> lftp 127.0.0.1 ftp
lftp 127.0.0.1:~> user qbi
Password: #typing my password which I also use to log in via GDM
lftp qbi@127.0.0.1:~> ls
drwxr-xr-x 10 1000 1000   4096 2008-07-28 16:32 Desktop
... many more

Ora sto usando una specie di file manager (Nautilus, Shell ecc.) Per creare una nuova directory fooe tornare al mio client FTP:

ftp qbi@127.0.0.1:~> ls -l
...
drwxr-xr-x 2 1000 1000   4096 2010-08-09 13:32 foo

Directory è lì e sono in grado di cdaccedervi e usarlo. Lo stesso vale anche per utenti speciali. Lì puoi anche creare directory e sono immediatamente accessibili. Qui è importante cercare i diritti di accesso.


3

Consiglio vivamente un server FTP che mi sono scritto da zero: JetFTP . È estremamente semplice da installare e utilizzare.


Installazione:

  • Aggiungi il mio PPA alle tue fonti di software e aggiorna:

    sudo apt-add-repository ppa:george-edison55/george-edison
    
  • Esegui il seguente comando:

    sudo apt-get install jetftp
    
  • Questo è tutto!

L'uso di JetFTP è semplice: basta collegarsi alla porta 8021utilizzando un nome di accesso e una password sul computer su cui è in esecuzione JetFTP.


2

Non utilizzare ftp , è un protocollo intrinsecamente insicuro perché invia nome utente e password in chiaro al server. L'implementazione di sftp è altrettanto facile e ottieni un enorme vantaggio nella sicurezza della tua connessione.


chiaro problema è la migliore risposta :-)
Sajad Bahmani

0

Esistono tre modi diversi per configurare un server ftp:

(1) FTP anonimo:

Le persone possono accedere al server solo con l'account anonimo e senza password. Naturalmente, l'amministratore del server imposterà un limite per i caricamenti per impedire agli utenti di inserire file illegali come musica / film / giochi piratati.

(2) FTP con accesso anonimo e utenti con un account con password:

Questo metodo consente agli utenti di account anonimi e con password di accedere al server. Avranno accesso solo a una directory specificata, ad eccezione dell'utente root che può visualizzare / modificare / eliminare tutti i file e / o cartelle.

(3) FTP con supporto mysql per l'autenticazione di utenti virtuali:

Questo metodo consente l'accesso al server solo per alcuni gruppi di utenti che non dispongono di un account shell di autenticazione degli utenti virtuali sul sistema. Utilizza un server mysql esterno che memorizza le informazioni dell'utente.

Prima opzione: FTP anonimo

Prima di iniziare la creazione di un server ftp anonimo, devi aggiungere un utente chiamato ftp nel tuo sistema, anche con una home directory. Questo passaggio è davvero semplice, basta seguire questi comandi:

useradd -d /home/ftp/ftp -s /bin/false ftp

mkdir -p /home/ftp/upload

In questo modo solo questo account può scrivere in questa cartella. È possibile utilizzare più variabili per specificare cosa farà il server ftp. Ecco alcuni esempi:

-e Allow access to the server only by anonymous users
-B Start the server with background demon
-i Anonymous users can't upload files
-M Let anonymous users create folders
-s ftp user files cannot be downloaded

Seconda opzione: '' 'Utenti con account sia anonimi che con password' ''

Per rendere possibile avere utenti con account sia anonimi che con password nello stesso server, seguire questa piccola guida:

-B ,-i ,M, -r, -s same of before
-u <uid> Enable users with a specified user id (uid) to access the server 
-V <Ip address> Only specified IPs will be able to access the server in non-anonymous mode 

Terza opzione: '' 'Utenti virtuali con Mysql' ''

Per creare un server con supporto mysql attenersi alla seguente procedura:

Scarica e installa User Manager per PureFTPd che puoi trovare qui http://machiel.generaal.net/index.php?subject=user_manager_pureftpd

Decomprimilo e carica tutto il suo contenuto nella directory www del tuo server web e poi scrivi sul tuo browser questo link link http: //localhost/ftp/install.php Segui tutti i passaggi che ti viene richiesto dal programma di installazione Copia e salva rge pureftpd-mysql .conf nella directory del gestore utenti pureftpd

Fatto. Accesso al pannello di amministrazione tramite questo collegamento http: // localhost / ftp

Altre opzioni da aggiungere prima di avviare il processo del server

-c <num> Max client that can connect to the server
-C <num> Max connections for a IP
-T <bandwitdh> Max bandwitdh disponible for each connection
-n <MBytes> Max MB that a user can have into its home folder
-m <Cpu Loading> Stops the anonymous uploads if the cpu loading exceed from this value 

E vedi questo per alcune applicazioni server ftp:
https://help.ubuntu.com/6.06/ubuntu/serverguide/C/ftp-server.html


4
Quando copi e incolli una risposta da qualche altra parte, dovresti sempre accreditare la fonte .
Dori,

0

L'installazione predefinita di VSFTPD non consente alcuna creazione / modifica di default. Devi modificare /etc/vsftpd.confe rimuovere il commento dalla seguente riga ...

write_enable=YES

E in secondo luogo è necessario configurare le autorizzazioni appropriate del file system sui rispettivi file e cartelle.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.