Server  »  Articoli  »  Apache 

Apache: controllo degli accessi basato sull'host

di: Ermanno Ancona     05 Luglio 2006

Quando si parla di Apache e controllo degli accessi il pensiero va immediatamente all'autenticazione di base HTTP, realizzata generalmente mediante un file .htpasswd contenente nomi utente e password cifrate. È il sistema più semplice, più conosciuto e maggiormente utilizzato per creare aree ad accesso limitato in un sito web. Non è però l'unico.

In queste pagine vedremo come sia possibile implementare uno schema di controllo basato sul nome di host o sull'indirizzo IP del client. Il modulo mod_access (disponibile fino alla versione 2.1 poi sostituito da mod_authz_host), grazie alle direttive Allow, Deny ed Order, permette di realizzare tale tipo di restrizione. Naturalmente nulla vieta di utilizzare contemporaneamente una limitazione d'accesso basata su host ed una basata su password, in questo caso la direttiva Satisfy determina come le due componenti debbano interagire. Non andiamo oltre e per ora accontentiamoci di focalizzare l'attenzione sugli elementi fondamentali.

La direttiva Allow

La sintassi basilare della direttiva è:

Allow from host1 host2 host3 ...

Essa determina quali host possano accedere ad una certa area. Il contesto d'applicazione è <Directory>, <Files>, <Location> o file di configurazione per-directory (.htaccess). Cominciamo subito con qualche esempio per chiarirne l'utilizzo. Se vogliamo concedere l'accesso a tutti:

Allow from all

Sebbene una simile configurazione possa apparire inutile e ridondante, non lo è affatto se utilizzata in combinazione con le direttive Deny ed Order come si vedrà in seguito. Passiamo ora a permettere l'accesso ad un particolare host sulla base del suo nome di dominio completo (FQDN, Fully Qualified Domain Name):

Allow from mioserver.miodominio.it

Se invece vogliamo limitarci a nomi di dominio parziali:

Allow from miodominio.it
Allow from .org altrodominio.biz

In questo caso verranno esplicitamente fornite le risorse richieste a tutti gli host il cui nome corrisponde o termina secondo quanto specificato dalle direttive. Quindi rispettano la prima condizione sia server1.miodominio.it che server2.miodominio.it. La corrispondenza deve essere completa ovvero non verrà autorizzato server3.ilmiodominio.it.

Con il secondo allow accettiamo tutti gli host con TLD org oltre a quelli appartenenti al dominio altrodominio.biz.

Passiamo ora ad utilizzare gli indirizzi IP. In questo caso uno o più indirizzi specificati godranno dell'accesso:

Allow from 217.199.180.20
Allow from 10.26.1.20 10.26.1.30

Possiamo limitarci ad indicare alcuni ottetti per specificare le sottoreti ammesse:

Allow from 192.168.50
Allow from 217.171.50 62.110

La prima riga, ad esempio, consente l'accesso a tutti gli host con indirizzi da 192.168.50.1 a 192.168.50.255. Analoga sarà l'interpretazione della seconda riga. Possiamo riferirci anche ad una coppia rete-maschera di rete o CIDR (Classless Inter-Domain Routing):

Allow from 217.199.180.0/255.255.255.0
Allow from 192.30.250.0/19

Guide Server

Guida risparmio energetico per server

Dalla determinazione dei consumi al risparmio, dalla...

Guida Subversion

SVN è uno dei sistemi per il versioning più utilizzati al mondo....

Guida Application server

Cosa sono, quali sono e come possono essere utilizzati nella...

Altre guide

Newsletter

Ogni settimana, in due distinte newsletter: notizie a approfondimenti su Apache e IIS.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Amministratore di Reti Windows Server 2008

11 Giugno 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto