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.

  • Cliccare su System, selezionare Administration quindi Authentication. Verrà eseguita la pagina di configurazione dell’autenticazione.
  • Abilitare la casella di controllo Enable Winbind Support e quindi cliccare su Configure Winbind.
  • Impostare Security Model su ads e quindi compilare Winbind Domain, Winbind ADS Realm e Winbind Domain Controllers secondo lo schema seguente:
    • Winbind Domain : il nome di DOMINIO senza estensione ovvero in pratica il Workgroup (per esempio se il vostro dominio è qualchecosa.com inserite QUALCHECOSA tutto in maiuscolo)
    • Winbind Security Model : ads
    • Winbind ADS Realm : il nome dominio completo es QUALCHECOSA.COM
    • Winbind Domain Controllers : il nome di host completo del server autoritativo. Se vi sono più server in AD inserirli di seguito separati da virgole.
  • Cliccare su Join Domain : vi verrà richiesto di inserire il nome utente e la password di un account utente autoritativo per il join. Generalmente si utilizza l’Administrator del dominio. Quindi cliccate su Ok
  • Cliccate su Ok nuovamente e selezionate il tab Authentication.
  • Abilitate il controllo Enable Winbind Support.
  • Cliccate su Ok
  • Con un editor aprite il file /etc/samba/smb.conf e modificate (o aggiungete) le righe indicate di seguito :
  • 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)

  • Se non si desidera che gli account utente di AD possano effettuare il login direttamente sulla macchina Linux è possibile fermarsi qui e passare direttamente alla configurazione di SAMBA
  • Create la cartella che verrà utilizzata come HOME per gli utenti. es. /home/QUALCHECOSA (riportate in maiuscolo il nome del workgroup)
  • Con l’editor di testo che preferite modificate il file /etc/pam.d/system-auth ed aggiungete la riga seguente:
  • session required pam_oddjob_mkhomedir.so skel=/etc/skel umask=0022

  • Riavviate ora il servizio winbind ed avviate il servizio oddjobd (verificando anche che sia in start-up automatico)
  • Per verificare che tutto funzioni aprite una console di comando e digitate wbinfo -u. Dovrebbe apparire l’elenco degli utenti registrati in AD.

A questo punto possiamo procedere con la configurazione di SQUID

  • Con l’editor di testo che preferite aprite il file /etc/squid/squid.conf ed inserite queste righe:
  • 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.

  • Riavviate Squid e provate a navigare. Se l’utente non è autenticato da AD non potrà passare da SQUID.

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.

  • Con l’editor di testo che preferite aprite il file /etc/squid/squid.conf ed inserite queste righe:
  • 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

  • Riavviate SQUID e provate a far navigare un utente del gruppo NoInternet.