Realizzare un server FTP con VSFTPD e DNS dinamico

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Edit-clear-history.png Attenzione. Questa guida è da considerarsi abbandonata, per via del tempo trascorso dall'ultima verifica.

Potrà essere resa obsoleta, previa segnalazione sul forum, se nessuno si propone per l'adozione.


Debian-swirl.png Versioni Compatibili

Debian 8 "jessie"
Document-page-setup.png Attenzione: questo articolo è ancora incompleto e in fase di scrittura da parte del suo autore.

Sentitevi liberi di contribuire, proponendo modifiche alla guida tramite l'apposita pagina di discussione, in modo da non interferire con il lavoro portato avanti sulla voce. Per altre informazioni si rimanda al template.


Premessa

Lo scopo principale di questa guida è quello di rendere fruibile a chiunque (e nel caso specifico agli utenti di Debian, nonchè di tutte le sue distro derivate) la possibilità di poter realizzare un server FTP che dia libero accesso ai contenuti condivisi su di esso.
E' inoltre possibile leggere qui la versione più estesa e completa della guida pensata e concepita come un progetto che sia più vicino agli utenti che non hanno alcun tipo di familiarità con ambienti UNIX/Linux e che gli consenta, comunque, di realizzare da zero un server FTP (completamente configurato), partendo dall'installazione e configurazione di Debian, fino ad arrivare alla sua immissione nella Grande Rete, senza tralasciare aspetti e concetti fondamentali, per un utente nuovo al mondo Linux (come, ad esempio, l'utilizzo del terminale e dei suoi comandi più comuni ed importanti), trattati in modo semplice e discorsivo.
In conclusione, entrambe le guide, portano allo stesso risultato, partendo, però, da due punti di vista differenti: la prima, questa, è pensata per gli utenti già navigati nel mondo di Debian, del terminale e del suo utilizzo, delle reti e così via, la seconda, invece, non da nulla per scontato e segue passo passo l'utente che si è appena avvicinato al mondo di Linux.

Fase preliminare

In questa sezione saranno vagliati i requisiti necessari per la corretta installazione del server FTP, nonché per il suo corretto funzionamento:

  • N.B.: Da questo momento in avanti, TUTTI I COMANDI saranno lanciati come super-utente, quindi bisognerà loggarsi come utente radice oppure bisognerà eseguire i comandi premettendo sudo ad ogni comando.
    • N.B. II: Nel caso in cui sul sistema non sia presente sudo bisognerà procedere al suo scaricamento ed alla sua installazione tramite il comando:
      # apt-get install sudo
      e procedere all'inserimento dell'utente corrente nella lista dei sudoers.

Per ulteriori informazioni sulla procedura da seguire per l'inserimento dell'utente corrente nella lista dei sudoers ci si può rifare al manuale di sudo, oppure editare il file in /etc/sudoers con permessi di root ed aggiungere i permessi all'utente in uso.
Ogni ulteriore informazione è reperibile a questo indirizzo.

Verifica dei pre-requisiti e del software necessario

Per poter realizzare quanto proposto dalla guida, è strettamente necessario il possesso di due pacchetti fondamentali: make e gcc.

Se non sono installati sul sistema, bisogna procedere alla loro acquisizione ed installazione tramite i comandi:

# apt-get install make 
# apt-get install gcc


Tali pacchetti serviranno per installare e configurare il software che si occuperà di aggiornare l'indirizzo IP della macchina qualora questo venga cambiato dal DHCP.
E' inoltre opportuno sincerarsi che il router a cui si appoggerà il server fornisca la funzione di forwarding degli indirizzi, senza la quale il server sarà accessibile solamente dalla rete locale.

Scaricamento ed installazione di VSFTPD

Per questa guida è stato scelto l'utilizzo dell'implementazione VSFPTD per il protocollo FTP, che è possibile scaricare ed installare tramite il comando:

# apt-get install vsftpd


Una volta scaricato ed installato il pacchetto, il server sarà già attivo ed impostato con la sua configurazione di default.

E' inoltre possibile verificare lo stato del server tramite il comando:

# /etc/init.d/vsftpd status


Configurazione di VSFTPD

Il file di configurazione di VSFTPD è collocato nella directory /etc ed è possibile leggerne la configurazione di default tramite il comando

# less /etc/vsftpd.conf


Poichè la configurazione di default non va bene per gli scopi di questa guida, è necessario cambiarne il contenuto settando delle regole ad-hoc per lo scopo prefissato: ovvero rendere il server raggiungibile dall'esterno e fare in modo che sia possibile scaricarne gli elementi senza che gli utenti remoti e/o locali possano accedere in scrittura alla directory principale del server e quindi poter caricare a loro volta files e/o modificarli.
Tutta la documentazione relativa alle regole di VSFTPD è possibile trovarla al seguente link.

Prima di settare le nuove regole, sarebbe opportuno effettuare una copia di backup del file di configurazione originale tramite il comando:

# cp /etc/vsftpd.conf /home/vostronomeutente/Documenti

(o in qualsiasi altro percorso che sia di vostro gradimento).

Effettuata la copia del file, è possibile modificare il file contenuto nella directory /etc, che sarà quello effettivamente letto da VSFTPD.

Prima di procedere alla modifica, è necessario stoppare il demone vsftpd tramite il comando

# /etc/init.d/vsftpd stop

a questo punto bisognerà eliminare il contenuto del file ed incollare al suo interno le seguenti regole:

listen=YES
anon_root=/var/ftp/TEST
anonymous_enable=YES
local_enable=NO
hide_ids=YES
no_anon_password=YES
use_localtime=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
idle_session_timeout=600
data_connection_timeout=120
max_per_ip=2
ftpd_banner=Welcome to TEST FTP Server
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd 

una volta copiate le regole, è possibile salvare il file e ri-avviare il demone tramite il comando:

# /etc/init.d/vsftpd restart

ed è inoltre possibile sincerarsi dello stato del demone utilizzando, ancora una volta, il comando:

# /etc/init.d/vsftpd status


Resta inteso che, dopo aver letto la documentazione ufficiale sulle regole di VSFTPD e la loro relativa sintassi, sarete in grado di apportare modifiche consistenti al file che abbiamo appena editato, essendo consapevoli del fatto che il comportamento del vostro server cambierà in base alle nuove regole che editerete.

Configurazione dei permessi: utente e directory per VSFTPD

In questa fase ci si occuperà del corretto settaggio dei permessi utente per la home directory del server, collocata nel percorso: /var/ftp/TEST, come da impostazione editata nel file di configurazione appena creato (nulla vieta di modificare tale percorso nel file di configurazione, nonché di modificare i nomi delle directory, avendo cura, in seguito, di cambiare i nomi scelti al posto di quelli utilizzati in questa guida).

Prima di tutto è necessario creare le sotto-directory /ftp, e /ftp/TEST in /var: pertanto, tramite il comando:

# mkdir /var/ftp 
# mkdir /var/ftp/TEST

verranno create le due sotto-directory in /var.
Create le directory, bisogna assegnare il permesso di lettura ed esecuzione per il gruppo di utenti ftp alla home directory, pertanto, spostandoci nella directory /var/ftp, bisognerà lanciare il comando:

# chgrp ftp TEST/

verificando, tramite il comando:

# ls -al

l'avvenuta assegnazione dei permessi.

Verifica della configurazione di VSFTPD sulla la rete locale

A questo punto è possibile creare un file di prova nella home directory per verificare che, dalla rete locale, sia accessibile, visibile e scaricabile.

Ad esempio, tramite il comando (lanciato nella directory /var/ftp/TEST):

# nano prova.txt

è possibile creare un file testuale che, una volta salvato, sarà posizionato nella home del server.
Per verificare che il file sia accessibile e scaricabile dalla rete locale, se non è ancora stato fatto, è necessario determinare l'indirizzo IP locale del server tramite il comando:

# ifconfig

ed accedere, tramite browser, all'indirizzo: ftp://indirizzolocale, in questo modo è possibile verificare che il file sia presente ed accessibile, nonché, visualizzabile tramite il browser.

DNS Dinamico

Configurazione del forwarding

Scelta del provider DDNS

Scaricamento e configurazione del DUC

Verifica della raggiungibilità del server dalla rete Internet