GNU/Linux >> Linux Esercitazione >  >> Panels >> Webmin

Server proxy calamari

Questo articolo spiega cos'è un server proxy HTTP o FTP, quindi spiega come utilizzare Webmin per configurare il popolare server proxy Squid.

Contenuti

Introduzione al proxy e al calamaro

Un server proxy HTTP è fondamentalmente un programma che accetta richieste di URL dai client, le recupera per conto del client e restituisce i risultati al client. I proxy vengono utilizzati su reti in cui i client non hanno accesso diretto a Internet ma devono comunque essere in grado di visualizzare le pagine Web. Un proxy viene utilizzato anche per memorizzare nella cache le pagine comunemente richieste in modo che se più di un client desidera visualizzare la stessa pagina, deve essere scaricata solo una volta.

Molte aziende e organizzazioni hanno i loro firewall impostati per bloccare tutto il traffico in entrata e in uscita dai sistemi sulle LAN interne. Questo può essere fatto per motivi di sicurezza o per limitare ciò che i dipendenti possono accedere su Internet. Poiché essere in grado di visualizzare le pagine Web è estremamente utile, spesso viene impostato un proxy in modo che sia possibile accedere ai siti Web tramite esso.

Anche le grandi organizzazioni e gli ISP con molti PC client che accedono al Web potrebbero voler eseguire un server proxy per ridurre il carico sulle loro reti. Poiché una delle attività principali di un proxy è la memorizzazione nella cache delle pagine richieste dai client, qualsiasi pagina richiesta più di una volta verrà restituita dalla cache invece di essere recuperata dal server di origine. Per questo motivo i sistemi client sono spesso configurati o costretti a utilizzare un proxy di memorizzazione nella cache per accedere al Web.

Un proxy è utile solo se i browser client sono configurati per utilizzarlo invece di connettersi direttamente ai siti Web. Fortunatamente, tutti i browser Web esistenti e quasi tutti i programmi che scaricano file tramite HTTP per vari scopi possono essere configurati per utilizzare un proxy. Questo dice loro di creare una speciale connessione HTTP proxy al server proxy, specificando l'URL completo da scaricare.

I proxy non sono solo per HTTP:possono anche supportare le richieste del protocollo FTP e Gopher dai client, che servono effettuando una connessione FTP o Gopher al server effettivamente richiesto. Anche le connessioni SSL crittografate possono essere gestite da un proxy, anche se non è in grado di decrittografare la richiesta. Invece, il proxy inoltra semplicemente tutti i dati dal client al server di destinazione e viceversa.

Squid è il server proxy più popolare per i sistemi Unix/Linux. È open source ed è disponibile gratuitamente per il download da www.squid-cache.org, ed è incluso come pacchetto standard con tutte le distribuzioni Linux e molti altri sistemi operativi. Squid supporta sia il proxy, la memorizzazione nella cache e l'accelerazione HTTP e dispone di un gran numero di opzioni di configurazione per controllare il comportamento di queste funzionalità.

Squid legge la sua configurazione dal file di testo squid.conf, che di solito si trova nella o sotto la directory /etc. Questo file è costituito da una serie di direttive, una per riga, ognuna delle quali ha un nome e un valore. Ogni direttiva imposta alcune opzioni, come la porta TCP su cui ascoltare o una directory in cui archiviare i file memorizzati nella cache. Il modulo Squid di Webmin modifica questo file direttamente, ignorando eventuali commenti o direttive che non comprende.

Molte versioni di Squid sono state rilasciate nel corso degli anni, ognuna delle quali ha supportato diverse direttive di configurazione o assegnato significati diversi alle stesse direttive. Ciò significa che un file squid.conf dalla versione 2.0 potrebbe non essere compatibile con Squid 2.5 - e uno da Squid 2.5 certamente non funzionerà con la versione 2.0. Fortunatamente, Webmin sa quali direttive supporta ciascuna versione e consente solo la modifica di quelle note alla versione in esecuzione di Squid.

Le pagine Web memorizzate nella cache vengono archiviate in file in una struttura di directory a più livelli per migliorare le prestazioni del filesystem. Squid può essere configurato per utilizzare più directory cache separate, in modo da poter distribuire file su dischi diversi per migliorare le prestazioni. Ogni volta che viene richiesta una pagina memorizzabile nella cache, questa viene archiviata in un file, in modo che quando arriva una richiesta successiva per la stessa pagina il file può essere letto e da esso servito i dati. Poiché alcune pagine Web cambiano nel tempo (o addirittura vengono generate dinamicamente), Squid tiene traccia delle date di ultima modifica e scadenza delle pagine Web in modo da poter cancellare i dati dalla cache quando non sono aggiornati.

Il programma effettivo che gestisce le richieste dei client è un processo server permanentemente in esecuzione chiamato squid. Può anche avviare diversi altri processi secondari per attività come ricerche DNS o autenticazione client, ma tutta l'elaborazione del protocollo HTTP effettiva viene eseguita nel processo unico master. A differenza di altri server simili come Apache o Sendmail, Squid non avvia né utilizza processi secondari per gestire le richieste dei client.

