GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come configurare il server FTP su Ubuntu VPS:la guida definitiva

In questo articolo imparerai come configurare un server FTP su un VPS Ubuntu. Utilizzeremo un server vsftpd, ampiamente considerato il server FTP più veloce e sicuro per sistemi simili a UNIX.

Cos'è FTP?

FTP, o File Transfer Protocol, è un mezzo per condividere file tra computer tramite una connessione Internet utilizzando il protocollo TCP/IP. Utilizza inoltre un framework client-server e la sicurezza SSL/TLS per garantire un trasferimento dati sicuro e affidabile.

Questo è in qualche modo simile a HTTP (HypertText Transfer Protocol) o SMTP (Simple Mail Transfer Protocol). La differenza è che FTP è responsabile del trasporto di file attraverso Internet mentre HTTP e SMTP gestiscono rispettivamente il trasferimento di pagine Web ed e-mail.

Prima di iniziare, tieni presente che ti guideremo attraverso la configurazione di un server FTP su Ubuntu 18.04. Pertanto, devi assicurarti che il tuo VPS sia in esecuzione su quel particolare sistema operativo.

Come configurare un server FTP su Ubuntu

Questo tutorial richiede di sapere come connettersi a un server tramite SSH. Se possiedi il VPS di Hostinger, i dettagli di accesso sono disponibili nel Server scheda dell'hPanel.

Fase 1 – Installazione di vsftpd

  1. Prima di tutto, dovremo ricevere gli aggiornamenti del pacchetto prima di procedere con il vsftpd installazione. Per iniziare, esegui il seguente comando:
    sudo apt-get update

    Attendi il completamento di tutti i processi e vedrai una conferma non appena l'aggiornamento termina.

  2. Al termine, installa vsftpd demone usando il comando seguente:
    sudo apt-get install vsftpd

    Ti verrà chiesto con un messaggio di conferma, che ti richiederà di digitare Y e premi Invio per continuare con l'installazione.

  3. Dopo aver completato l'installazione, dovresti eseguire il backup del file originale in modo da poter iniziare con un file di configurazione vuoto:
    sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original

    Ora siamo pronti per configurare il firewall.

Passaggio 2 – Consentire il traffico FTP dal firewall

  1. Per consentire al server FTP di Ubuntu di comunicare via Internet, deve farsi strada attraverso il firewall. Ma prima, vediamo solo se il firewall è già abilitato sulla tua macchina o meno. Basta eseguire questo comando per verificare lo stato:
    sudo ufw status

    Se vedi il seguente messaggio:

    ufw:comando non trovato

    Significa che il firewall non è installato. Puoi installarlo e abilitarlo digitando:

    sudo apt-get install ufwsudo ufw enable
  2. Se è già attivo, devi comunque assicurarti che il traffico FTP sia consentito. Per farlo, esegui i seguenti comandi uno per uno:
    sudo ufw allow OpenSSHsudo ufw allow 20/tcpsudo ufw allow 21/tcpsudo ufw allow 990/tcpsudo ufw allow 40000:50000/tcp

    Questa serie di comandi aprirà diverse porte:

    • OpenSSH è richiesto se desideri comunque accedere al tuo server tramite SSH. A volte, questa opzione è abilitata per impostazione predefinita.
    • porte 20 e 21 per il traffico FTP.
    • porte 40000:50000 sarà riservato all'intervallo di porte passive che verranno eventualmente impostate nel file di configurazione.
    • porta 990 verrà utilizzato quando TLS è abilitato.
  3. Ora esaminiamo di nuovo lo stato:
    sudo ufw status

    L'output dovrebbe essere simile a questo:

    Stato:activeTo Azione Da-- ------ ----OpenSSH ALLOW Anywhere990/tcp ALLOW Anywhere20/tcp ALLOW Anywhere21/tcp ALLOW Anywhere40000:50000/tcp ALLOW AnywhereOpenSSH (v6) ALLOW Anywhere (v6)20 /tcp (v6) CONSENTI Ovunque (v6)21/tcp (v6) CONSENTI Ovunque (v6)990/tcp (v6) CONSENTI Ovunque (v6)40000:50000/tcp (v6) CONSENTI Ovunque (v6)

