21 Lug 2009
Inserito da: Andrea Lanfranchi in: Mondo IT
Il controllo dell’utilizzo della risorsa internet specialmente all’interno delle aziende è aspetto cruciale. Spesso vengono installati software anche molto costosi per monitorare gli accessi oppure negarli. In realtà, a costo zero, SQUID offre un eccellente controllo accessi e, se integrato con software open-source come Dansguardian, può combinarsi in un eccellente strumento per il content-filtering.
Vediamo in questo esempio come un server Linux dotato di una distribuzione CentOS e corredato da SQUID possa essere configurato per consentire l’accesso solo agli utenti che accedono al dominio AD (Active Directory) di una tipica Lan basata su un server Microsoft.
Prima di procedere accertatevi che il vostro server Linux CentOS sia configurato in modo tale che la scheda di rete utilizzi il server DNS offerto dal server Windows autoritativo per AD.
Il primo passo consiste nella integrazione di SAMBA (che CentOS installa per impostazione predefinita) con AD.
winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes
obey pam restrictions = yes
allow trusted domains = no
idmap backend = idmap_rid:qualchecosa=16777216-33554431
fate molta attenzione all’ultima riga. Dopo idmap_rid dovete inserire lo stesso valore che avete inserito in Winbind Domain (questa volta in minuscolo)
session required pam_oddjob_mkhomedir.so skel=/etc/skel umask=0022
A questo punto possiamo procedere con la configurazione di SQUID
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 5
auth_param ntlm keep_alive on
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
acl authenticated proxy_auth REQUIRED
questa sezione indica a SQUID i riferimenti al programma di autenticazione (NTLM) ed impone l’autenticazione (ultima riga) obbligatoria.
Procedendo oltre diventa facile limitare l’utilizzo di internet per specifici gruppi. Supponete di aver creato un Gruppo di Sicurezza in AD che si chiama NoInternet e di avervi assegnato alcuni utenti. Bisogna configurare SQUID in modo che impedisca l’accesso agli utenti che appartengono a quel gruppo.
external_acl_type ad_group %LOGIN /usr/lib/squid/wbinfo_group.pl
acl banned_users external ad_group NoInternet
La prima riga definisce una acl esterna chiamata ad_group che punta ad un programma Perl che accetta, come parametri, il nome utente ed il gruppo e ritorna Ok se l’utente appartiene a quel gruppo. La seconda riga definiscce una acl (access control list) chiamata banned_users che specifica il gruppo AD NoInternet. Per impedire l’accesso quindi agli utenti del gruppo NoInternet, che vengono associati alla acl banned_users, basterà inserire questa ulteriore riga:
http_access deny banned_users