Squid può essere compilato su tutte le versioni di Unix supportate da Webmin e funziona in modo quasi identico su tutte. Ciò significa che l'interfaccia utente del modulo Webmin è la stessa anche su tutti i sistemi operativi, ad eccezione dei percorsi predefiniti che utilizza per i programmi Squid e i file di configurazione.

Il modulo Squid Proxy Server

Se desideri impostare o configurare Squid da Webmin, dovrai utilizzare il modulo Squid Proxy Server, che si trova nella categoria Server. Quando si clicca sulla sua icona, apparirà la pagina mostrata nello screenshot qui sotto, supponendo che Squid sia installato e configurato correttamente. Come puoi vedere, la pagina principale è costituita solo da una tabella di icone, su ognuna delle quali è possibile fare clic per visualizzare un modulo per la modifica delle impostazioni in quella categoria.


La pagina principale del modulo Squid

Se non hai configurato o avviato Squid sul tuo sistema in precedenza, la directory della cache probabilmente non è stata ancora configurata. Il modulo lo rileverà e visualizzerà un messaggio come *La tua directory cache Squid /var/spool/squid non è stata inizializzata* sopra la tabella delle icone. Per inizializzare la cache, segui questi passaggi  :

  1. Se non sei soddisfatto della directory della cache visualizzata, ora è il momento di cambiarla. Segui le istruzioni nella sezione *Aggiunta di directory cache* per definire le tue directory prima di continuare.
  2. In come utente Unix campo immettere il nome dell'utente che sarà proprietario dei file di cache e con cui verrà eseguito il processo daemon. In genere questo sarà un utente calamaro speciale creato per lo scopo (e il campo verrà impostato automaticamente su calamaro se tale utente esiste), ma in realtà qualsiasi utente lo farà. Raccomando di utilizzare il modulo Utenti e gruppi (trattato nel capitolo 4) per creare un utente chiamato squid la cui home directory è la directory della cache, se necessario.
  3. Fai clic su Inizia cache pulsante. La configurazione di Squid verrà aggiornata per utilizzare il nome utente scelto e il comando squid -z verrà eseguito per configurare le directory della cache. Tutto l'output che produce verrà visualizzato in modo da poter vedere come sta procedendo l'inizializzazione.
  4. Al termine del processo, torna alla pagina principale del modulo e il messaggio di errore dovrebbe essere scomparso.

Se Squid non è affatto installato sul tuo sistema (o è installato in una posizione diversa da quella prevista da Webmin), un messaggio di errore come Il file di configurazione di Squid /etc/squid.conf non esiste apparirà nella pagina principale al posto della tabella delle icone. Se lo hai davvero installato, leggi la sezione *Configurazione del modulo Squid Proxy Server* per istruzioni su come modificare i percorsi utilizzati dal modulo. D'altra parte, se davvero non è installato dovresti usare il modulo Pacchetti software (coperto in SoftwarePackages) per installare il pacchetto squid dal tuo CD di distribuzione Linux o dal tuo sito web.

Se non esiste un pacchetto del genere per il tuo sistema operativo, dovrai scaricare, compilare e installare l'ultima versione di Squid da www.squid-cache.org. Finché hai un compilatore installato sul tuo sistema, questo è un processo relativamente semplice senza dipendenze.

Una volta installato il server, se si desidera utilizzarlo a lungo termine è necessario provvedere al suo avvio al momento dell'avvio, utilizzando il modulo Bootup and Shutdown (di cui il capitolo 9 spiega come utilizzare). Tutti i pacchetti Linux includono uno script di azione di avvio per Squid, sebbene possa essere disabilitato per impostazione predefinita, richiedendo quindi di abilitarlo in quel modulo. Altrimenti dovrai creare un'azione che esegua un comando come
/usr/local/squid/bin/squid  -sY
, supponendo che Squid sia installato in /usr/local/squid.

Una volta che Squid è stato installato e inizializzato, puoi iniziare a usare questo modulo. Quando Squid è in esecuzione, ogni pagina ha due link in alto:Applica modifiche che forza la rilettura della configurazione corrente e Stop Squid che chiude il server proxy. Se il server non è in esecuzione, quei collegamenti vengono sostituiti con *Start Squid*, che, come suggerisce il nome, tenta di avviarlo. Se non è ancora in esecuzione, probabilmente vorrai avviarlo ora.

Poiché ogni versione di Squid ha introdotto nuove direttive di configurazione, l'interfaccia utente di questo modulo apparirà in modo diverso a seconda della versione di Squid che rileva sul tuo sistema. Tutte le istruzioni in questo capitolo sono scritte per Squid 2.4 poiché è attualmente la versione più diffusa. Se stai eseguendo una versione precedente o successiva, nei moduli potrebbero essere visualizzati campi diversi o avere più o meno opzioni. Ad esempio, ogni nuova versione ha introdotto diversi tipi di ACL e l'autenticazione è stata gestita in tre modi diversi attraverso la cronologia del programma. Tuttavia, i concetti di base sono sempre stati gli stessi.

