+
+ <div class="section" id="id8">
+ <h2><a class="toc-backref" href=
+ "#id128">11.1 Pacchetti</a></h2>
+
+ <p>Per installare il demone vero e propio si usi il
+ pacchetto <tt class="docutils literal"><span class=
+ "pre">vsftpd</span></tt> , mentre per aver un client da cui
+ fare qualche test sono dipsonibili:</p>
+
+ <ul class="simple">
+ <li><tt class="docutils literal"><span class=
+ "pre">ftp</span></tt> (pacchetto da installare) e' il
+ solito client a riga di comando</li>
+
+ <li><tt class="docutils literal"><span class=
+ "pre">gftp</span></tt> e' un client grafico simile al
+ classico <em>WSftp</em></li>
+
+ <li>Normalmente i file mananager com Konqueror possono
+ lavarorare come client FTP</li>
+ </ul>
+ </div>
+
+ <div class="section" id="sessioni-ftp">
+ <h2><a class="toc-backref" href=
+ "#id129">11.2 Sessioni ftp</a></h2>
+
+ <p>Vediamo alcuni dei comandi di base per gestire una
+ sessione ftp a riga di comando:</p>
+
+ <dl class="docutils">
+ <dt>ftp nome_host</dt>
+
+ <dd>stabilire la connessione all'host, poi verra' chiesta
+ la password dell'utente. Se avete sbagliato utente: user
+ .</dd>
+
+ <dt>help</dt>
+
+ <dd>Lista dei comandi disponibili.</dd>
+
+ <dt>help [nome_comando]</dt>
+
+ <dd>Cosa fa quel comando.</dd>
+
+ <dt>put</dt>
+
+ <dd>Per caricare un file.</dd>
+
+ <dt>get</dt>
+
+ <dd>Per scaricare un file.</dd>
+
+ <dt>ls</dt>
+
+ <dd>Lista dei file disponibili.</dd>
+
+ <dt>cd</dt>
+
+ <dd>Spostarsi in un altra directory.</dd>
+
+ <dt>lcd</dt>
+
+ <dd>Cambio directory in LOCALE.</dd>
+
+ <dt>mput/mget</dt>
+
+ <dd>Per lavorare su file multipli.</dd>
+
+ <dt>prompt</dt>
+
+ <dd>
+ <dl class="first last docutils">
+ <dt>Per uscire dalla modalita' interattiva</dt>
+
+ <dd>
+ <dl class="first last docutils">
+ <dt>(non vi chiede conferma di ogni singola
+ operazione</dt>
+
+ <dd>su ogni singolo file...).</dd>
+ </dl>
+ </dd>
+ </dl>
+ </dd>
+
+ <dt>binary</dt>
+
+ <dd>Entra in modalita' trasferimento binario.</dd>
+
+ <dt>asii</dt>
+
+ <dd>Entra in modalita' trasferimento ascii.</dd>
+
+ <dt>bye</dt>
+
+ <dd>Per chiudere la sessione.</dd>
+ </dl>
+ </div>
+
+ <div class="section" id="configurazione-iniziale">
+ <h2><a class="toc-backref" href=
+ "#id130">11.3 Configurazione
+ iniziale</a></h2>
+
+ <p>Il demone di vsftpd e' immediatamente disponibile ma
+ solo in modalita' anonima (si pensi a uno scenario in cui
+ si vuole rendere disponibili dei files tramite FTP) e in
+ <em>sola lettura</em>. Per accedere al servizio si usi
+ quini come utente <tt class="docutils literal"><span class=
+ "pre">anonymous</span></tt> (la passwords in genere e' come
+ consuetudine il propio indirizzo email), la cui
+ <em>home</em> directory sara' <tt class=
+ "docutils literal"><span class="pre">/home/ftp/</span></tt>
+ (<tt class="docutils literal"><span class=
+ "pre">/srv/ftp</span></tt> in Squeeze):</p>
+ <pre class="literal-block">
+zoo:~# ftp localhost
+Connected to localhost.localdomain.
+220 (vsFTPd 2.0.7)
+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> ls
+200 PORT command successful. Consider using PASV.
+150 Here comes the directory listing.
+-rw-r--r-- 1 0 0 0 Feb 03 17:17 anoni
+226 Directory send OK.
+</pre>
+ </div>
+
+ <div class="section" id="abilitare-gli-utenti-locali">
+ <h2><a class="toc-backref" href=
+ "#id131">11.4 Abilitare gli utenti
+ locali</a></h2>
+
+ <p>Per poter modificare le impostazioni iniziali, ad
+ esempio per permettere l'accesso agli utenti del server, si
+ modifichera' il file <tt class=
+ "docutils literal"><span class=
+ "pre">/etc/vsftpd.conf</span></tt>, a seguire le
+ impostazioni fondamentali ed altre interessanti per rendere
+ il server accessibile da utenti di sistema (autenticati
+ tramite la loro password, quindi con PAM) per il tipico
+ utilizzo di web designers che debbano pubblicare le loro
+ pagine web (e non si siano fatti convincere a usare
+ SFTP!):</p>
+ <pre class="literal-block">
+# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
+anonymous_enable=NO
+# Disabilitiamo l'utente anonimo
+
+# Uncomment this to allow local users to log in.
+local_enable=YES
+# Accesso garantito agli utenti di sistema
+
+# Uncomment this to enable any form of FTP write command.
+write_enable=YES
+# Permettiamo agli utenti di caricare documenti nella loro home
+
+# You may fully customise the login banner string:
+ftpd_banner=Benvenuti al servizio ftp del sito example.com
+</pre>
+
+ <p>Per abilitare i cambiamenti si proceda a riavviare il
+ server: <tt class="docutils literal"><span class=
+ "pre">/etc/init.d/vsftpd</span> <span class=
+ "pre">restart</span></tt> e si monitorizzi il file di log
+ <tt class="docutils literal"><span class="pre">tail</span>
+ <span class="pre">-f</span> <span class=
+ "pre">/var/log/vsftpd.log</span></tt> per controllarne il
+ funzionamento (e anche <tt class=
+ "docutils literal"><span class=
+ "pre">/var/log/syslog</span></tt> nel caso non si riuscisse
+ a far partire correttamente il servizio.</p>
+
+ <p>NOTE: Se non riuscite ad ottenere un <em>directory
+ listing</em> (<tt class="docutils literal"><span class=
+ "pre">ls</span></tt>) ottenendo un errore <tt class=
+ "docutils literal"><span class="pre">500</span>
+ <span class="pre">Illegal</span> <span class=
+ "pre">PORT</span> <span class="pre">command?</span>
+ <span class="pre">FTP</span> <span class=
+ "pre">error</span></tt> abilitare la modalita' passiva col
+ comando ftp <tt class="docutils literal"><span class=
+ "pre">passive</span></tt>.</p>
+ </div>
+
+ <div class="section" id="jail-chroot">
+ <h2><a class="toc-backref" href=
+ "#id132">11.5 Jail chroot</a></h2>
+
+ <p>Si puo' impedire all'utente di spostarsi arbitrariamente
+ per il file system del servere visualizzare il contenuto
+ delle directory, ad esempio la cartella <tt class=
+ "docutils literal"><span class="pre">/etc</span></tt>,
+ confinandolo in una jail chroot limitata alla sua home
+ directory:</p>
+ <pre class="literal-block">
+# 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
+</pre>
+
+ <p>Generalmente un utente di sistema con il solo accesso
+ FTP non dovrebbe avere la possibilita' di poter navigare
+ liberamente per il file system del server, esponendo file
+ di configurazione e quant'altro l'utente potrebbe trarre
+ utili informazioni sul quali software siano installati e di
+ che tipo:</p>
+ <pre class="literal-block">
+Remote system type is UNIX.
+Using binary mode to transfer files.
+ftp> pwd
+257 "/"
+ftp> cd /etc/
+550 Failed to change directory.
+</pre>
+ </div>
+
+ <div class="section" id="permessi-sul-filesystem">
+ <h2><a class="toc-backref" href=
+ "#id133">11.6 Permessi sul
+ filesystem</a></h2>
+
+ <p>Come accennato precedentemente e' opportuno che i
+ filesystems sui quali un utente puo' scrivere o modificare
+ il contenuto non abbiano i privilegi di eseguibilita' e
+ suid, nel nonstro caso vsftpd lavora sull'intera <tt class=
+ "docutils literal"><span class="pre">/home/</span></tt>
+ directory quindi avremo in <tt class=
+ "docutils literal"><span class=
+ "pre">/etc/fstab</span></tt>:</p>
+ <pre class="literal-block">
+/dev/mapper/store-homes /home ext3 rw,nosuid,noexec 0 2
+</pre>
+ </div>
+
+ <div class="section" id="shell-dell-utente">
+ <h2><a class="toc-backref" href=
+ "#id134">11.7 Shell dell'utente</a></h2>
+
+ <p>Come gia' detto piu' volte le passwords degli utenti
+ viaaggiano in rete in chiaro, ponendo un grave problema di
+ sicurezza. Sara' quindi opportuno disbilitare la shell di
+ questi utenti, tramite il flag <tt class=
+ "docutils literal"><span class="pre">--shell</span>
+ <span class="pre">/bin/false</span></tt> in fase di
+ creazione degli utenti:</p>
+ <pre class="literal-block">
+# adduser --shell /bin/false nome_utente
+</pre>
+
+ <p>Oppure correggiendo manualmente il file <tt class=
+ "docutils literal"><span class=
+ "pre">/etc/passwd</span></tt> per modificare l'inpostazione
+ della shell dell'utente:</p>
+ <pre class="literal-block">
+nome_utente:x:1001:1001::/var/spool/postfix:/bin/bash
+# la riga sopra deve essere trasformata in
+nome_utente:x:1001:1001::/var/spool/postfix:/bin/false
+</pre>
+
+ <p>Sui sistemi DEbian REcenti sara' necessario aggiungere
+ <tt class="docutils literal"><span class=
+ "pre">/bin/false</span></tt> all'elenco delle shell
+ valide.</p>
+
+ <p><tt class="docutils literal"><span class=
+ "pre">/etc/shells</span></tt></p>
+ <pre class="literal-block">
+...
+/bin/false
+</pre>
+ </div>
+
+ <div class="section" id="altre-opzioni">
+ <h2><a class="toc-backref" href=
+ "#id135">11.8 Altre opzioni</a></h2>
+
+ <dl class="docutils">
+ <dt>xferlog_enable=YES</dt>
+
+ <dd>Verra' tenuto un file di log <tt class=
+ "docutils literal"><span class=
+ "pre">/var/log/vsftpd.log</span></tt> degli upload e
+ download sul server.</dd>
+
+ <dt>hide_ids=YES</dt>
+
+ <dd>Nasconde le userid e groupid mascherandole con
+ <tt class="docutils literal"><span class=
+ "pre">ftp</span></tt> .</dd>
+
+ <dt>anon_root=/home/ftp</dt>
+
+ <dd>Home directory dell'utente anonimo.</dd>
+
+ <dt>write_enable=YES</dt>
+
+ <dd>Permette agli utenti di eseguire i comandi che
+ possono modificare il filesystem: STOR, DELE, RNFR, RNTO,
+ MKD, RMD, APPE e SITE .</dd>
+
+ <dt>idle_session_timeout=600</dt>
+
+ <dd>Permette agli utenti di restare connessi piu' a
+ lungo, utile per i webdesigners che passano intere
+ giornate connessi al server.</dd>
+ </dl>
+ </div>