<?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>Focus the Web Tech Blog &#187; apache</title>
	<atom:link href="http://tech.focustheweb.com/tag/apache/feed/" rel="self" type="application/rss+xml" />
	<link>http://tech.focustheweb.com</link>
	<description>Programmazione, web, internet, howtos, etc.</description>
	<lastBuildDate>Sat, 24 Apr 2010 09:16:53 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Autenticazione, Autorizzazione e Controllo degli Accessi in Apache HTTP Server</title>
		<link>http://tech.focustheweb.com/programmazione/autenticazione-autorizzazione-e-controllo-degli-accessi-in-apache-http-server/</link>
		<comments>http://tech.focustheweb.com/programmazione/autenticazione-autorizzazione-e-controllo-degli-accessi-in-apache-http-server/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 16:47:58 +0000</pubDate>
		<dc:creator>Giovanni Cappellotto</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[authorization]]></category>
		<category><![CDATA[htpasswd]]></category>

		<guid isPermaLink="false">http://tech.focustheweb.com/?p=256</guid>
		<description><![CDATA[







Per controllare l&#8217;accesso ad una cartella del nostro HTTP server e ai documenti in essa contenuti possiamo usare un metodo di autenticazione messo a disposizione da Apache.
In nostro aiuto vengono due moduli: mod_auth e mod_auth_digest.
Il primo è supportato dalla maggior parte dei browser, ma ha lo svantaggio di trasmettere la password di autenticazione in chiaro [...]]]></description>
			<content:encoded><![CDATA[<p>
<!-- Begin Google Adsense code -->
<script type="text/javascript"><!--
google_ad_client = "pub-7194529311513014";
/* 468x60, creato 21/11/09 */
google_ad_slot = "8123373738";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Google Adsense code -->
<br />
Per <em>controllare l&#8217;accesso</em> ad una cartella del nostro HTTP server e ai documenti in essa contenuti possiamo usare un <em>metodo di autenticazione</em> messo a disposizione da Apache.</p>
<p>In nostro aiuto vengono due moduli: <code>mod_auth</code> e <code>mod_auth_digest</code>.</p>
<p>Il primo è supportato dalla maggior parte dei browser, ma ha lo svantaggio di trasmettere la password di autenticazione in chiaro nella rete ed è per questo sconsigliato per proteggere documenti contenti dati sensibili.</p>
<p>Il secondo metodo è più sicuro, ma viene supportato da un numero inferiore di clients rispetto a <code>mod_auth</code>.<br />
<span id="more-256"></span><br />
Ecco come predisporre una cartella condivisa nel web al controllo degli accessi:</p>
<ol>
<li>creare un file contenente le informazioni per l&#8217;autenticazione (nome utente e password) degli utenti autorizzati alla visualizzazione dei documenti nella cartella protetta con l&#8217;utility di Apache <code>htpasswd</code>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">htpasswd <span style="color: #660033;">-c</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>john<span style="color: #000000; font-weight: bold;">/</span>passwords john</pre></div></div>

<p>Questo comando crea il file passwords nella cartella <code>/home/john</code> contenente la password per l&#8217;utente <code>john</code>.<br />
<strong>Nota:</strong> è consigliato tenere il file contenente le passwords in una cartella non accessibile via web<br />
All&#8217;esecuzione del comando ci viene richiesto di immettere una password e di confermarla:</p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;">New password: mypassword
Re-type new password: mypassword
Adding password for <span style="color: #00007f;">user</span> john</pre></div></div>

</li>
<li>aggiungiamo le direttive

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;"><span style="color: #00007f;">AuthType</span> Basic
<span style="color: #00007f;">AuthName</span> <span style="color: #7f007f;">&quot;Restricted Files&quot;</span>
<span style="color: #00007f;">AuthUserFile</span> /home/john/passwords
<span style="color: #00007f;">Require</span> <span style="color: #00007f;">user</span> john</pre></div></div>

<p>nel file di configurazione dell&#8217;host all&#8217;interno di un blocco <code>&lt;Directory /var/www/secret&gt;</code> o in un file <code>.htaccess</code> nella cartella da proteggere (ad esempio <code>/var/www/secret/.htaccess</code>)<br />
<strong>Nota:</strong> per poter utilizzare il file <code>.htaccess</code> le impostazioni globali devono permettere l&#8217;overriding dell&#8217;opzione <code>AuthConfig</code> attraverso la direttiva</p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;"><span style="color: #00007f;">AllowOverride</span> AuthConfig</pre></div></div>

</li>
<li>ricarichiamo la configurazione del server HTTP per rendere attive le nuove impostazioni con il comando

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>apache2 reload</pre></div></div>

<p>Nota: questo comando funziona per distribuzioni Linux basate su Debian con Apache HTTP Server versione 2</li>
</ol>
<p>Ci sono molte altre cose da dire sull&#8217;autenticazione e sull&#8217;autorizzazione, ma questo articolo può bastare come introduzione.</p>
<p>Se avete bisogno di maggiori informazioni potrete consultare <a title="Authentication, Authorization and Access Control - Apache 2 HTTP Server" href="http://httpd.apache.org/docs/2.0/howto/auth.html">Authentication, Authorization and Access Control &#8211; Apache 2 HTTP Server</a> o fare commenti chiedendomi i chiarimenti necessari.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.focustheweb.com/programmazione/autenticazione-autorizzazione-e-controllo-degli-accessi-in-apache-http-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creare ed attivare un nuovo VirtualHost per Apache 2 web server su Debian Linux</title>
		<link>http://tech.focustheweb.com/programmazione/creare-ed-attivare-un-nuovo-virtualhost-per-apache-2-web-server-su-debian-linux/</link>
		<comments>http://tech.focustheweb.com/programmazione/creare-ed-attivare-un-nuovo-virtualhost-per-apache-2-web-server-su-debian-linux/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 07:36:07 +0000</pubDate>
		<dc:creator>Giovanni Cappellotto</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apache 2]]></category>
		<category><![CDATA[configurazione]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[virtualhost]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.arzanadv.it/blog/2009/08/04/attivare-un-nuovo-virtualhost-per-apache-2-su-sistema-linux/</guid>
		<description><![CDATA[
In questo articolo presentiamo delle istruzioni passo per passo utili alla creazione e all&#8217;attivazione di un nuovo VirtualHost per Apache 2 http server.
Come esempio prendiamo il dominio http://www.example.com.

Creare un nuovo file di configurazione per il VirtualHost a partire da questo semplice template (sostituire ogni occorrenza di example.com con il vero nome del dominio)

#
# www.example.com
#
&#60;VirtualHost *:80&#62;
  [...]]]></description>
			<content:encoded><![CDATA[<p><br />
In questo articolo presentiamo delle istruzioni passo per passo utili alla creazione e all&#8217;attivazione di un nuovo <strong>VirtualHost</strong> per <a href="http://www.arzanadv.it/blog/tag/apache-2/" title="Apache 2 http server"><strong>Apache 2</strong> http server</a>.</p>
<p>Come esempio prendiamo il dominio http://www.example.com.<span id="more-181"></span></p>
<ol>
<li>Creare un nuovo file di configurazione per il VirtualHost a partire da questo semplice template (sostituire ogni occorrenza di <em>example.com</em> con il vero nome del dominio)

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">#
# www.example.com
#
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;VirtualHost</span> *:80<span style="color: #000000; font-weight: bold;">&gt;</span></span>
    ServerAdmin webmaster@example.com
    DocumentRoot /var/vhosts/example.com/www
    ServerName www.example.com
&nbsp;
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Directory</span> /var/vhosts/example.com/www<span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        Options FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Directory<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
    ErrorLog /var/log/apache2/www.example.com-error.log
&nbsp;
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn
&nbsp;
    CustomLog /var/log/apache2/www.example.com-access.log combined
    ServerSignature Off
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/VirtualHost<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<dl>
<dt>&lt;VirtualHost *:80&gt;</dt>
<dd>indica l&#8217;utilizzo di <em>virtual hosts basati sui nomi</em> (per maggiori informazioni sull&#8217;argomento consiglio di consultare la documentazione ufficiale di Apache sui <a href="http://httpd.apache.org/docs/2.0/vhosts/name-based.html" title="Apache 2 Documentation - Name Based Virtual Hosts" target="_blank">Name Based Virtual Hosts</a>) e racchiude direttive applicabili solo ad un uno specifico <em>hostname</em> o indirizzo IP</dd>
<dt>ServerAdmin</dt>
<dd>imposta l&#8217;indirizzo e-mail che il server inserisce nei messaggi d&#8217;errore mandati ai clients</dd>
<dt>DocumentRoot</dt>
<dd>indica la cartella che diventerà la radice dell&#8217;albero visibile dal web (esempio: lo &#8220;<strong>/</strong>&#8221; di http://www.arzanaweb.com<strong>/</strong>)</dd>
<dt>ServerName</dt>
<dd><em>hostname</em> usato dal server per identificarsi</dd>
<dt>&lt;Directory /var/vhosts/example.com/www/&gt;</dt>
<dd>racchiude direttive applicabili solo alla cartella /var/vhosts/example.com/www/ e alle sue sottocartelle</dd>
<dt>Options</dt>
<dd>configura le caratteristiche di una cartella
<dl>
<dt>FollowSymLinks</dt>
<dd>il server seguirà i link presenti nella cartella</dd>
<dt>MultiViews</dt>
<dd>abilita la ricerca MultiViews (consultare documentazione modulo <a href="http://httpd.apache.org/docs/2.0/mod/mod_negotiation.html#multiviews" title="documentazione modulo mod_negotiation" target="_blank">mod_negotiation</a>) per questa cartella</dd>
</dl>
</dd>
<dt>AllowOverride All</dt>
<dd>permette l&#8217;<em>overriding </em>delle tutte le opzioni fatta eccezione per la MultiViews per mezzo di files .htaccess (per maggiori informazioni sull&#8217;argomento consultare il tutorial sugli <a href="http://httpd.apache.org/docs/2.0/howto/htaccess.html" title="documentazione .htaccess files" target="_blank">.htaccess files</a>)</dd>
<dt>Order Allow, Deny</dt>
<dd>indica l&#8217;ordine di valutazione delle direttive Allow e Deny</dd>
<dt>Allow from all</dt>
<dd>Allow accorda a qualsiasi host (from all) l&#8217;accesso alla cartella (per maggiori informazioni consultare documentazione <a href="http://httpd.apache.org/docs/2.0/mod/mod_access.html" target="_blank" title="documentazione modulo mod_access">modulo mod_access</a>)</dd>
<dt>ErrorLog</dt>
<dd>specifica il percorso del file di <em>log</em> degli errori</dd>
<dt>LogLevel</dt>
<dd>specifica il livello di <em>verbosità</em> del sistema di logging, il valore appartiene all&#8217;insieme (ordinato in modo crescente rispetto alla mole di dati <em>loggati</em>) {emerg, alert, crit, error, warn, notice, info, debug}</dd>
<dt>CustoLog</dt>
<dd>imposta nome e formato del file di log (documentazione <a href="http://httpd.apache.org/docs/2.0/mod/mod_log_config.html#customlog" target="_blank" title="documentazione modulo mod_log_config">modulo mod_log_config</a>)</dd>
<dt>ServerSignature</dt>
<dd>configura il footer dei documenti generati dal server (esempio: documenti d&#8217;errore come le pagine di <em>&#8220;risorsa non trovata&#8221;</em> o <em>404</em>)</dd>
</dl>
</li>
<li>Creare la cartella radice del VirtualHost

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>vhost<span style="color: #000000; font-weight: bold;">/</span>example.com
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>vhost<span style="color: #000000; font-weight: bold;">/</span>example.com<span style="color: #000000; font-weight: bold;">/</span>www</pre></div></div>

</li>
<li>Abilitare il VirtualHost appena creato

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> a2ensite example.com</pre></div></div>

<p>in questo modo viene creato un link simbolico dal file di configurazione chiamato <samp>example.com</samp> nella cartella di configurazione di Apache 2 <samp>/etc/apache2/sites-available</samp> alla cartella dei virtual hosts attivi <samp>/etc/apache2/sites-enabled</samp></li>
<li>Ricaricare le configurazioni del server web

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>apache2 reload</pre></div></div>

</li>
</ol>
<p>Da ora il nuovo VirtualHost è raggiungibile all&#8217;indirizzo http://www.example.com.</p>
<p>Se i DNS non sono ancora stati configurati possiamo aggiungere una riga al file hosts locale (<samp>/etc/hosts</samp>), far puntare il nome a dominio <samp>www.example.com</samp> all&#8217;indirizzo <samp>127.0.0.1</samp> (<samp>localhost</samp>) ed accedere al sito scrivendo sulla barra dell&#8217;indirizzo di un browser http://www.example.com.</p>
<p>Per maggiori informazioni consiglio di consultare la documentazione di <a href="http://httpd.apache.org/docs/2.0/" target="_blank" title="Apache 2 http server documentation">Apache 2 http server</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.focustheweb.com/programmazione/creare-ed-attivare-un-nuovo-virtualhost-per-apache-2-web-server-su-debian-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