Quando utilizzi questo modulo, assicurati che il tuo browser sia configurato per non utilizzare il proxy Squid per accedere al tuo server Webmin. In caso contrario si corre il rischio di interrompere l'accesso al modulo se si commette un errore di configurazione o si arresta il processo del server. Tutti i browser che possono utilizzare un proxy hanno un campo per elencare gli host a cui connettersi direttamente, in cui puoi inserire il nome host del tuo server Webmin.

Modifica delle porte e degli indirizzi proxy

Per impostazione predefinita, Squid ascolta le richieste proxy sulla porta TCP 3128 su tutti gli indirizzi IP del tuo sistema. Poiché questa non è la solita porta su cui vengono eseguiti i proxy (8000 e 8080 sembrano essere le più comuni), potresti voler cambiarla. Potresti anche voler modificare l'indirizzo di ascolto in modo che solo i client sulla tua rete interna possano connettersi, se il tuo sistema ha più di un'interfaccia di rete.

Per specificare le porte utilizzate da Squid, segui questi passaggi :

  1. Nella pagina principale del modulo, fare clic su Porte e reti icona per visualizzare il modulo mostrato nella Figura 44-2.
  2. In Indirizzi proxy e porte tabella, selezionare l'opzione *Elencato di seguito*. Nella tabella seguente, ogni riga definisce una porta di ascolto e, facoltativamente, un indirizzo a cui associarsi. Verranno elencati tutte le porte e gli indirizzi esistenti, seguiti da una singola riga vuota per l'aggiunta di una nuova. Nel primo campo vuoto nella Porta colonna, inserisci un numero di porta come 8000 o 8080 . Nella colonna *Nome host/Indirizzo IP*, seleziona Tutto per accettare connessioni su una qualsiasi delle interfacce del tuo sistema, o la seconda opzione per inserire un indirizzo IP nella casella di testo adiacente. Usando questa tabella, Squid può essere configurato per ascoltare su tutte le porte che vuoi. Tuttavia, poiché viene visualizzata solo una riga vuota alla volta, dovrai salvare e riaprire il modulo per aggiungere più di una nuova porta.
  3. ICP è un protocollo utilizzato da Squid per comunicare con altri proxy in un cluster. Per ascoltare su una porta diversa da quella predefinita di 3130 per ICP, compilare la porta ICP campo. Tuttavia, ciò non è generalmente necessario, poiché solo altri proxy utilizzano questo protocollo.
  4. Squid normalmente accetterà connessioni ICP su qualsiasi indirizzo IP. Per cambiarlo, seleziona il secondo pulsante di opzione nel campo *Incoming UDP address* e inserisci uno degli IP dell'interfaccia del tuo sistema nel suo campo di testo. Questo può essere utile se tutti gli altri proxy con cui il tuo server potrebbe voler comunicare si trovano su un'unica LAN interna.
  5. Fai clic su Salva pulsante nella parte inferiore della pagina per aggiornare il file di configurazione con le nuove impostazioni, quindi fare clic sul collegamento *Applica modifiche* nella pagina principale per attivarle.


Le porte e il modulo di rete

Aggiunta di directory cache

Nella sua consueta configurazione predefinita, Squid utilizza un'unica directory per memorizzare le pagine memorizzate nella cache. In questa directory verranno archiviati al massimo 100 MB di dati, il che probabilmente non sarà sufficiente se serve un numero elevato di client attivi. Se il tuo sistema ha più di un disco rigido, ha senso distribuire la cache su più dischi per migliorare le prestazioni. Questo può essere fatto specificando più directory, ognuna con la propria dimensione massima.

In un sistema dedicato all'esecuzione di un server proxy, la quantità massima da memorizzare nella cache in ciascuna directory dovrebbe essere circa il 90% dello spazio disponibile. Non è saggio configurare o consentire a Squid di utilizzare tutto lo spazio libero su disco, poiché molti filesystem subiscono prestazioni ridotte quando sono quasi pieni. Inoltre, lo spazio su disco può essere utilizzato anche dai file di registro e dai dati dell'utente. Se Squid riempie l'intero disco rigido, potrebbero verificarsi problemi perché altri programmi non sono in grado di creare file temporanei o scrivere nei registri.