Fase 3:creazione della directory utente

  1. Una volta impostato il firewall, dobbiamo creare l'utente che utilizzerà l'accesso FTP. Ecco come farlo:
    sudo adduser hostinger

    Ricordati di modificare il nome utente in base alle tue preferenze.

  2. Quindi, inserisci una password per l'utente e inserisci tutti i dettagli richiesti.
    Idealmente, FTP dovrebbe essere limitato a una directory specifica per motivi di sicurezza. Ecco perché vsftpd utilizza prigioni chroot , che limita un utente locale alla propria home directory per impostazione predefinita.
    Tuttavia, è possibile che a causa di vsftpd sicurezza, un utente potrebbe non essere in grado di scrivere in quella directory. Per risolvere questo problema, non è necessario rimuovere i privilegi di scrittura dalla cartella home. Invece, creeremo una directory ftp che funge da chroot . Contiene una directory scrivibile che sarà responsabile della conservazione dei file richiesti.
  3. Utilizzare il seguente comando per creare la cartella FTP:
    sudo mkdir /home/hostinger/ftp

    Quindi, imposta la proprietà utilizzando:

    sudo chown nessuno:nogroup /home/hostinger/ftp

    Infine, rimuovi il permesso di scrittura:

    sudo chmod a-w /home/hostinger/ftp

    Ora, usa il seguente comando per verificare le autorizzazioni:

    sudo ls -la /home/hostinger/ftp

    L'output dovrebbe essere simile a:

    totale 8dr-xr-xr-x 2 nessuno nogroup 4096 8 ott 11:32 .drwxr-xr-x 3 hoster hostinger 4096 8 ott 11:32 ..
  4. Successivamente, creeremo la directory di archiviazione dei file e assegneremo la proprietà:
    sudo mkdir /home/hostinger/ftp/filesudo chown hostinger:hostinger /home/hostinger/ftp/files

    Infine, aggiungi un file di test alla directory che verrà utilizzata quando testeremo tutto in seguito:

    eco "file di esempio vsftpd" | sudo tee /home/hostinger/ftp/files/sample.txt

Fase 4 – Configurazione di vsftpd

Il prossimo passo è configurare vsftpd e il nostro accesso FTP. In questo esempio, consentiremo a un singolo utente di connettersi utilizzando un account shell locale. Le due configurazioni chiave richieste per questo sono già impostate nella configurazione (vsftpd.conf ) file.

  1. Per iniziare, usa il comando nano per aprire vsftpd file di configurazione.
    sudo nano /etc/vsftpd.conf

    Verifica che il contenuto abbia impostazioni simili a questa:

    . . .# Consenti FTP anonimo? (Disabilitato per impostazione predefinita).anonymous_enable=NO## Togli il commento per consentire agli utenti locali di accedere.local_enable=YES. . .

    Nello stesso file rimuoveremo # (decommenta) e assicurati di abilitare write_enable .

    . . .write_enable=SI. . .
  2. Devi anche rimuovere il commento da chroot per garantire che l'utente FTP acceda solo ai file all'interno della directory consentita. Cambia il NO valore su SI , anche. Tieni presente che ci sono due righe come questa e devi decommentarle entrambe.
    . . .chroot_local_user=SÌ. . .
  3. Ci sono alcuni nuovi valori che dovresti aggiungere anche alla fine del file. Il primo è user_sub_token nel percorso directory root_locale . Consentirà alla configurazione di funzionare con l'utente corrente o qualsiasi altro utente aggiunto successivamente:
    user_sub_token=$USERlocal_root=/home/$USER/ftp
  4. Per garantire che sia disponibile una quantità sostanziale di connessioni, limiteremo il numero di porte del file di configurazione:
    pasv_min_port=40000pasv_max_port=50000
  5. In questo tutorial, intendiamo consentire l'accesso caso per caso. Pertanto, imposteremo la configurazione per concedere l'accesso solo agli utenti che hai esplicitamente aggiunto all'elenco:
    userlist_enable=YESuserlist_file=/etc/vsftpd.userlistuserlist_deny=NO

    Quando imposti il ​​flag userlist_deny a NO , solo gli utenti specificati potranno accedere. Al termine, fai clic su CTRL+X seguito da Y per salvarlo, quindi Invio per confermare le modifiche al file.

  6. Infine, creeremo una lista utenti e aggiungeremo un utente al file:
    echo "hostinger" | sudo tee -a /etc/vsftpd.userlist

    Verifica che l'utente sia effettivamente attivo eseguendo il comando seguente:

    cat /etc/vsftpd.userlist

    L'output dovrebbe essere "hostinger" come mostrato in questa schermata:

  7. Riavvia il demone usando il comando seguente per caricare le modifiche alla configurazione:
    sudo systemctl restart vsftpd

