
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>BitTrack &#187; server</title>
	<atom:link href="http://www.bittrack.it/archives/tag/server/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bittrack.it</link>
	<description>BitTrack.it tratta di Informatica, Programmazione, Reti, Hack, Trucchi, Tutorial, Webdesign e simili.</description>
	<lastBuildDate>Wed, 01 Sep 2010 06:07:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>FTP Server sicuro con &#8220;vsftpd&#8221;</title>
		<link>http://www.bittrack.it/archives/ftp-server-sicuro-con-vsftpd/</link>
		<comments>http://www.bittrack.it/archives/ftp-server-sicuro-con-vsftpd/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 20:03:04 +0000</pubDate>
		<dc:creator>Don Limo</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[demone]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[ftpes]]></category>
		<category><![CDATA[ftps]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[vsftpd]]></category>

		<guid isPermaLink="false">http://www.bittrack.it/?p=73</guid>
		<description><![CDATA[<div><img width="200" height="169" src="http://www.bittrack.it/wp-content/uploads/2009/10/ftp1.png" class="attachment-post-thumbnail wp-post-image" alt="ftp1" title="ftp1" /></div>Desiderate salvare i vostri file dall&#8217;ufficio, o qualunque altro posto, direttamente sul vostro computer di casa senza dover fare affidamento su scomodi CD, DVD e penne USB o imbattervi nei limiti dei servizi di web hosting come Megaupload o RapidShare? Volete fare tutto questo in totale sicurezza? Quello che fa per voi è un server [...]]]></description>
			<content:encoded><![CDATA[<div><img width="200" height="169" src="http://www.bittrack.it/wp-content/uploads/2009/10/ftp1.png" class="attachment-post-thumbnail wp-post-image" alt="ftp1" title="ftp1" /></div><p>Desiderate salvare i vostri file dall&#8217;ufficio, o qualunque altro posto, direttamente sul vostro computer di casa senza dover fare affidamento su scomodi CD, DVD e penne USB o imbattervi nei limiti dei servizi di web hosting come Megaupload o RapidShare? Volete fare tutto questo in totale sicurezza? Quello che fa per voi è un server <a href="http://it.wikipedia.org/wiki/File_Transfer_Protocol" target="_blank">FTP</a>, facilmente installabile e configurabile, con tutta la sicurezza che offre un sistema unix-like come <a href="http://www.debian.org/" target="_blank">Debian</a> potenziato dal demone vsftpd.<span id="more-73"></span></p>
<p>Un server FTP può sembrare un protocollo obsoleto dato che la prima specifica risale al 1971, invece rimane tutt&#8217;oggi uno dei più usati in tutto il mondo. Inoltre presenta notevoli vantaggi rispetto ad i normali metodi di salvataggio dei dati sopra citati:</p>
<ul>
<li>Nessun limite sulla dimensione dei file che si vuole salvare.</li>
<li>Per accedere al server FTP necessitate solamente di un normalissimo browser o di un client ftp.</li>
<li>Tutela della privacy non dovendo affidare i vostri file a terzi. (Ad esempio Megaupload o RapidShare)</li>
</ul>
<p>Tuttavia il server FTP sarà accessibile solamente quando il vostro computer sarà acceso e collegato ad internet. Inoltre, la banda di download/upload sarà direttamente proporzionale alla capacità della vostra linea ADSL o qualunque altro servizio di banda larga disponiate.</p>
<h2>Avvertenza</h2>
<p>Questa guida è stata scritta prendendo in considerazione la versione 2.0.7-1 di vsftpd con sistema operativo Debian GNU/Linux. È possibile quindi che vi siano differenze con altre versioni del demone, e molto più probabilmente, con altre <a href="http://it.wikipedia.org/wiki/Distro" target="_blank">distro</a>. Nonostante questa guida sia molto semplice da seguire e capire, ci tengo a precisare che è consigliabile avere delle conoscenze di base per quanto riguarda il mondo linux, e delle conoscenze generali nel mondo dell&#8217;informatica, in modo da tutelare la sicurezza del vostro server, e di conseguenza la vostra. Bene, e adesso cominciamo!</p>
<h2>Cos&#8217;è vsftpd?</h2>
<p>vsftpd, acronimo di &#8220;<a href="http://vsftpd.beasts.org/" target="_blank">Very Secure FTP Daemon</a>&#8220;, è un demone che svolge il ruolo FTP Server su sistemi operativi unix-based, distribuito sotto licenza <a href="http://it.wikipedia.org/wiki/GNU_General_Public_License" target="_blank">GPL</a>. È pensato per essere sicuro, stabile ed estremamente veloce.</p>
<p>Presenta molti punti di forza che invogliano certamente l&#8217;utente ad installarlo, tra i quali troviamo:</p>
<ul>
<li>Possibilità di avvio sia da inetd, sia in standalone.</li>
<li>Alta semplicità di configurazione.</li>
<li>Possibilità di creare <a href="http://www.bittrack.it/archives/come-impostare-utenti-virtuali-in-vsftpd-su-debian" target="_blank">utenti virtuali</a>.</li>
<li>Controllo della banda.</li>
<li>Controllo degli accessi IP.</li>
<li>Supporto al nuovo protocollo di rete <a href="http://it.wikipedia.org/wiki/Ipv6" target="_blank">IPv6</a>.</li>
<li>Supporto al Secure Sockets Layer e Transport Layer Security (<a href="http://it.wikipedia.org/wiki/Transport_Layer_Security" target="_blank">SSL e TLS</a>) per FTPS e FTPES.</li>
</ul>
<h2>Installazione e configurazione</h2>
<p>L&#8217;installazione è semplicissima, è sufficiente eseguire il seguente comando.</p>
<p><code># apt-get install vsftpd</code><br />
Una volta completata l&#8217;operazione, il server FTP è già perfettamente funzionante. Per testarlo potete accedere come utente &#8220;anonymous&#8221; o &#8220;ftp&#8221;: entrambi vengono riconosciuti di default come utenti per il login anonimo. Adesso è giunto il momento di rifinire i dettagli del nostro server, e per farlo, è necessario lavorare sul file principale di configurazione di vsftpd. Lo possiamo trovare in <em>/etc/vsftpd.conf</em>.</p>
<p><code># nano /etc/vsftpd.conf</code><br />
Di seguito vado a riportarvi le opzioni principali con la relativa spiegazione ed il mio personale consiglio su come debbano essere impostate. Ovviamente, nessuno vi vieta di fare diversamente da quanto da me consigliato, soprattutto per chi abbia delle esigenze particolari. Affinché le impostazioni funzionino, le opzioni dovranno essere inserite nel file di configurazione se non sono già presenti.</p>
<p><strong>listen</strong></p>
<p style="padding-left: 30px;"><em>listen=YES</em><br />
Se abilitato, vsftpd si avvierà in modalità standalone e si prenderà carico dell&#8217;ascolto e della gestione delle connessioni in ingresso. Di conseguenza non dovrà essere avviato da <a href="http://it.wikipedia.org/wiki/Inetd" target="_blank">inetd</a> o demoni simili.</p>
<p><strong>listen_ipv6</strong></p>
<p style="padding-left: 30px;"><em>listen_ipv6=NO</em><br />
Stessa storia del parametro listen, con la differenza che vsftpd si metterà in ascolto su <a href="http://it.wikipedia.org/wiki/Socket_%28reti%29" target="_blank">socket</a> IPv6.</p>
<p><strong>anonymous_enable</strong></p>
<p style="padding-left: 30px;"><em>anonymous_enable=NO</em><br />
Stabilisce se i logins anonimi sono consentiti o meno.</p>
<p><strong>local_enable</strong></p>
<p style="padding-left: 30px;"><em>local_enable=YES</em><br />
Se abilitato, gli utenti presenti nel file <em>/etc/passwd</em> (o qualsivoglia file di configurazione <a href="http://it.wikipedia.org/wiki/Pluggable_authentication_modules" target="_blank">PAM</a>) potranno loggarsi sul server. Questa opzione <span style="text-decoration: underline;">deve</span> essere abilitata per il funzionamento in modalità non-anonima.</p>
<p><strong>write_enable</strong></p>
<p style="padding-left: 30px;"><em>write_enable=YES</em><br />
Stabilisce se i comandi che operano sul filesystem sono consentiti o meno. Alcuni esempi sono: STOR, DELE, RNFR, RNTO, MKD, RMD, APPE e SITE.</p>
<p><strong>anon_upload_enable</strong></p>
<p style="padding-left: 30px;"><em>anon_upload_enable=NO</em><br />
Se abilitato, gli utenti anonimi saranno abilitati ad effettuare uploads sul server sotto certe condizioni. Perché funzioni, l&#8217;opzione <em>write_enable</em> deve essere attiva e l&#8217;utente &#8220;ftp&#8221; deve avere permessi di scrittura sulle cartelle nelle quali volete permettere gli uploads.<br />
<em>Abilitate questa opzione con prudenza.</em></p>
<p><strong>xferlog_enable</strong></p>
<p style="padding-left: 30px;"><em>xferlog_enable=YES</em><br />
Se abilitato, verrà creato un log dettagliato di tutti i downloads e gli uploads. Di default, il file si trova in <em>/var/log/vsftpd.log</em>, tuttavia potete cambiarne la posizione a vostro piacimento con l&#8217;opzione <em>vsftpd_log_file</em>.</p>
<p><strong>nopriv_user</strong></p>
<p style="padding-left: 30px;"><em>nopriv_user=nobody</em><br />
Specifica l&#8217;utente con il quale verrà avviato il server. È preferibile che sia un utente dedicato e totalmente non-privilegiato, di conseguenza fate attenzione all&#8217;utente che scegliete.</p>
<p><strong>ftpd_banner</strong></p>
<p style="padding-left: 30px;"><em>ftpd_banner=quello che vi pare</em><br />
Questa opzione mostra del testo da voi specificato quando qualcuno si connette al server. Se il testo è lungo, è preferibile usare l&#8217;opzione <em>banner_file</em> (es: banner_file=/etc/vsftpd.banner_file) per specificare un file a parte piuttosto che riempire il file di configurazione.</p>
<p><strong>chroot_local_user</strong></p>
<p style="padding-left: 30px;"><em>chroot_local_user=YES</em><br />
Serve a &#8220;bloccare&#8221; gli utenti nella loro home directory impedendo che possano risalire l&#8217;albero delle cartelle.</p>
<p><strong>delete_failed_uploads</strong></p>
<p style="padding-left: 30px;"><em>delete_failed_uploads=YES</em><br />
Cancella i frammenti di file di un upload non andato a buon fine.</p>
<p><strong>userlist_enable</strong></p>
<p style="padding-left: 30px;"><em>userlist_enable=YES</em><br />
Se abilitato, vsftpd caricherà una lista di usernames presi dal file specificato da <em>userlist_file</em>. Se un utente tenta di loggarsi usando uno degli username presenti nella lista, gli verrà negato l&#8217;accesso prima di richiedergli la password. Questa opzione può essere utile per prevenire che vengano trasmesse passwords in chiaro. Leggi con attenzione anche <em>userlist_deny</em>.</p>
<p><strong>userlist_deny</strong></p>
<p style="padding-left: 30px;"><em>userlist_deny=YES</em><br />
Questa opzione viene presa in considerazione solo se <em>userlist_enable</em> è attiva. Se impostata su YES, stabilisce che la lista di usernames caricati da <em>userlist_file</em>, diventa una lista di utenti ai quali negare l&#8217;accesso. In caso contrario diventa una lista di utenti ai quali consentire il login.</p>
<p><strong>max_clients</strong></p>
<p style="padding-left: 30px;"><em>max_clients=100</em><br />
Se vsftpd parte in modalità standalone, questa opzione stabilisce il numero massimo di utenti che possono connettersi simultaneamente al server. Settando &#8220;0&#8243;, si stabilisce un numero illimitato. Se volete limitare gli utenti, scegliete tale numero in base alla banda alla quale avrebbe accesso il server.</p>
<p><strong>local_max_rate</strong></p>
<p style="padding-left: 30px;"><em>local_max_rate=0</em><br />
Imposta la velocità massima <u>in bytes</u> al secondo per gli utenti locali autenticati correttamente. Questa variabile è molto soggettiva, dipenderà tutto dalla disponibilità della vostra linea, quindi cercate di non esagerare. Settando “0″, si stabilisce un numero illimitato di bytes al secondo.</p>
<p><strong>anon_max_rate</strong></p>
<p style="padding-left: 30px;"><em>anon_max_rate=10240</em><br />
Di rilevanza solamente se avete deciso di lasciare abilitata l&#8217;autenticazione anonima. Il concetto è lo stesso di <em>local_max_rate</em> scritto subito sopra.</p>
<p><strong>hide_ids</strong></p>
<p style="padding-left: 30px;"><em>hide_ids=YES</em><br />
È consigliabile abilitare questa opzione per una questione di privacy, in quanto nasconde tutte le informazioni riguardanti i proprietari di file e cartelle durante il &#8220;directory listings&#8221; sostituendole con &#8220;ftp&#8221;.</p>
<p>Se non siete ancora soddisfatti di queste opzioni, e volete conoscerne altre, potete consultare il <a href="http://vsftpd.beasts.org/vsftpd_conf.html" target="_blank">manpage di vsftpd.conf</a>, ma una volta che avrete finito di configurare il vostro server, sarà necessario riavviare il servizio di vsftpd eseguendo il seguente comando:</p>
<p><code># /etc/init.d/vsftpd restart</code></p>
<h2>Creare e cancellare utenti vsftpd</h2>
<p>La creazione di utenti per vsftpd ha senso solo se avete abilitato l&#8217;opzione &#8220;local_enable&#8221;. Per creare gli utenti useremo il comando &#8220;useradd&#8221;:</p>
<p><code># useradd -d /home/nomeutente -m nomeutente</code><br />
L&#8217;opzione &#8220;-d&#8221; definisce quale sia l&#8217;home directory dell&#8217;utente, che di norma si trova sotto <em>/home</em>.<br />
L&#8217;opzione &#8220;-m&#8221; crea la home directory in caso non l&#8217;abbiate già fatto voi. L&#8217;unica differenza è che facendolo da <em>useradd</em>, la cartella viene già resa di proprietà dell&#8217;utente senza dover eseguire un ulteriore comando. Se preferite creare la home directory manualmente dovrete usare questi comandi:</p>
<p><code># mkdir /home/nomeutente<br />
# chown nomeutente: /home/nomeutente</code><br />
Resta solo da assegnare una password al nostro utente:</p>
<p><code># passwd nomeutente</code></p>
<p>Adesso il nostro utente è pronto per essere usato per collegarsi con l&#8217;ftp. Ovviamente non c&#8217;è limite al numero di utenti che è possibile creare, quindi non fatevi scrupoli. Se invece avete la necessità di cancellare un utente lo fate così:</p>
<p><code># userdel nomeutente</code><br />
Notate bene che in questa maniera la home directory e tutti i file contenuti rimarranno, di conseguenza se volete eliminare anche i dati dell&#8217;utente lo fate aggiungendo le opzioni &#8220;-f&#8221; e &#8220;-r&#8221;:</p>
<p><code># userdel -f -r nomeutente</code></p>
<h2>Problemi di connessione a vsftpd con alcuni browser</h2>
<p>Ho notato di recente che alcuni browser in alcune versioni, tra cui anche Firefox, non riescono a connettersi all&#8217;ftp e ricevono l&#8217;errore &#8220;530 Permission Denied&#8221;. L&#8217;unica soluzione possibile al problema è dichiarare in anticipo con quale utente ci si vuole connettere seguendo la sintassi <strong><em>ftp://&lt;nome_utente&gt;@&lt;indirizzo_ip_del_server&gt;/</em></strong>. Quindi nella barra degli indirizzi del browser dovrete scrivere una cosa simile:</p>
<p><code>ftp://donlimo@192.168.1.200/</code><br />
In aggiunta potete dichiarare anche la password seguendo la sintassi <strong><em>ftp://&lt;nome_utente&gt;:&lt;password&gt;@&lt;indirizzo_ip_del_server&gt;/</em></strong>. Di conseguenza:</p>
<p><code>ftp://donlimo:miapassword@192.168.1.200/</code><br />
Mi sembra tutto. Se avete dubbi, perplessità o non avete capito come fare una cosa, non esitate a chiedere nei commenti.</p>
<p>Buon FTP a tutti.</p>


<p>Articoli correlati:<ol><li><a href='http://www.bittrack.it/archives/come-impostare-utenti-virtuali-in-vsftpd-su-debian/' rel='bookmark' title='Permanent Link: Come impostare utenti virtuali in &#8220;vsftpd&#8221; su Debian'>Come impostare utenti virtuali in &#8220;vsftpd&#8221; su Debian</a></li>
<li><a href='http://www.bittrack.it/archives/configurare-vsftpd-per-le-connessioni-sicure/' rel='bookmark' title='Permanent Link: Configurare vsftpd per le connessioni sicure'>Configurare vsftpd per le connessioni sicure</a></li>
<li><a href='http://www.bittrack.it/archives/assegnare-un-indirizzo-ip-statico-alla-scheda-di-rete-su-debian/' rel='bookmark' title='Permanent Link: Assegnare un indirizzo IP statico alla scheda di rete su Debian'>Assegnare un indirizzo IP statico alla scheda di rete su Debian</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.bittrack.it/archives/ftp-server-sicuro-con-vsftpd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