Per aggiungere una nuova directory cache e specificare la dimensione massima per quella esistente, segui questi passaggi :

  1. Fai clic su Opzioni cache icona nella pagina principale del modulo per visualizzare il modulo mostrato nello screenshot qui sotto.
  2. Nelle directory della cache campo, seleziona il Elencato opzione. Se Predefinito è stato scelto in precedenza, Squid avrebbe utilizzato la singola directory cache predefinita compilata visualizzata tra parentesi. Se si desidera continuare a utilizzare questa directory, è necessario immetterla esplicitamente nella tabella. La dimensione predefinita è 100 MB e utilizza 16 directory di 1° livello e 256 di 2° livello. Ogni riga della tabella specifica una singola directory della cache. Tutte le directory esistenti (a parte quella predefinita) verranno elencate in modo da poterle modificare, seguite da una singola riga vuota. Ogni riga ha campi sotto le seguenti colonne :
    • Rubrica Il percorso completo della directory cache di primo livello, ad esempio /var/spool/squid o /disk2/cache . Questa directory deve già esistere ed essere di proprietà dell'uso che viene eseguito da Squid (solitamente chiamato squid) - il modulo non la creerà per te.
    • Tipo Il tipo di archiviazione utilizzato nella directory. Devi sempre selezionare UFS qui.
    • Dimensione (MB) La quantità massima di dati che conterrà, in megabyte. Una volta raggiunto questo limite, i file più vecchi non richiesti verranno sostituiti con quelli nuovi.
    • Direzioni di 1° livello Il numero di sottodirectory che verranno create nella directory della cache. Il valore predefinito di 16 di solito va bene, ma potresti volerlo aumentare per cache molto grandi.
    • Direzioni di 2° livello Il numero di sottodirectory che verranno create in ciascuna directory di primo livello. Dovresti semplicemente inserire 256 a meno che la tua cache non sia molto grande.
    • Opzioni Lascia vuoto questo campo:viene utilizzato solo per altri tipi di directory. Se ti stai chiedendo perché Squid debba creare due livelli di sottodirectory in ciascuna directory della cache, il motivo è la scarsa prestazione di molti filesystem quando una directory contiene un gran numero di file. Poiché ogni singola pagina o immagine HTML memorizzata nella cache è archiviata in un file separato, il numero di file su un sistema proxy occupato può essere enorme. Diffondendoli su più directory risolve questo problema.
  1. Dopo aver aggiunto una directory, fai clic su Salva pulsante in fondo alla pagina. Se vuoi aggiungerne più di uno dovrai fare clic su Opzioni cache icona di nuovo per visualizzare nuovamente la tabella con una nuova riga vuota.
  2. Quando hai finito di definire le directory, torna alla pagina principale del modulo. Se ne è stato aggiunto uno nuovo, un messaggio di errore come Le tue directory della cache di Squid non sono state inizializzate sarà mostrato. Fai clic su Inizia cache pulsante per fare in modo che Squid crei tutte le sottodirectory in tutte le nuove directory della cache. Il server verrà spento durante il processo e

riavviato quando è completo.

  1. Al termine dell'inizializzazione, fai clic su Applica modifiche collegamento in qualsiasi pagina per iniziare a utilizzare le nuove directory.


Il modulo delle opzioni della cache

Modifica delle opzioni di memorizzazione nella cache e proxy

Squid ha numerose impostazioni che limitano la dimensione degli oggetti memorizzati nella cache, la dimensione delle richieste dei client e i tipi di pagine da memorizzare nella cache. Possono essere utilizzati per impedire al server di archiviare file enormi (come le immagini ISO scaricate), per limitare le dimensioni dei file che i client possono caricare o scaricare e per impedire la cache di pagine che cambiano frequentemente (come quelle generate dagli script CGI ). Le impostazioni predefinite generalmente funzioneranno bene, con la possibile eccezione della dimensione massima di caricamento che è solo 1 MB.

Per modificare le opzioni di memorizzazione nella cache, segui questi passaggi :

  1. Fai clic su Opzioni cache icona sulla pagina principale da visualizzare per il modulo mostrato di nuovo sopra.
  2. Per impostare la dimensione massima n. di file caricati, seleziona la seconda opzione in Dimensione massima del corpo della richiesta campo, inserisci un numero nella casella di testo e seleziona alcune unità dal menu. 10 o 100 MB dovrebbero essere più che sufficienti per chiunque.
  3. Per impedire ai client di scaricare file di grandi dimensioni, compilare il campo *Dimensione massima del corpo della risposta* allo stesso modo. Questo può essere utilizzato per prevenire l'abuso della tua rete da parte dei client che scaricano enormi film o file ISO, ma spesso può essere sovvertito scaricando un file di grandi dimensioni in pezzi.
  4. Se vuoi impostare un limite massimo per il file che una pagina può essere archiviata nella cache, compila il Tempo massimo per la cache campo invece di lasciarlo impostato su Predefinito . In caso contrario, i dati verranno memorizzati nella cache per un massimo di un anno o fino alla data di scadenza impostata dal server di origine.
  5. Oltre a memorizzare nella cache i file scaricati, Squid ricorderà i messaggi di errore dai server e li restituirà ai client che richiedono la stessa pagina. Puoi modificare la quantità di tempo durante la quale gli errori vengono memorizzati nella cache inserendo un numero e selezionando le unità in Tempo cache richieste non riuscite campo. Se Predefinito viene selezionato, gli errori verranno memorizzati nella cache per 5 minuti. Anche questo può essere fastidiosamente lungo se hai appena corretto un errore su un sito web.
  6. Squid memorizzerà nella cache le risposte alle ricerche di nomi host per ridurre la quantità di attività DNS, indipendentemente dai TTL forniti dai server DNS. Se Predefinito è selezionato nel campo *Tempo della cache di ricerca DNS*, le risposte verranno ricordate per 6 ore. Se questo sembra desiderare ardentemente per te, seleziona il secondo pulsante di opzione e inserisci invece il tuo tempo di cache.
  7. Il Non memorizzare nella cache gli URL per gli ACL campo può essere utilizzato per impedire completamente la memorizzazione nella cache di determinati URL, server Web o client. Qualsiasi richiesta che corrisponde a uno degli ACL selezionati in questo campo non verrà mai memorizzata nella cache e quindi verrà sempre recuperata direttamente. Puoi utilizzare questa funzione per bloccare la memorizzazione nella cache delle pagine generate dinamicamente creando un URL Path Regexp ACL per .cgi o cgi-bin e selezionandolo qui. Vedere la sezione *Utilizzo degli elenchi di controllo di accesso* per maggiori dettagli su come funzionano e possono essere definiti gli ACL.
  8. Premi Salva pulsante in fondo alla pagina per tornare al menu principale. Poiché alcune opzioni di memorizzazione nella cache aggiuntive si trovano nel modulo di utilizzo della memoria e del disco, fai clic su Utilizzo della memoria icona per visualizzarlo.
  9. Per limitare la quantità di memoria che Squid utilizzerà, compila il Limite di utilizzo della memoria campo. Si noti che questo limite influisce solo sulla memoria massima utilizzata per l'archiviazione di file in transito e a cui si accede frequentemente e sulle risposte negative. Poiché Squid usa la memoria per altri scopi, consumerà sicuramente più di qualunque cosa tu inserisca qui. Se Predefinito è selezionato, verrà applicato un limite di 8 MB, che è probabilmente troppo basso per un server occupato.
  10. Per impedire la memorizzazione nella cache di file di grandi dimensioni, compilare il campo *Dimensione massima dell'oggetto memorizzato nella cache*. L'impostazione predefinita è solo 4 MB, quindi se hai molto spazio su disco dovrebbe sicuramente essere aumentato.
  11. Premi Salva pulsante nella parte inferiore del modulo e quindi il pulsante Applica modifiche link nella pagina principale per attivare tutte le nuove impostazioni.

