{"id":140,"date":"2015-02-11T12:27:01","date_gmt":"2015-02-11T12:27:01","guid":{"rendered":"https:\/\/edulab.unitn.it\/tecnici\/?p=140"},"modified":"2015-02-11T12:27:01","modified_gmt":"2015-02-11T12:27:01","slug":"configurazione-vsftp","status":"publish","type":"post","link":"https:\/\/edulab.unitn.it\/tecnici\/configurazione-vsftp\/","title":{"rendered":"Configurazione vsftp"},"content":{"rendered":"<p>Una guida rapida e (spero completa) alla installazione e all&#8217;uso di un server FTP usando vsftpd. La traccia base mi \u00e8 stata data dall&#8217;articolo gi\u00e0 pubblicato su questo sito, ed ho cercato di completarlo e di chiarire alcuni punti che mi sembrano importanti.<\/p>\n<p>In questa guida, riferir\u00f2 di come utilizzare il ftp server per pi\u00f9 utenti accreditati.<\/p>\n<h4>\ufffc<br \/>\nINSTALLAZIONE<\/h4>\n<p>Niente di pi\u00f9 facile:<\/p>\n<pre>apt-get vsftpd<\/pre>\n<h4>\ufffc<br \/>\nPRIMA CONFIGURAZIONE<\/h4>\n<p>Alcune cose da ricordare:<\/p>\n<ol>\n<li>Innanzitutto una cosa che TUTTE le altre guide si dimenticano (!!!) di specificare. La cartella usata come \u201croot\u201d del nostro sito ftp \u00e8 la seguente: \/var\/ftp<\/li>\n<li>Fondamentale: ogni utente del sito FTP, deve essere definito come utente del sistema con tutto quello che ne consegue (di positivo).<\/li>\n<li>Non appena installato, vsftpd \u00e8 gi\u00e0 perfettamente funzionante, come server per un utente denominato (con molta fantasia) \u201cftp\u201d: potete eseguire il test semplicemente digitando da console:\n<pre>ftp 192.168.1.4\u00a0\r\nusername: ftp\u00a0\r\npassword: ftp<\/pre>\n<\/li>\n<\/ol>\n<p>Visto, funziona!<\/p>\n<h4>\ufffc<br \/>\nPREPARAZIONE E PERSONALIZZAZIONE DELL&#8217;AMBIENTE DI LAVORO<\/h4>\n<p>Innanzitutto occorre creare la cartella di root del server (quella nella quale accederanno gli utenti, per capirci).<\/p>\n<p>Da root:<\/p>\n<pre>mkdir \/var\/ftp<\/pre>\n<p>Se si vuole creare la cartella in un altro disco (Es: il sistema linux su hda1, il disco archivio \u00e8 sda1), si pu\u00f2 creare una cartella sul secondo disco (Es: \/mnt\/sda1\/ftproot), e creare un link simbolico alla cartella ftp:<\/p>\n<pre>ln -s \/mnt\/sda1\/ftproot \/var\/ftp<\/pre>\n<p>Fatto questo, occorre personalizzare il file di configurazione di vsftpd (\/etc\/vsftpd.conf): questo file contiene tutti i parametri necessari per il funzionamento del server.<br \/>\nEsistono molti parametri di configurazione, per i quali vi rimando alla documentazione su google\u2026 Quello riportato di seguito, \u00e8 usempio di file \/etc\/vsftpd.conf<br \/>\nPrima per\u00f2 mi faccio una copia del file standard, non si sa mai:<\/p>\n<pre>cp \/etc\/vsftpd.conf \/etc\/vsftpd.conf.old<\/pre>\n<p>Per editare i files, io uso \u201cnano\u201d ma potete editarli con l&#8217;editor che preferite. Inserire questi parametri, cancellando tutto il contenuto precedente (l&#8217;avete fatta la copia, vero?)<\/p>\n<pre>#### \/etc\/vsftpd.conf ###\r\n \r\n anonymous_enable=NO\r\n anon_upload_enable=NO\r\n anon_mkdir_write_enable=NO\r\n local_enable=YES\r\n write_enable=YES\r\n local_umask=022\r\n dirmessage_enable=YES\r\n xferlog_enable=YES\r\n xferlog_file=\/var\/log\/vsftpd.log\r\n xferlog_std_format=YES\r\n ascii_upload_enable=YES\r\n ascii_download_enable=YES\r\n ls_recurse_enable=NO\r\n listen_port=21\r\n connect_from_port_20=NO\r\n listen=YES\r\n background=YES\r\n # definiamo una chroot() jail\r\n chroot_local_user=YES\r\n check_shell=NO\r\n userlist_deny=NO\r\n # definiamo una lista di utenti autorizzati\r\n # nel file \/etc\/vsftpd.user_list\r\n userlist_enable=YES\r\n userlist_file=\/etc\/vsftpd.user_list<\/pre>\n<h4>\ufffc<br \/>\nCREAZIONE DEGLI UTENTI<\/h4>\n<p>Ripeto, visto che \u00e8 fondamentale: ogni utente del server FTP \u00e8 anche un utente del sistema linux! Aggiungiamo adesso il primo utente linux (pippo), e creiamo cartella relativa sulla cartella ftp.<\/p>\n<pre>mkdir \/var\/ftp\/pippo\r\nuseradd -d \/var\/ftp\/pippo pippo\r\nchown \/var\/ftp\/pippo pippo<\/pre>\n<p>Posso creare tutti gli utenti che voglio adesso o posso anche aggiungerli successivamente.<br \/>\nUna nota importante: il parametro chroot_local_user=YES visto sopra, nel file \/etc\/vsftpd.conf , fa in modo che nel momento dell&#8217;accesso, l&#8217;utente venga indirizzato (chroottato, oserei dire) nella propria cartella, definita nel momento della creazione dell&#8217;utente stesso.<\/p>\n<p>Problema: come faccio a dire a vsftpd quali utenti sono ammessi all&#8217;accesso nl nostro server? Semplicissimo, basta creare un file chiamato \/etc\/vsftpd.user_list contenente la lista degli utenti ammessi:<\/p>\n<pre>### \/etc\/vsftpd.user_list ###\r\n# file \/etc\/vsftpd.user_list\r\n# Lista Utenti Autorizzati\r\n pippo\r\n pluto\r\n topolino<\/pre>\n<p>Naturalmente, ogni volta che aggiungo un utente, dovr\u00f2 aggiungerlo a mano nel file di cui sopra, pena il mancato riconoscimento da parte del server (quante nottate si possono perdere per un errore come questo!!!!!)<\/p>\n<p>Ad ogni modifica, si deve far riavviare il server FTP:<\/p>\n<pre>\/etc\/init.d\/vsftpd restart<\/pre>\n<h4>LA CILIEGINA SULLA TORTA!<\/h4>\n<p>Una volta configurato il server FTP, e testato in tutte le funzionalit\u00e0, sarebbe bello e professionale aggiungere un messaggio iniziale di benvenuto. Questo messaggio sar\u00e0 contenuto in un semplice file di testo (\/etc\/welcome.banner).<\/p>\n<p>Aggiungere al file \/etc\/vsftpd.conf le seguenti righe:<\/p>\n<pre># Aggiunge un messaggio iniziale\r\n banner_file=\/etc\/welcome.banner<\/pre>\n<p>Poi creare il file ti puro testo (\/etc\/welcome.banner)<\/p>\n<pre>Benvenuti sul server FTP di Mario Rossi.\r\n Inserisci i tuoi dati per l'autenticazione\r\n Tutte le attivita sono monitorate.\r\n Ti auguriamo un buon lavoro....\r\n<\/pre>\n<p>(o qualsiasi altra cosa vi venga in mente!)<\/p>\n<p>e far ripartire il server:<\/p>\n<pre>\/etc\/init.d\/vsftpd restart<\/pre>\n<p>Alla connessione, vedremo anche il messaggio di accesso\u2026<\/p>\n<p>\ufffc<br \/>\nImpostazioni personalizzate<\/p>\n<p>Se vuoi redirigere la cartella dell&#8217;anonimous nella cartella di un utente cambia il file \/etc\/passwd la voce utente ftp assegnando la home dell&#8217;utente Per evitare l&#8217;ssh imposta la shell su \/bin\/false<\/p>\n<pre>ftp:x:106:65534::\/home\/Pippo\/:\/bin\/false\r\nPippo:x:1003:100::\/home\/Pippo\/:\/bin\/false<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Una guida rapida e (spero completa) alla installazione e all&#8217;uso di un server FTP usando vsftpd. La traccia base mi \u00e8 stata data dall&#8217;articolo gi\u00e0 pubblicato su questo sito, ed [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,9],"tags":[],"class_list":["post-140","post","type-post","status-publish","format-standard","hentry","category-how-to","category-linux"],"_links":{"self":[{"href":"https:\/\/edulab.unitn.it\/tecnici\/wp-json\/wp\/v2\/posts\/140","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/edulab.unitn.it\/tecnici\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/edulab.unitn.it\/tecnici\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/edulab.unitn.it\/tecnici\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/edulab.unitn.it\/tecnici\/wp-json\/wp\/v2\/comments?post=140"}],"version-history":[{"count":1,"href":"https:\/\/edulab.unitn.it\/tecnici\/wp-json\/wp\/v2\/posts\/140\/revisions"}],"predecessor-version":[{"id":141,"href":"https:\/\/edulab.unitn.it\/tecnici\/wp-json\/wp\/v2\/posts\/140\/revisions\/141"}],"wp:attachment":[{"href":"https:\/\/edulab.unitn.it\/tecnici\/wp-json\/wp\/v2\/media?parent=140"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/edulab.unitn.it\/tecnici\/wp-json\/wp\/v2\/categories?post=140"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/edulab.unitn.it\/tecnici\/wp-json\/wp\/v2\/tags?post=140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}