Introduzione

Un server proxy all'interno di una rete ha la fondamentale funzione di controllare i processi di autenticazione degli utenti durante i loro accessi ad Internet.

Per poter fare ciò è necessario configurare ogni client in modo che nel momento in cui tenta di connettersi ad internet passi per il nodo che funge da server proxy, il quale dovrà a sua volta richiedere l'autenticazione dell'utente e del client e controllare le credenziali di accesso fornite e la loro rispondenza ai criteri stabiliti dal server proxy.

Il proxy server è pertanto un controllore centrale delle credenziali di accesso ad un sistema che opera con ACL sia a livello utente che a livello host , nonché selezionando siti e percorsi di ricerca da accettare o scartare.

Una volta ottenuta la convalida dell'autenticazione, ciascun client ha accesso al servizio fornito dal proxy server, in questo caso l'accesso alle pagine internet.

Tali pagine richieste dai client vengono risolte nel primo accesso direttamente dal server proxy e poi ogni successiva richiesta della stessa pagina da parte di un client verrà evasa usando l'informazione che il proxy ha nella sua memoria cache.

Ritorna il principio di località dell'informazione in base al quale la minimizzazione dei temnpi di accesso ad una determinata informazione è garantito dall'uso di una memoria locale e volatile ad accesso molto rapido.

Prima di installare

Prima di cominciare, come prerequisito, è necessario:

Installazione

Per installare il server proxy aprire una shell e digitare

sudo apt-get -y install squid

Questo installerà i pacchetti necessari per il servizio proxy.

Configurazione

La directory di configurazione del server proxy è /etc/squid ed il file è squid.conf.

I file di log sono contenuti all'interno della directory /var/log/squid e contengono informazioni sugli accessi e sugli hit o miss di ogni pagina (ovvero sull'efficienza del proprio server proxy).

A tal proposito occorre precisare che il tasso di hit riflette l'efficienza del server proxy poiché tanto più alto è il numero di pagine richieste dai client e trovate nella memoria cache del sevrer proxy tanto minore sarà il numero di richieste che il server proxy stesso dovrà fare per ottenere tali pagine.

Tale fattore di efficienza dipende sia dalle dimensioni della cache che dal tipo di richieste dei client e solitamente anche dal tempo trascorso dalla fine del setup del proxy server.

Come detto il file per la configurazione del servizio proxy è /etc/squid/squid.conf. Adesso si vedrà nel dettaglio cosa bisogna modificare per ottenere un proxy perfettamente funzionante.

Innanzitutto, è necessario specificare l'indirizzo IP e la porta su cui il sevrer proxy sarà in ascolto attraverso la direttiva :

http_port 192.168.20.101:3128

In questo esempio è in ascolto sull'IP 192.168.20.101 e sulla porta 3128. Bisogna configurare l'IP e la porta su tutti i client che dovranno usufruire del servizio proxy.

A questo punto occorre specificare le dimensioni della memoria cache da usare per il servizio proxy come segue :

cache_mem 8MB

Nell'esempio, il valore predefinito è 8MB. È possibile modificarlo in base alle dimensioni della propria RAM.

Un server dedicato può arrivare tranquillamente a 256 o 512 MiB.

Il valore di questo parametro dipende dalle dimensioni degli oggetti che il proxy deve memorizzare e dal numero di questi ultimi. Ad esempio, se si hanno 1000 client che richiedono ciascuno una pagina diversa delle dimensioni medie di 500KB servono 500*1000=500MB di cache!! Questo è un caso limite, ma aiuta a capire come determinare con semplici conti la quantità di cache necessaria.

Altri parametri importanti sono:

E' evidente che l'ultimo parametro deve essere abbastanza alto da permettere che il più grande oggetto richiesto dai client serviti sia mantenuto nella cache, e pertanto tale valore dipende dalla "qualità" delle richieste dei client (ovvero dal tipo di pagine ed oggetti richiesti).

I parametri che seguono riguardano il tipo di algoritmi usati per la gestione della memoria cache e della RAM da parte del proxy :

Generalmente questi parametri sono impostati in modo predefinito.

La direttiva successiva riguarda la directory su disco da usare come area di caching delle richieste degli oggetti pervenute al proxy dai client:

cache_dir ufs /var/spool/squid 80000 16 256

La directory è di tipo ufs (il tipo di filesystem usato per il caching dei documenti richiesti) e /var/spool/squid ed i parametri specificati di seguito sono:

In generale, si potrebbe voler specificare una diversa cartella per il caching delle pagine squid (soprattutto se avete predisposto una partizione dedicata a ciò in fase di preparazione del sistema) ed un diverso valore della massima dimensione della memoria cache.

I parametri successivi riguardano i file di log e sono :

Il parametro successivo è:

È evidente che il server proxy lavorerà a stretto contatto con un DNS, pertanto non sarebbe una cattiva idea implementare un caching DNS interno per velocizzare la risoluzione DNS.

Definizione delle ACL su backend LDAP

A questo punto viene la parte fondamentale ovvero quella in cui vengono definite le liste di controllo degli accessi in base alle quali il proxy selezionerà gli utenti ed i client che possono accedere ai servizi offerti dal proxy stesso.

La sezione fondamentale al riguardo è auth_param.

Poiché il nostro proposito è quello di configurare un proxy server le cui ACL siano definite in rapporto ad un backend LDAP , è necessario specificare il gruppo di utenti che saranno assoggettati ad autenticazione e l'eseguibile che dovrà interrogare il DB LDAP per convalidare le credenziali di accesso fornite.

I parametri da specificare sono:

Dopo aver definito il metodo di autorizzazione usato dal server proxy e le ACL definiamo le azioni del server proxy sulle ACL così definite (ovvero permetti o blocca).

I parametri a ciò deputati sono:

E' fondamentale per il proxy l'ordine con cui vengono dichiarate nel file /etc/squid/squid.conf le azioni da compiere corrispondenti a ciascuna ACL. pertanto state attenti e perchè mettere http_deny all in cima alla lista di azioni farebbe respingere in ogni caso qualsiasi richiesta inficiando così tutto il vostro lavoro di configurazione!!

Infine potremmo voler indicare il nome con cui raggiungere il vostro proxy con la direttiva seguente :

visible_hostname proxy.example.com

questo vuol dire che ai vostri clients potrete passare il nome del server proxy.example.com che gli servirà per configurare l'uso del servizio proxy

Dando un'occhiata al file squid.conf vi renderete conto che esistono moltissime altre direttive di configurazione che potrete usare per ottimizzare il vostro servizio , ma quelle esposte corrispondono a quelle strettamente necessarie per un coretto funzionamento dello stesso.

Altri tipi di autorizzazione

In generale squid è molto flessibile e supporta 4 metodi di autorizzazione per le ACL :


CategoryServer CategoryDaRevisionare

Server/Proxy (l'ultima modifica è del 28/04/2024 16.32.24, fatta da garakkio)