Guida di GoDaddy

Bip bip... calcoli... calcoli... inizio sequenza 42...
Ci risiamo con quei pazzi robot! Hanno tradotto questa pagina nella tua lingua. I robot hanno le migliori intenzioni. Vogliono aiutarti. Premi i pulsanti al fondo della pagina per farci sapere che cosa pensi del risultato. Vai alla versione inglese

Come impostare un server FTP su 14.04 Ubuntu

Impostazione di un server FTP perfettamente funzionante e altamente protetto Ubuntu viene fatta molto semplice con alcune componenti chiave e qualche minuto del tuo tempo. Accesso FTP anonimo, delle restrizioni di directory principale o persino completamente crittografati trasferimenti tramite SSL, questo tutorial fornisce tutte le nozioni di base che dovrai rapidamente il tuo server FTP attiva e funzionante.

DIFFICOLTÀ Basic - 1 | Medio - 2 | Avanzata - 3
TEMPO RICHIESTI 20 min
PRODOTTI CORRELATI Basato su Ubuntu VPS o dedicati

Installazione di vsftpd

Quando ci sono disponibili per Linux una serie di strumenti di server FTP, è una delle opzioni più diffusi e adulti vsftpd.

Inizia da SSHing nel tuo server come utente root e usare il comando apt-Ottieni per installare vsftpd:

$ apt-get update
$ apt-get install vsftpd
Reading package lists... Done
Building dependency tree
Reading state information... Done
[...]
The following NEW packages will be installed:
  vsftpd
0 upgraded, 1 newly installed, 0 to remove and 18 not upgraded.
Need to get 111 kB of archives.
After this operation, 361 kB of additional disk space will be used.
Get:1 http://mirrors.digitalocean.com/ubuntu/ trusty-updates/main vsftpd amd64 3.0.2-1ubuntu2.14.04.1 [111 kB]
Fetched 111 kB in 0s (231 kB/s)
Preconfiguring packages ...
Selecting previously unselected package vsftpd.
(Reading database ... 175600 files and directories currently installed.)
Preparing to unpack .../vsftpd_3.0.2-1ubuntu2.14.04.1_amd64.deb ...
Unpacking vsftpd (3.0.2-1ubuntu2.14.04.1) ...
Processing triggers for man-db (2.6.7.1-1) ...
Processing triggers for ureadahead (0.100.0-16) ...
Setting up vsftpd (3.0.2-1ubuntu2.14.04.1) ...
vsftpd start/running, process 18690
Processing triggers for ureadahead (0.100.0-16) ...

Configurazione

Il passaggio successivo è necessario modificare le impostazioni di configurazione per vsftpd. Apri il file /etc/vsftpd.conf nell'editor di testo preferito:

$ nano /etc/vsftpd.conf

Modifica il file in modo che il seguente:

# Example config file /etc/vsftpd.conf
# ...
# Run standalone?  vsftpd can run either from an inetd or as a standalone
# daemon started from an initscript.
listen=YES
#
# Allow anonymous FTP? (Disabled by default)
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
#write_enable=YES
# You may restrict local users to their home directories. See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
#chroot_local_user=YES