Introduzione alle liste di controllo accessi

Gli ACL (liste di controllo degli accessi) sono forse la funzionalità più potente di Squid. Un ACL è semplicemente un test che viene applicato a una richiesta del client per vedere se corrisponde o meno. Quindi, in base agli ACL corrispondenti a ciascuna richiesta, puoi scegliere di bloccarla, impedirne la memorizzazione nella cache, forzarla in un pool di ritardi o trasferirla a un altro server proxy. Esistono molti tipi diversi di ACL, ad esempio, un tipo controlla l'indirizzo IP di un client, un altro corrisponde all'URL richiesto, mentre altri controllano la porta di destinazione, il nome host del server Web, l'utente autenticato e così via.

L'uso più comune degli ACL è il blocco delle connessioni dai client all'esterno della rete. Se esegui un server proxy connesso e accessibile da Internet, gli host al di fuori della tua rete locale non dovrebbero essere autorizzati a usarlo. Le persone malintenzionate utilizzano spesso altri proxy per riciclare le connessioni utilizzate per l'hacking, l'invio di spam o l'accesso a siti Web a cui non dovrebbero essere autorizzati.

Poiché la speciale richiesta proxy CONNECT può essere utilizzata per connettersi a qualsiasi porta, viene spesso utilizzato un ACL per bloccarne l'utilizzo per qualsiasi porta diversa da 443 (l'impostazione predefinita SSL). Ciò impedisce agli utenti di utilizzare il tuo proxy per connettersi a server diversi dai server Web, come AIM, ICQ o MSN. Allo stesso modo, è possibile impostare un ACL per bloccare le normali richieste HTTP a porte come 22, 23 e 25 che vengono normalmente utilizzate per SSH, telnet e SMTP.

La semplice definizione di un ACL nella configurazione Squid in realtà non fa nulla:deve essere applicato in qualche modo per avere alcun effetto. Questa sezione spiega come usarli per controllare quali richieste al tuo server sono consentite o rifiutate. Altre sezioni spiegano come si riferiscono alla memorizzazione nella cache e all'accesso ad altri server.

Quando riceve una richiesta, Squid determina prima quali ACL corrisponde. Quindi confronta questo elenco di corrispondenze con un elenco di restrizioni proxy, ognuna delle quali contiene uno o più ACL e un'azione da eseguire (Consenti o Nega). Non appena viene rilevata una restrizione che corrisponde agli ACL per la richiesta, la sua azione determina se la richiesta è consentita o negata. Se nessuna restrizione corrisponde, viene applicata l'operazione opposta all'ultima nell'elenco. Per questo motivo, l'azione finale nella maggior parte delle configurazioni di Squid è Consenti tutto o Nega tutto .

Le richieste ICP da altri proxy vengono anche controllate per vedere quali ACL corrispondono e confrontate con un elenco simile ma diverso di restrizioni ICP per vedere se saranno consentite o meno. Vedi Connessione ad altri proxy sezione successiva per una spiegazione più complessa di cos'è l'ICP e quando viene utilizzato.

La tipica configurazione predefinita di Squid include diversi ACL e restrizioni proxy. Per motivi di sicurezza, tutte le richieste da qualsiasi luogo vengono rifiutate per impostazione predefinita. Ciò significa che dovrai modificare l'elenco delle restrizioni prima che chiunque possa utilizzare il tuo proxy. Continua a leggere per scoprire come.

