
<?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; Debian</title>
	<atom:link href="http://www.bittrack.it/archives/category/debian/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>Tue, 27 Apr 2010 16:41:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Configurare vsftpd per le connessioni sicure</title>
		<link>http://www.bittrack.it/archives/configurare-vsftpd-per-le-connessioni-sicure/</link>
		<comments>http://www.bittrack.it/archives/configurare-vsftpd-per-le-connessioni-sicure/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 17:07:21 +0000</pubDate>
		<dc:creator>Don Limo</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.bittrack.it/?p=992</guid>
		<description><![CDATA[<div><img width="201" height="200" src="http://www.bittrack.it/wp-content/uploads/2010/01/lock.JPG" class="attachment-post-thumbnail wp-post-image" alt="" title="lock" /></div>Le tradizionali connessioni FTP sono afflitte da un problema da non sottovalutare, ossia nome utente e password vengono trasmesse in chiaro durante la sessione di autenticazione. La risposta a questo problema è l&#8217;adozione del protocollo FTPS o FTPES. Vediamo come configurare vsftpd affinché effettui una criptazione del canale sul quale effettuiamo la connessione e la [...]]]></description>
			<content:encoded><![CDATA[<div><img width="201" height="200" src="http://www.bittrack.it/wp-content/uploads/2010/01/lock.JPG" class="attachment-post-thumbnail wp-post-image" alt="" title="lock" /></div><p>Le tradizionali connessioni FTP sono afflitte da un problema da non sottovalutare, ossia nome utente e password vengono trasmesse in chiaro durante la sessione di autenticazione. La risposta a questo problema è l&#8217;adozione del protocollo <a href="http://en.wikipedia.org/wiki/FTPS" target="_blank">FTPS o FTPES</a>. Vediamo come configurare vsftpd affinché effettui una criptazione del canale sul quale effettuiamo la connessione e la trasmissione dei dati.<span id="more-992"></span></p>
<h2>Installare vsFTPd e OpenSSL</h2>
<p>Se non avete già installato <a href="http://vsftpd.beasts.org/" target="_blank">vsftpd</a>, potete seguire <a href="http://www.bittrack.it/archives/ftp-server-sicuro-con-vsftpd/" target="_blank">questo articolo</a>. Per quanto riguarda <a href="http://www.openssl.org/" target="_blank">OpenSSL</a>, il famosissimo progetto open source per l&#8217;implementazione dei protocolli <a href="http://it.wikipedia.org/wiki/Transport_Layer_Security" target="_blank">SSL e TLS</a>, è sufficiente eseguire il seguente comando senza necessità di alcuna configurazione:</p>
<p><code># apt-get install openssl</code></p>
<h2>Generare un certificato di sicurezza</h2>
<p>Per generare un certificato di sicurezza per il nostro server vsftpd useremo l&#8217;appena installato OpenSSL. Anche qui è sufficiente eseguire un unico comando:</p>
<p><code># openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /usr/share/ssl/certs/vsftpd.pem -out /usr/share/ssl/certs/vsftpd.pem</code></p>
<ul>
<li>L&#8217;opzione <strong><em>req -x509</em></strong> indica che stiamo per generare un certificato usando il sistema di gestione X.509, dall&#8217;inglese <em>X.509 Certificate Signing Request (CSR) Management</em>.</li>
<li>L&#8217;opzione <strong><em>-days 365</em></strong> indica il numero di giorni nei quali il certificato sarà valido. In genere si supera difficilmente i 365 giorni.</li>
<li>L&#8217;opzione <strong><em>-newkey rsa:1024</em></strong> indica che genereremo una nuova chiave di crittografia usando l&#8217;algoritmo di cifratura <a href="http://it.wikipedia.org/wiki/RSA" target="_blank">RSA</a> a 1024 bit.</li>
<li>Le opzioni <strong><em>-keyout</em></strong> e <strong><em>-out</em></strong> servono ad indicare dove verrà generato il certificato. Il percorso riportato è quello di default usato da vsftpd, ma potete benissimo usare un qualunque altro percorso.</li>
</ul>
<h2>Configurare vsftpd per l&#8217;uso del protocollo SSL/TLS</h2>
<p>Editiamo il file di configurazione di vsftpd.</p>
<p><code># nano /etc/vsftpd.conf</code></p>
<p>Di seguito vi riporto tutte le principali opzioni di cui avete bisogno per l&#8217;uso del protocollo SSL/TLS.</p>
<p><strong>ssl_enable</strong></p>
<p style="padding-left: 30px;"><em>ssl_enable=YES</em><br />
Abilitando questa opzione si dichiara di voler usare un protocollo di cifratura. Tale protocollo verrà applicato in tutte le connessioni di controllo e le connessioni dati. Ovviamente avrete bisogno di un client FTP che supporti le connessioni cifrate. Potete trovare una lista di client FTP, ed i protocolli che supportano, a <a href="http://en.wikipedia.org/wiki/Comparison_of_FTP_client_software#Operating_system_support" target="_blank">questo indirizzo</a>.</p>
<p><strong>ssl_tlsv1</strong></p>
<p style="padding-left: 30px;"><em>ssl_tlsv1=YES</em><br />
Se abilitata, imposta vsftpd per usare il protocollo di cifratura TLS che in pratica è il successore dell&#8217;SSL. È sempre preferibile usare TLS che SSL. In caso vogliate usare l&#8217;SSL l&#8217;opzione da usare è <em>ssl_sslv3</em>.</p>
<p><strong>force_local_data_ssl</strong></p>
<p style="padding-left: 30px;"><em>force_local_data_ssl=YES</em><br />
Se abilitata, tutte le connessione non anonime saranno forzate ad usare una connessione cifrata per l&#8217;invio e la ricezioni di dati.</p>
<p><strong>force_local_logins_ssl</strong></p>
<p style="padding-left: 30px;"><em>force_local_logins_ssl=YES</em><br />
Se abilitata, tutte le connessione non anonime saranno forzate ad usare una connessione cifrata per l&#8217;invio di nome utente e password.</p>
<p><strong>rsa_cert_file</strong></p>
<p style="padding-left: 30px;"><em>rsa_cert_file=/usr/share/ssl/certs/vsftpd.pem</em><br />
Questa opzione specifica il percorso in cui si trova il certificato RSA da usare per le connessioni cifrate.</p>
<p>Se avete bisogno di opzioni più specifiche, potete dare uno sguardo al <a href="http://vsftpd.beasts.org/vsftpd_conf.html" taget="_blank">manpage di vsftpd.conf</a>. In ogni caso ricordatevi di riavviare il servizio di vsftpd affinché le modifiche abbiano effetto.</p>
<p><code># /etc/init.d/vsftpd restart</code></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/ftp-server-sicuro-con-vsftpd/' rel='bookmark' title='Permanent Link: FTP Server sicuro con &#8220;vsftpd&#8221;'>FTP Server sicuro con &#8220;vsftpd&#8221;</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.bittrack.it/archives/configurare-vsftpd-per-le-connessioni-sicure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Assegnare un indirizzo IP statico alla scheda di rete su Debian</title>
		<link>http://www.bittrack.it/archives/assegnare-un-indirizzo-ip-statico-alla-scheda-di-rete-su-debian/</link>
		<comments>http://www.bittrack.it/archives/assegnare-un-indirizzo-ip-statico-alla-scheda-di-rete-su-debian/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 10:05:34 +0000</pubDate>
		<dc:creator>Don Limo</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[gateway]]></category>
		<category><![CDATA[ip statico]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[subnet mask]]></category>

		<guid isPermaLink="false">http://www.bittrack.it/?p=449</guid>
		<description><![CDATA[<div><img src="http://www.bittrack.it/wp-content/uploads/2009/10/static-ip.jpg" class="attachment-post-thumbnail wp-post-image" alt="" title="static-ip" /></div>I motivi per desiderare un indirizzo IP statico invece che dinamico, possono essere i più disparati. Nel mio caso, dovevo configurarlo sul mio server di casa in modo da renderlo raggiungibile, sempre e comunque, senza dover fare ricerche sul DNS.
Iniziamo col visualizzare alcune informazioni sull&#8217;interfaccia di rete. Nel mio caso è l&#8217;ethernet (eth0), ma il [...]]]></description>
			<content:encoded><![CDATA[<div><img src="http://www.bittrack.it/wp-content/uploads/2009/10/static-ip.jpg" class="attachment-post-thumbnail wp-post-image" alt="" title="static-ip" /></div><p>I motivi per desiderare un indirizzo IP statico invece che dinamico, possono essere i più disparati. Nel mio caso, dovevo configurarlo sul mio server di casa in modo da renderlo raggiungibile, sempre e comunque, senza dover fare ricerche sul DNS.<span id="more-449"></span></p>
<p>Iniziamo col visualizzare alcune informazioni sull&#8217;interfaccia di rete. Nel mio caso è l&#8217;ethernet (eth0), ma il concetto vale anche per il wifi (wlan0/wifi0) o qualsiasi altra interfaccia di rete.</p>
<pre><code>hive:/home/donlimo# ifconfig
eth0    Link encap:Ethernet  HWaddr 08:27:00:2f:08:a5
        inet addr:192.168.1.62  Bcast:192.168.1.255  Mask:255.255.255.0
        inet6 addr: fe80::a00:a7ff:fe5a:984d/64 Scope:Link
        UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
        RX packets:805 errors:0 dropped:0 overruns:0 frame:0
        TX packets:606 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:1000
        RX bytes:796490 (777. KiB)  TX bytes:52540 (51.3 KiB)
        Interrupt:11 Base address:0xd020</code>
</pre>
<p>L&#8217;output del comando è molto chiaro. Le informazioni che ci interessano in particolare sono tre:</p>
<ul>
<li><em>inet addr:192.168.1.62</em></li>
<li><em>Bcast:192.168.1.255</em></li>
<li><em>Mask:255.255.255.0</em></li>
</ul>
<p>Il primo è l&#8217;indirizzo <a href="http://it.wikipedia.org/wiki/Internet_Protocol" target="_blank">IP</a>, il secondo è l&#8217;indirizzo di <a href="http://it.wikipedia.org/wiki/Broadcast" target="_blank">Broadcast</a> ed il terzo è la <a href="http://it.wikipedia.org/wiki/Subnet_mask" target="_blank">Submet Mask</a>. Sono tutti dati importantissimi ai fini della corretta configurazione della scheda di rete. In aggiunta a questi tre dati, ci serve sapere qual&#8217;è l&#8217;indirizzo IP del <a href="http://it.wikipedia.org/wiki/Gateway" target="_blank">gateway</a>: in una rete locale casalinga, di norma corrisponde ai primi tre numeri del nostro indirizzo IP con &#8220;1&#8243; come quarto numero. Nel mio caso è <em>192.168.1.1</em>. Se per voi è differente, fate riferimento al manuale delle istruzioni del vostro router/modem adsl dove è in genere messo in evidenza. A questo punto, non ci rimane che editare il file di configurazione <em>/etc/network/interfaces</em> per configurare il nostro IP statico.</p>
<p><code># nano /etc/network/interfaces</code></p>
<p>Assicuratevi di inserire le seguenti righe all&#8217;interno del file:</p>
<p><code># The primary network interface<br />
auto eth0<br />
iface eth0 inet static<br />
address 192.168.1.62<br />
netmask 255.255.255.0<br />
broadcast 192.168.1.255<br />
gateway 192.168.1.1</code></p>
<p>La terza riga potrebbe non apparire chiara alla maggior parte di voi, quindi vi do una veloce descrizione:</p>
<ul>
<li><strong>auto</strong>: identifica i dispositivi che vengono portati in stato di <em>up</em> al boot del sistema</li>
<li><strong>iface</strong>: identifica le interfacce da configurare</li>
<li><strong>inet</strong>: indica che l&#8217;interfaccia sarà collegata con una rete IPv4</li>
<li><strong>static</strong>: indica che l&#8217;indirizzo è impostato staticamente</li>
</ul>
<p>Per rendere effettive le modifiche, sarà necessario riavviare il servizio di rete.</p>
<p><code># /etc/init.d/networking restart</code></p>
<h2>Configurare i server DNS</h2>
<p>Se avete bisogno di configurare i DNS dovrete editare il file <em>/etc/resolv.conf</em>.</p>
<p><code># nano /etc/resolv.conf</code></p>
<p>Inserite le seguenti righe:</p>
<p><code>nameserver 208.67.222.222<br />
nameserver 208.67.220.220</code></p>
<p>Gli indirizzi IP che vedete corrispondo al servizio di DNS <a href="http://www.opendns.com/" target="_blank">OpenDNS</a>, ma nessuno vi vieta di configurare qualunque altro DNS vogliate.</p>
<h2>Ripristinare un indirizzo IP dinamico</h2>
<p>Se cambiate idea o volete tornare ad un indirizzo IP dinamico, cancellate le righe che abbiamo inserito e ripristinate quelle standard:</p>
<p><code>auto eth0<br />
iface eth0 inet dhcp</code></p>
<h2>Ulteriori informazioni</h2>
<p>Per chi ha esigenze più avanzate, può trovare informazioni più dettagliate nei manuali di <a href="http://www.annodex.net/cgi-bin/man/man2html?8+ifup" target="_blank">ifup</a> ed <a href="http://www.annodex.net/cgi-bin/man/man2html?interfaces" target="_blank">/etc/network/interface</a>.</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/oven-trick-riparare-la-scheda-video-mettendola-in-forno/' rel='bookmark' title='Permanent Link: Oven Trick, riparare la scheda video mettendola in forno'>Oven Trick, riparare la scheda video mettendola in forno</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.bittrack.it/archives/assegnare-un-indirizzo-ip-statico-alla-scheda-di-rete-su-debian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Come impostare utenti virtuali in &#8220;vsftpd&#8221; su Debian</title>
		<link>http://www.bittrack.it/archives/come-impostare-utenti-virtuali-in-vsftpd-su-debian/</link>
		<comments>http://www.bittrack.it/archives/come-impostare-utenti-virtuali-in-vsftpd-su-debian/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 18:46:00 +0000</pubDate>
		<dc:creator>Don Limo</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[utenti virtuali]]></category>
		<category><![CDATA[vsftpd]]></category>

		<guid isPermaLink="false">http://www.bittrack.it/?p=353</guid>
		<description><![CDATA[<div><img src="http://www.bittrack.it/wp-content/uploads/2009/09/ftp.png" class="attachment-post-thumbnail wp-post-image" alt="" title="ftp" /></div>Il motivo per il quale vengono impostati utenti virtuali in un server FTP, è generalmente per consentire l&#8217;accesso ftp al web server e di conseguenza ai diversi siti web che mantiene online. Ogni utente può avere uno o più login di accesso all&#8217;ftp, e nome utente e password possono essere condivisi con il web server.
Installazione
Come [...]]]></description>
			<content:encoded><![CDATA[<div><img src="http://www.bittrack.it/wp-content/uploads/2009/09/ftp.png" class="attachment-post-thumbnail wp-post-image" alt="" title="ftp" /></div><p>Il motivo per il quale vengono impostati utenti virtuali in un server FTP, è generalmente per consentire l&#8217;accesso ftp al web server e di conseguenza ai diversi siti web che mantiene online. Ogni utente può avere uno o più login di accesso all&#8217;ftp, e nome utente e password possono essere condivisi con il web server.<span id="more-353"></span></p>
<h2>Installazione</h2>
<p>Come si può ben capire dal titolo, prenderemo in esame vsftpd come server FTP e <a href="http://www.apache.org/" target="_blank">apache</a> come web server. Entrambi li ho scelti per il loro rinomato livello di sicurezza, leggerezza e stabilità e per quanto concerne la loro installazione vi rimando alle rispettive guide: <a href="http://www.bittrack.it/archives/ftp-server-sicuro-con-vsftpd" target="_blank">vstfpd</a> e apache (appena ho due minuti per scriverla). Adesso, andremo ad installare il modulo <em>pam_pwdfile</em> che permette una semplice e rapida condivisione delle credenziali di autenticazione fra l&#8217;ftp ed il web server.</p>
<p><code># apt-get install libpam-pwdfile</code></p>
<h2>Configurazione</h2>
<p>Lo scopo principale di impostare utenti virtuali, è il fatto di fornire accesso ftp ai vari siti web hostati da apache che di standard si trovano in <em>/var/www/</em>, prevenendo accessi anonimi o accessi ad altri siti da parte di utenti non autorizzati. A questo punto, tutto quello che dobbiamo fare è creare un file dove andremo a salvare tutte le password degli utenti. Utilizzeremo lo strumento <em>htpasswd</em> fornito da apache. C&#8217;è da dire però, che quest&#8217;ultimo supporta unicamente password fino ad 8 caratteri. Di conseguenza, se volete usare password più lunghe, potete usare tranquillamente un altro <a href="http://www.kernel.org/pub/linux/libs/pam/modules.html" target="_blank">modulo PAM</a> o fare ricorso a <em>md5-crypt</em>.</p>
<p><code># htpasswd -c /etc/vsftpd/passwd user</code><br />
Per gli utenti successivi è sufficiente eseguire lo stesso comando senza l&#8217;opzione &#8220;-c&#8221;.</p>
<p><code># htpasswd /etc/vsftpd/passwd user2</code><br />
Affinché gli utenti riescano a loggarsi ed uppare/modificare/cancellare file correttamente è necessario creare la loro home directory e dargli i permessi di scrittura.</p>
<p><code># mkdir /var/www/user<br />
# chown user1 /var/www/user<br />
# chmod +w /var/www/user</code></p>
<p>Ovviamente l&#8217;operazione va ripetuta per tutti gli utenti creati:</p>
<p><code># mkdir /var/www/user2<br />
# chown user1 /var/www/user2<br />
# chmod +w /var/www/user2</code></p>
<p>Adesso, <u>se non sono già presenti</u>, è necessario aggiungere delle opzioni al file di configurazione di vsftpd che si trova in <em>/etc/vsftpd.conf</em>:</p>
<p><code>anonymous_enable=NO<br />
local_enable=YES<br />
virtual_use_local_privs=YES<br />
secure_chroot_dir=/var/run/vsftpd<br />
pam_service_name=vsftpd<br />
guest_enable=YES<br />
user_sub_token=$USER<br />
local_root=/var/www/$USER<br />
chroot_local_user=YES<br />
hide_ids=YES</code><br />
Ora è il momento di passare a configurare il PAM per usare il file delle password che abbiamo creato.</p>
<p><code># nano /etc/pam.d/vsftpd</code><br />
Aggiungiamo le seguenti righe.</p>
<p><code>auth required pam_pwdfile.so pwdfile /var/www/conf/users<br />
account required pam_permit.so</code></p>
<p>Riavviamo il serizio di vsftpd.</p>
<p><code># /etc/init.d/vsftpd restart</code></p>
<h2>Testiamone il funzionamento</h2>
<p>La configurazione è finita, possiamo passare a testare il funzionamento effettivo degli utenti virtuali.</p>
<pre><code>$ ftp 192.168.1.200
Connected to 192.168.1.200.
220-Welcome to Pandora's Chest.
220-All activities are logged.
220-Good work.
Name (192.168.1.200:donlimo): user
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.
drwxr-xr-x    3 ftp    ftp    4096 Jul 11 19:46    images
-rw-r--r--    1 ftp    ftp    5952 Jul 07 20:26    index.php
226 Directory send OK.
</code></pre>


<p>Articoli correlati:<ol><li><a href='http://www.bittrack.it/archives/ftp-server-sicuro-con-vsftpd/' rel='bookmark' title='Permanent Link: FTP Server sicuro con &#8220;vsftpd&#8221;'>FTP Server sicuro con &#8220;vsftpd&#8221;</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/come-impostare-utenti-virtuali-in-vsftpd-su-debian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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="" 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="" 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>