Fase 5:rendere sicuro l'FTP

  1. Per impostazione predefinita, FTP non crittografa i dati, quindi utilizzeremo SSL/TLS certificato per proteggere il trasferimento dei dati. Il primo passo è creare il certificato SSL per il server FTP di Ubuntu.
    sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out / etc/ssl/private/vsftpd.pem

    I -giorni flag rende il certificato valido per un anno e abbiamo incluso un 2048-bit privato RSA digita lo stesso comando.

  2. Una volta richiesto, inserisci i dati personali corrispondenti nell'apposito campo.
  3. Al termine della creazione del certificato, apri nuovamente il file di configurazione:
    sudo nano /etc/vsftpd.conf

    La fine del file dovrebbe contenere due righe che iniziano con rsa .

    # rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem# rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

    Ora punteremo il file di configurazione al certificato che abbiamo appena creato. Aggiungi le seguenti directory subito sotto le righe precedenti:

    rsa_cert_file=/etc/ssl/private/vsftpd.pemrsa_private_key_file=/etc/ssl/private/vsftpd.pem
  4. In seguito, abiliteremo SSL e faremo in modo che solo i clienti che hanno un SSL attivo possano contattarci. Basta inserire questa riga:
    ssl_enable=YES

    Quindi, aggiungi le seguenti righe per vietare qualsiasi connessione anonima su SSL:

    allow_anon_ssl=NOforce_local_data_ssl=SIforce_local_logins_ssl=SI

    Configura il server per utilizzare TLS utilizzando:

    ssl_tlsv1=SISSl_sslv2=NOssl_sslv3=NO
  5. Ora cambieremo altre due opzioni. Innanzitutto, disabilita il riutilizzo SSL per evitare che i client FTP si interrompano. In secondo luogo, utilizzeremo suite di crittografia ad alta crittografia, che assicurano che le lunghezze delle chiavi siano uguali o superiori a 128 bit.
    require_ssl_reuse=NOssl_ciphers=HIGH

    Salva di nuovo il file premendo CTRL+X seguito da Y , quindi premi Invio .

  6. Ripartiamo vsftpd ancora una volta per applicare le nuove configurazioni:
    sudo systemctl restart vsftpd

Ottimo lavoro! Ora hai configurato il server FTP sul tuo VPS Ubuntu per funzionare con il protocollo SSL/TLS.

Fase 6:verifica della connessione con FileZilla

Al giorno d'oggi, la maggior parte dei client FTP supporta le configurazioni di crittografia TLS. È un ottimo modo per verificare se il tuo server FTP Ubuntu funziona correttamente. Per testare la connessione, utilizzeremo un client FTP FileZilla.

  1. Per iniziare, avvia FileZilla e fai clic su Gestione sito icona. Quindi, fai clic su Nuovo sito pulsante nella finestra richiesta per inserire i dettagli del server FTP di Ubuntu.
  2. Compila tutte le colonne richieste con le informazioni sul server FTP Ubuntu appena creato. Poiché l'abbiamo configurato per utilizzare TLS, possiamo anche scegliere Utilizza FTP esplicito su TLS opzione. La configurazione finale dovrebbe assomigliare a questa:
  3. Una volta pronto, fai clic su Connetti, e apparirà una schermata che chiede di inserire la password dell'utente FTP. Successivamente, premi OK .
  4. Infine, dovrai verificare il certificato SSL del tuo server FTP su Ubuntu VPS. Dopo la conferma, la directory principale con il file di prova dovrebbe ora apparire sullo schermo.

È tutto! Ora puoi eseguire vari trasferimenti di file dal tuo computer al server FTP di Ubuntu e viceversa.

Conclusione

Avere un server FTP Ubuntu ti semplifica la condivisione di file tra il tuo VPS/server Ubuntu e il computer. È un metodo di trasferimento dati sicuro e affidabile, grazie alla sicurezza SSL/TLS e al protocollo TCP/IP.

In questo tutorial, hai imparato come configurare un server FTP su Ubuntu 18.04 usando vsftpd. Ci sono cinque passaggi che dovresti seguire. Diamo un'occhiata a loro ancora una volta.

  1. Installa vsftpd sul tuo server Ubuntu ed esegui il backup del file di configurazione originale.
  2. Consenti connessioni FTP attraverso il firewall.
  3. Crea una directory utente a cui possono accedere solo utenti specificati.
  4. Configura vsftpd .
  5. Proteggi il server FTP.
  6. Verifica la tua connessione FTP con FileZilla.

Buona fortuna e assicurati di controllare i nostri altri tutorial VPS!


Ubuntu
  1. Come configurare il server FTP sul tuo Raspberry Pi

  2. Come configurare WireGuard VPN su Ubuntu (una guida passo passo)

  3. Come consentire all'utente di utilizzare sudo in Ubuntu Linux

  4. Come installare Ansible su Ubuntu Server 21.04

  5. Come installare il server FTP su Ubuntu 20.04

Come configurare il server proxy Shadowsocks-libev su Ubuntu

Come installare e configurare il server FTP VSFTPD su Ubuntu

Come installare il server FTP su Ubuntu 20.04 LTS

Come configurare un server Apt-cacher?

Come configurare un VPN Pptp sul proprio server Ubuntu?

Come configurare un server FTP con ProFTPD in Ubuntu 18.04