Per visualizzare gli elenchi di ACL definiti, restrizioni proxy e restrizioni ICP, fare clic su Controllo accesso icona nella pagina principale del modulo. Come mostra l'immagine seguente, sulla sinistra viene visualizzata una tabella di ACL che mostra i loro nomi, tipi e corrispondenze. A destra ci sono le tabelle delle restrizioni proxy e ICP che mostrano le loro azioni e gli ACL a cui corrispondono. Le tabelle delle restrizioni hanno frecce su e giù accanto a ciascuna voce per spostarle nell'elenco, perché il loro ordine è importante.


La pagina degli elenchi di controllo accessi

Prima che i client possano utilizzare il tuo proxy, dovrai configurarlo per consentire l'accesso da alcuni indirizzi. I passaggi per farlo sono :

  1. Nella pagina di controllo dell'accesso, seleziona Indirizzo cliente dal menu sotto l'elenco degli ACL esistenti. Quando fai clic su Crea nuovo ACL apparirà un modulo per inserire gli indirizzi corrispondenti.
  2. Nel nome ACL campo inserisci un nome breve come tuarete .
  3. Nel campo vuoto sotto Da IP immettere l'indirizzo IP iniziale nell'intervallo da consentire, ad esempio 192.168.1.1.
  4. Se il campo sotto In IP inserisci l'indirizzo finale nell'intervallo, ad esempio 192.168.1.100 . Solo i client che rientrano in questo intervallo corrisponderanno all'ACL. NON inserire nulla nella Netmask campo.
  5. In alternativa, puoi specificare una rete IP inserendo l'indirizzo di rete in Da IP campo e la maschera di rete (come 255.255.255.0 ) nella Netmask campo. Per inserirne più di uno, dovrai salvare e modificare nuovamente questo ACL in modo che vengano visualizzati nuovi campi vuoti.
  6. Fai clic su Salva per aggiungere l'ACL e tornare alla pagina di controllo accessi in cui sarà elencata la tua nuova ACL.
  7. Fai clic su Aggiungi restrizione proxy sotto le Restrizioni proxy tavolo.
  8. Nel modulo visualizzato, seleziona Consenti dall'Azione campo.
  9. Negli ACL della partita elenco, seleziona la tua nuova tuarete ACL.
  10. Fai clic su Salva pulsante su questo modulo per tornare nuovamente alla pagina di controllo accessi. La nuova restrizione verrà visualizzata in fondo alla tabella, molto probabilmente sotto Nega tutto iscrizione.
  11. Fai clic sulla freccia su accanto alla nuova restrizione per spostarla sopra Nega tutto . Questo dice a Squid di consentire le connessioni dalla tua rete e negare a tutti gli altri.
  12. Infine, fai clic su Applica modifiche collegamento nella parte superiore della pagina. Il proxy sarà ora utilizzabile dai client sulla tua rete interna, ma da nessun altro!

Queste istruzioni presuppongono che tu stia iniziando con la configurazione predefinita di Squid. Se il proxy è già stato configurato per consentire l'accesso da qualsiasi luogo (modificando Nega tutto restrizione a Consenti tutto ), dovresti cambiarlo di nuovo per bloccare i client dall'esterno della tua rete. Per ulteriori informazioni sui tipi di ACL disponibili e su come utilizzarli, leggi le due sezioni successive.

Creazione e modifica di ACL

Prima di poter bloccare o consentire richieste da un indirizzo, un server o una pagina, dovrai creare un ACL appropriato. I passaggi di base per farlo sono :

  1. Selezionare il tipo di ACL da creare dal menu a discesa sotto la tabella *Elenchi di controllo accessi* e fare clic sul pulsante* Crea nuovo ACL*.
  2. Nel modulo visualizzato, inserisci un nome per il tuo nuovo ACL nel Nome ACL campo. Se più di uno ha lo stesso nome, verrà considerato come corrispondente se qualsiasi ACL con quel nome corrisponde. Il nome deve essere composto solo da lettere e numeri, senza spazi o caratteri speciali.
  3. Compila il resto del modulo come spiegato nella tabella sottostante.
  4. Nell'URL di errore campo, inserisci un URL completo a cui verranno reindirizzati i client che sono stati rifiutati da questo ACL. Ciò ti consente di definire pagine di errore personalizzate da visualizzare al posto delle risposte Squid predefinite.
  5. Fai clic su Salva pulsante in fondo al modulo.

Una volta creato un ACL, puoi modificarlo facendo clic sul suo nome nell'elenco, modificando i campi e facendo clic su Salva . Oppure puoi eliminarlo (se non è utilizzato da qualche proxy o restrizione ICP) con Elimina pulsante. Come al solito, Applica modifiche il link deve essere utilizzato per attivare eventuali modifiche apportate.

Squid ha un numero incredibile di tipi di ACL, anche se non tutti sono disponibili in tutte le versioni del server. La tabella seguente elenca quelli che puoi creare per Squid 2.4 e spiega cosa fanno e cosa significano i campi del modulo di creazione per un ACL di ogni tipo :

Molti tipi di ACL sono inappropriati per determinate situazioni. Ad esempio, se un client invia una richiesta CONNECT, il percorso dell'URL non è disponibile e quindi un Regexp percorso URL L'ACL non funzionerà. In casi come questo si presume automaticamente che l'ACL non corrisponda.