Le impostazioni critiche indicate sopra sono indicate di seguito:

  • listen=YES indica vsftpd eseguire come autonoma daemon (il metodo più semplice per ottenere e l'esecuzione). anonymous_enable = NO impedisce agli utenti FTP anonimi, che in genere preferito per motivi di sicurezza, ma può essere attivato a scopo di.
  • local_enable=YES consente a qualsiasi account utente specificati nell'accesso al file /etc/passwd al server FTP ed è in genere si collega quanto la maggior parte degli utenti FTP.
  • write_enable=YES è contrassegnato come commento per impostazione predefinita, ma la rimozione che di hash (#) consente di file caricare al server FTP. chroot_local_user = Sì limita gli utenti a loro directory home e viene anche contrassegnato come commento fuori per impostazione predefinita.

Per iniziare il test e assicurati che tutto funzioni, inizia con le seguenti impostazioni per i parametri di cui sopra:

listen=YES
anonymous_enable=YES
local_enable=YES
write_enable=YES
chroot_local_user=YES

Risparmia il vsftpd.conf file riavvia il servizio di vsftpd rendere effettive le modifiche:

$ sudo service vsftpd restart
vsftpd stop/waiting
vsftpd start/running, process 18954

Verifica il tuo Server FTP

Rapidamente determinare se il tuo server è stato installato correttamente ed è attivo e in esecuzione, prova per la connessione al server FTP dal tuo shell attiva, utilizzando il nome anonimo e una password:

$ ftp localhost
Connected to localhost.
220 (vsFTPd 3.0.2)
Name (localhost:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

Con entrambe le direzioni anonymous_enable e local_enable impostato su "Sì" nella configurazione, dovresti essere in grado di correttamente l'accesso al server FTP locale come indicato sopra.

In merito in modo, è sufficiente immettere uscire al ftp > annullare richiesta:

ftp> quit
221 Goodbye.

Con il test completo, puoi disabilitare l'accesso anonimo ancora una volta impostando anonymous_enable=NO Nel /etc/vsftpd.conf file e il riavvio del servizio:

$ nano /etc/vsftpd.conf

Modifica del file per simile a questo:

# Set to NO to disable anonymous access
anonymous_enable=NO
sudo service vsftpd restart
vsftpd stop/waiting
vsftpd start/running, process 18996

Aggiunta di un utente FTP

Se si tratta di un nuovo server potrebbe essere consiglia di aggiungere un utente specifico per l'accesso FTP. In caso contrario, è un semplice processo ma iniziare creando un nuovo utente:

$ sudo adduser foobar
Adding user `foobar' ...
Adding new group `foobar' (1000) ...
Adding new user `foobar' (1000) with group `foobar' ...
Creating home directory `/home/foobar' ...
Copying files from `/etc/skel' ...
$ Enter new UNIX password:
$ Retype new UNIX password:
passwd: password updated successfully
Changing the user information for foobar
$ Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n]
$ Y

Con un nuovo utente aggiunto è possibile ora collegare al tuo server remotamente con un client FTP come FileZilla, ma verrà immediatamente imbattere in un errore:

Status:    Connecting to 104.131.170.253:21...
Status:    Connection established, waiting for welcome message...
Response:    220 (vsFTPd 3.0.2)
Command:    USER foobar
Response:    331 Please specify the password.
Command:    PASS ****************
Response:    500 OOPS: vsftpd: refusing to run with writable root inside chroot()

Il vsftpd di errore "500 OOPS" restituisce è un protocollo di sicurezza progettato per evitare scrivibile accesso "Root" per gli utenti FTP per impostazione predefinita. Per risolvere il problema si sono disponibili due opzioni principale.

Accesso utente scrivibile-root

Il metodo più semplice consiste nell'alterare il /etc/vsftpd.conf ancora una volta file e attivare una determinata impostazioni:

$ nano /etc/vsftpd.conf

Modifica il file in modo che il seguente:

# Allow users to write to their root directory
allow_writeable_chroot=YES

Con allow_writeable_chroot abilitato dopo un riavvio vsftpd del servizio, è possibile ora correttamente FTP al tuo server remotamente come il tuo utente appena creato:

Status:    Connecting to 104.131.170.253:21...
Status:    Connection established, waiting for welcome message...
Response:    220 (vsFTPd 3.0.2)
Command:    USER foobar
Response:    331 Please specify the password.
Command:    PASS ****************
Response:    230 Login successful.

Usare le sottodirectory scrivibile

Le altre opzioni di mantenere leggermente maggiore sicurezza sono non attivare allow_writeable_chroot come indicato sopra, ma per creare una nuova sottodirectory nella directory principale dell'utente con accesso di scrittura:

$ sudo chown root:root /home/foobar
$ sudo mkdir /home/foobar/uploads
$ sudo chown foobar:foobar /home/foobar/uploads
$ sudo service vsftpd restart

Ora collegando remotamente al server FTP il nuovo account utente, l'utente non avranno accesso di scrittura nella directory principale, ma invece avranno accesso di scrittura completo per caricare file nella directory caricamenti appena creato invece.

Proteggere il tuo FTP con SSL

Durante l'accesso FTP crittografato standard descritti finora è sufficiente in molti casi, durante il trasferimento di informazioni riservate via FTP è utile sfrutta una connessione più sicura SSL.

Per iniziare è molto probabilmente avrai bisogno generare un nuovo certificato SSL con il seguente comando, seguendo le istruzioni in base alle esigenze completare la procedura:

$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Ora devi garantire che vsftpd sarà a conoscenza del certificato SSL. Apri la /etc/vsftpd.conf ancora una volta del file:

$ sudo nano /etc/vsftpd.conf

Ha un aspetto nella parte inferiore del file di due rsa_ le impostazioni come questo, che indica la posizione del certificato SSL che è stato appena creato:

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

Se le righe non esiste o corrisponde al percorso appropriato il certificato SSL creato, aggiornarli conseguenza.

Inoltre, ci sono altre impostazioni di configurazione per gestire le connessioni SSL, in particolare forzare l'uso del protocollo TLS ideale:

ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH

Uno o più delle impostazioni sono comprensione, ma i componenti chiave sono del generali abilitazione di SSL, la limitazione di usare solo TLS e impedisce l'accesso anonimo.

Con le impostazioni aggiunte e salvata il file, ancora una volta riavvia il servizio vsftpd:

$ sudo service vsftpd restart

Ora il tuo server FTP è pronto per accettare le connessioni protette con crittografia "TLS tramite FTP". Usando un client come FileZilla, ti presenteremo con pop-up certificato richiesto di verificare la certificazione SSL appena creata.

Al momento accettazione verrà ora in tutta sicurezza connesso e verranno crittografati trasferimenti tramite SSL:

Status:    Connecting to 104.131.170.253:21...
Status:    Connection established, waiting for welcome message...
Response:    220 (vsFTPd 3.0.2)
Command:    AUTH TLS
Response:    234 Proceed with negotiation.
Status:    Initializing TLS...
Status:    Verifying certificate...
Command:    USER foobar
Status:    TLS/SSL connection established.
Response:    331 Please specify the password.
Command:    PASS ****************
Response:    230 Login successful.


Questo articolo è stato di aiuto?
Grazie per il tuo feedback. Per parlare con un addetto dell’assistenza clienti, usa il numero di telefono o l’opzione chat qui sopra.
Felici di esserti stati di aiuto! C'è altro che possiamo fare per te?
Ci dispiace. Dicci che cosa hai trovato di poco chiaro o perché la soluzione non ha risolto il problema.