Creazione e modifica delle restrizioni proxy

Dopo aver creato alcuni ACL, è possibile utilizzarli creando, modificando e spostando le restrizioni del proxy. Squid confronterà ogni richiesta con tutte le restrizioni definite in ordine, fermandosi quando ne trova una corrispondente. L'azione impostata per tale restrizione determina quindi se la richiesta è consentita o negata. Questo sistema di elaborazione, combinato con la potenza degli ACL, ti consente di impostare alcune regole di controllo degli accessi incredibilmente complesse, ad esempio puoi negare l'accesso a tutti i siti con terremoto nell'URL tra le 9:00 e le 17:00 dal lunedì al venerdì, ad eccezione di alcuni indirizzi client.

Per creare una restrizione proxy, segui questi passaggi :

  1. Fai clic su Controllo accesso icona nella pagina principale del modulo per visualizzare la pagina mostrata nello screenshot qui sopra.
  2. Fai clic su Aggiungi restrizione proxy sotto l'elenco delle restrizioni esistenti per passare al modulo di creazione.
  3. Dall'Azione campo seleziona Consenti o Nega a seconda che desideri che le richieste corrispondenti vengano elaborate o meno.
  4. Gli ACL della partita list può essere utilizzato per selezionare più ACL che, se tutti corrispondono, attiveranno l'azione. Allo stesso modo, Non corrispondere agli ACL campo può essere utilizzato per selezionare ACL che non devono corrispondere affinché l'azione venga attivata. È perfettamente valido effettuare selezioni da entrambi gli elenchi per indicare che l'azione deve essere attivata solo se tutti gli ACL a sinistra corrispondono e se quelli a destra no. Nella sua configurazione predefinita Squid ha un ACL chiamato all che corrisponde a tutte le richieste. Può essere utile per creare restrizioni che consentono o negano a tutti, una delle quali di solito esiste per impostazione predefinita.
  5. Fai clic su Salva per creare la nuova restrizione e tornare alla pagina di controllo accessi.
  6. Utilizza le frecce accanto ad esso nelle Restrizioni proxy tabella per spostarla nella posizione corretta. Se l'elenco termina con un Nega tutto voce, sarà necessario spostarlo dalla parte inferiore affinché abbia alcun effetto. Se l'elenco ha una voce che consente a tutti i client della tua rete e hai appena aggiunto una restrizione per negare l'accesso ad alcuni siti, dovrai spostarla sopra quella Consenti anche per utilizzarlo.
  7. Quando hai finito di creare e posizionare le restrizioni, clicca su Applica modifiche link nella parte superiore del

pagina per renderli attivi.

Dopo aver creato una restrizione proxy, puoi modificarla facendo clic sul collegamento in Azione colonna per la sua riga nella tabella. Verrà visualizzato un modulo di modifica identico a quello utilizzato per creare la restrizione, ma con Salva e Elimina pulsanti in basso. Il primo salverà tutte le modifiche apportate all'azione o agli ACL corrispondenti, mentre il secondo rimuoverà del tutto la restrizione. Anche in questo caso, Applica modifiche collegamento deve essere utilizzato dopo l'aggiornamento o l'eliminazione di una restrizione per rendere attiva la modifica. Se per qualche motivo elimini tutte le restrizioni del proxy, Squid consentirà tutte le richieste da tutti i client, il che probabilmente non è una buona idea.

Anche nella pagina di controllo dell'accesso è presente una tabella per la modifica e la creazione di restrizioni che si applicano alle richieste ICP. As the *Connecting to other proxies* section explains, ICP is a protocol used by Squid proxies in a cluster or hierarchy to determine what URLs other servers have cached. You can add to and edit entries in the ICP restrictions table in exactly the same way as you would for proxy restrictions. If you really are running a cluster of proxies, it may make sense to block ICP requests from sources other than your own network. If not, the default setup that allows all ICP packets is fine.

Setting up proxy authentication

Even though it is possible to configure Squid to allow access only from certain IP addresses, you may want to force clients to authenticate themselves to the proxy as well. This might make sense if you want to give only certain people access to the web, and cannot use IP address validation due to the use of dynamically assigned addresses on your network. It is also handy for keeping track of who has requested what through the proxy, as usernames are recorded in the Squid logs.

All browsers and programs that can make use of a proxy also support proxy authentication. Browsers will pop up a login window for entering a username and password to be sent to the proxy the first time it requests them, and automatically send the same information for all subsequent requests. Other programs (such as wget or rpm) require the username and password to be specified on the command line.

Each login and password received by Squid is passed to an external authentication program which either approves or denies it. Typically this program checks against a separate users file, but it is possible to write your own programs that use all sorts of methods of validating users - for example, they might be looked up in a database, or an LDAP server, or the Unix user list. Webmin comes with a simple program that reads users from a text file in the same format as is used by Apache, and this module allows you to edit users in such a file.

The steps to turn on authentication for your Squid proxy are :

  1. On the module's main page, click on the Access Control icon to bring up the form shown in Figure 44-4.
  2. Select External Auth from the menu below the ACL table and hit the Create new ACL pulsante.
  3. In the form that appears, enter auth for the ACL name and select All users in the External auth users campo. Then, hit the Save button.
  4. Click on Add proxy restriction below proxy restrictions table.
  5. Select Deny in the Action field and choose your new auth ACL from the Don’t match ACLs elenco. This will block any proxy requests that are not authenticated, thus forcing clients to log in.
    Selecting Allow and then choosing auth from the Match ACLs field can be used for a slightly different purpose. This creates a proxy restriction that allows access to all authenticated clients, which can be positioned to force clients outside your network to log in while not requiring it for those inside the network.
  6. Fai clic su Salva button to return to the access control page again.
  7. Use the up arrow next to the new restriction to move it above any entry in the table that allows all access from your own network. If it is below this entry, clients from the network will be able to use the proxy without needing to log in at all. Of course, this may be what you want in some cases.
  8. Click on the Authentication Programs icon back on the main page.
  9. From the Authentication program field, select Webmin default . This tells the module to use the simple text-file authenticator that comes with the module so that you don’t have to write your own. Of course, you can specify your own custom program by selecting the last radio button and entering the full path to a script with some parameters in the adjacent text box. This program must continually read lines containing a username and password (separated by a space) as input, and for each output either the line OK or ERR for success or failure, respectively. Squid will run several instances of the program as permanent daemon processes when it is started.
  10. The login window that appears in browsers includes a description of the proxy server that the user is logging into. By default, this is Squid proxy-caching web server, but you can enter your own (such as Example Corporation Proxy) by filling in the Proxy authentication realm field.
  11. Normally, Squid will cache valid logins for one hour to avoid calling on the authentication program for every single request. This means that password changes may take up to an hour to take effect, which can be confusing. To lower this limit, at the cost of increased system load and slightly slower request processing, edit the Time to cache passwords for field.
  12. Hit the Save button and then click on Apply Changes on the main page.

Now that authentication is enabled, any attempts to use your proxy from a web browser will cause a login window to appear. Because no valid users have been defined yet, no logins will be accepted, which is not particularly useful! To create some users for authentication, follow these steps:

  1. Click on the Proxy Authentication icon on the module’s main page to bring up a table listing proxy users. At first, this will be empty.
  2. Click on the Add a new proxy user link above or below the table to display the user creation form. Configuring Logging 595
  3. Enter a login name into the Username field and a password for the user in the Password field.
  4. To temporarily disable this user without deleting him, change the Enabled? field to No.
  5. Hit the Create button to add the user and then click the Apply Changes link. This last step is necessary after creating a user for the changes to take effect, as Webmin’s Squid authentication program only reads the user file when first started.

A user can be edited by clicking on its name in the proxy users list, changing the username, password, or enabled status, and hitting the Save pulsante. You can also completely remove a user with the Delete pulsante sul suo modulo di modifica. Again, Apply Changes must be clicked to make anymodifications or deletions active. Squid will also cache valid passwords (as explained above) to reduce the load on theauthentication program, so a password change may take some time to take effect.

The module’s user management feature will only work if you choose Webmin default in the Authentication program field or if your own custom program takes the full path to an Apache-style users file as a parameter. If your program validates users against some other database or server, or if the module cannot figure out which file contains users from the command, the Proxy Authentication icon will not appear. Sometimes you may want to allow normal UNIX users to log in to your program with the same passwords that they use for telnet and FTP. Even though it is possible to write a program that does proxy authentication against the UNIX user database, there is another solution—configuring the module to add, delete, and update proxy users whenever a UNIX user is created, removed, or renamed. This is most useful for keeping usernames and passwords in sync without needing to grant access to every single UNIX user. Once you have normal authentication set up as explained above, synchronization can be turned on by following these steps:

  1. On the module’s main page, click on the Module Config link in the top-left corner.
  2. As their names suggest, the Create proxy users when creating system users, Update proxy users when updating system users, and Delete proxy users when deleting system users fields control the automatic creation, modification, and deletion of proxy users when the same thing happens to a UNIX user. For each one, you can either select Yes or No. You should probably turn on synchronization for updates and deletions, but leave it off for creations so that you can explicitly control who gets access to the proxy.
  3. Hit the Save button at the bottom of the form to activate the new settings. From now on, actions performed in Webmin’s Users and Groups module will also affect the Squid user list in the ways you have chosen. Adding a user at the command line with useradd or changing a password with the passwd command, however, will not.

Webmin
  1. Come installare e configurare Squid Proxy su Ubuntu 20.04

  2. Come installare e configurare Squid Proxy su Debian 11

  3. Come installare e configurare Squid Proxy su Rocky Linux/Alma Linux 8

  4. Come installare Squid Proxy su AlmaLinux 8

  5. Squid Proxy - Nascondere il proxy

Come configurare Squid Proxy Server su Ubuntu 20.04 LTS

Come installare l'ultimo server proxy Squid su Linux

Installa Squid Proxy Server su Ubuntu 20.04 LTS Linux

Installa Squid Proxy Server su Rocky Linux 8 e AlmaLinux 8

Come creare un proxy HTTP utilizzando Squid su CentOS 8

Come installare il server proxy Squid su Ubuntu 18.04