Configurazione Squid · 8 min read · Nov 06, 2025
Debian Squeeze, Squid, Autenticazione Kerberos/LDAP, Integrazione Active Directory e Cyfin Reporter - Pagina 2
Configurare Squid
Per utilizzare il nostro accesso LDAP ridondante e le autorizzazioni tramite Gruppi di Sicurezza in Active Directory, dobbiamo creare un account con permessi per cercare gli attributi di Active Directory. Squid utilizzerà quindi questo account per fornire accesso agli utenti.
In Active Directory, crea un utente chiamato “Squid Proxy” con il nome di accesso [email protected] e annota la password, sostituendo la parola “squidpass” qui sotto con la tua password.
Assicurati che quanto segue sia vero durante la creazione dell’account.
- L’utente deve cambiare la password al prossimo accesso Non selezionato
- L’utente non può cambiare la password Selezionato
- La password non scade Selezionato
- L’account è disabilitato Non selezionato
Per impostazione predefinita, l’account squid non sarà in grado di interrogare l’attributo “memberOf” in AD. Seleziona il livello superiore del tuo dominio di Active Directory in Utenti e Computer di Active Directory, fai clic con il tasto destro su di esso e scegli proprietà, scheda Sicurezza, aggiungi l’utente squid e concedi i permessi di lettura (dovrebbe avvenire per impostazione predefinita) e consenti di leggere “Questo oggetto e tutti gli oggetti figlio” entrando nelle opzioni avanzate.
Crea i seguenti Gruppi di Sicurezza con descrizioni in Active Directory e aggiungi gli utenti ai gruppi pertinenti - se un utente non fa parte di un gruppo, potrà accedere solo ai siti nell’ACL whitelistsites.
I membri di Internet Users non potranno accedere ai siti web nell’ACL blocksites.
- Internet Users | Descrizione: I membri di questo gruppo possono accedere a Internet. L’accesso è registrato con restrizioni sui siti web
- Internet Users Full Log | Descrizione: I membri di questo gruppo possono accedere a Internet. L’accesso è registrato con accesso completo ai siti web
- Internet Users Full NoLog | Descrizione: I membri di questo gruppo possono accedere a Internet. L’accesso non è registrato con accesso completo ai siti web
Procediamo quindi a configurare squid e i suoi file di configurazione associati.
Avvio di Squid
Aggiungi la seguente configurazione a /etc/default/squid3 (questo file non esiste per impostazione predefinita).
vi /etc/default/squid3KRB5_KTNAME=/etc/squid3/PROXY.keytab
export KRB5_KTNAMEsquid.conf
cp /etc/squid3/squid.conf /etc/squid3/squid.conf.default
cat /dev/null > /etc/squid3/squid.conf
vi /etc/squid3/squid.conf
Aggiorna la variabile del gestore della cache con l’indirizzo email della persona responsabile del proxy.
Studia e aggiorna attentamente il seguente testo, sostituendo il contenuto di esempio (evidenziato) con la configurazione della tua rete - se commetti un errore, il tuo proxy non funzionerà.
####### /etc/squid3/squid.conf File di Configurazione #######
####### gestore della cache
cache_mgr [email protected]
####### autenticazione kerberos
auth_param negotiate program /usr/lib/squid3/squid_kerb_auth -d -s HTTP/squidproxy.example.local
auth_param negotiate children 10
auth_param negotiate keep_alive on
####### fornire accesso tramite ldap per i client non autenticati tramite kerberos
auth_param basic program /usr/lib/squid3/squid_ldap_auth -R \
-b "dc=example,dc=local" \
-D [email protected] \
-w "squidpass" \
-f sAMAccountName=%s \
-h domaincontroller1.example.local
auth_param basic children 10
auth_param basic realm Internet Proxy
auth_param basic credentialsttl 1 minute
####### autorizzazioni ldap
# accesso proxy ristretto registrato
external_acl_type internet_users %LOGIN /usr/lib/squid3/squid_ldap_group -R -K \
-b "dc=example,dc=local" \
-D [email protected] \
-w "squidpass" \
-f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=Internet Users,ou=Security Groups,ou=MyBusiness,dc=example,dc=local))" \
-h domaincontroller1.example.local
# accesso completo al proxy senza registrazione
external_acl_type internet_users_full_nolog %LOGIN /usr/lib/squid3/squid_ldap_group -R -K \
-b "dc=example,dc=local" \
-D [email protected] \
-w "squidpass" \
-f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=Internet Users Full NoLog,ou=Security Groups,ou=MyBusiness,dc=example,dc=local))" \
-h domaincontroller1.example.local
# accesso completo al proxy registrato
external_acl_type internet_users_full_log %LOGIN /usr/lib/squid3/squid_ldap_group -R -K \
-b "dc=example,dc=local" \
-D [email protected] \
-w "squidpass" \
-f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=Internet Users Full Log,ou=Security Groups,ou=MyBusiness,dc=example,dc=local))" \
-h domaincontroller1.example.local
####### acl per autenticazione proxy e autorizzazioni ldap
acl auth proxy_auth REQUIRED
# formato "acl, aclname, acltype, acltypename, activedirectorygroup"
acl RestrictedAccessLog external internet_users Internet\ Users
acl FullAccessNoLog external internet_users_full_nolog Internet\ Users\ Full\ NoLog
acl FullAccessLog external internet_users_full_log Internet\ Users\ Full\ Log
acl whitelistsites url_regex -i "/etc/squid3/whitelistsites.txt"
acl blockedsites url_regex -i "/etc/squid3/blockedsites.txt"
####### impostazioni predefinite di squid
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # porte non registrate
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
####### applicare l'autenticazione: l'ordine delle regole è importante per i livelli di autorizzazione
no_cache deny whitelistsites
http_access allow whitelistsites
http_access allow FullAccessNoLog auth
http_access allow FullAccessLog auth
http_access deny blockedsites
http_access allow RestrictedAccessLog auth
####### registrazione
# non registrare whitelistsites, FullAccessNoLog
access_log /var/log/squid3/access.log squid !whitelistsites !FullAccessNoLog
####### impostazioni predefinite di squid
http_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
coredump_dir /var/spool/squid3
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
touch /etc/squid3/whitelistsites.txt
touch /etc/squid3/blockedsites.txt
invoke-rc.d squid3 restart
Configurazione Automatica del Proxy
Installa Apache2:
apt-get install apache2Aggiungi una configurazione ad Apache2 per identificare il formato del file dello script di configurazione del proxy.
vi /etc/apache2/conf.d/wpad.datAddType application/x-ns-proxy-autoconfig .datCrea il nostro file wpad.dat utilizzato dai browser web per la configurazione:
vi /var/www/wpad.datCambia la riga che inizia con $proxy con il FQDN del tuo proxy (testo evidenziato).
function FindProxyForURL(url, host)
{
$proxy = "PROXY squidproxy.example.local:3128";
// Gli URL all'interno di questa rete vengono accessibili direttamente
if (isInNet(host, "192.168.0.0", "255.255.0.0")) {return "DIRECT";}
if (isInNet(host, "172.16.0.0", "255.240.0.0")) {return "DIRECT";}
if (isInNet(host, "10.0.0.0", "255.0.0.0")) {return "DIRECT";}
if (isInNet(host, "127.0.0.0", "255.0.0.0")) {return "DIRECT";}
//Restituisci il proxy per TUTTO il resto
else return $proxy;
}
Riavvia Apache2:
invoke-rc.d apache2 restartVoci DNS WPAD
Attenzione: Una volta aggiunta la seguente voce DNS, il proxy diventerà attivo. Fermati a questo punto e controlla.
- Che i browser dei client stiano utilizzando l’Autenticazione Integrata di Windows
- Che hai aggiunto tutti gli utenti ai gruppi di sicurezza Internet Users pertinenti in AD
- Che tutti i browser dei client siano impostati per utilizzare automaticamente la rilevazione delle impostazioni del proxy per l’accesso a Internet. Utilizzare la policy di gruppo è un’opzione sensata qui o forse limitare l’accesso HTTP in uscita sul tuo firewall per escludere gli utenti senza configurazione di rilevamento automatico.
Testa l’accesso con Internet Explorer selezionando “Utilizza script di configurazione automatica” e inserendo http://squidproxy.example.local/wpad.dat (cambia il FQDN del proxy con il tuo, ovviamente) nel campo dell’indirizzo e poi accedi a qualsiasi sito web. Buona fortuna, spero funzioni! Fermati qui e risolvi i problemi se non funziona, altrimenti finirai con molti utenti arrabbiati!
Aggiungi un record CNAME in DNS per puntare wpad.example.local a squidproxy.example.local
Nota: Server 2008 viene fornito con una misura di sicurezza che blocca wpad, l’ho visto anche su server 2003
Per rimuovere la restrizione DNS wpad, ma lasciare abilitata la Blocklist, esegui Regedit e apri la seguente posizione.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters\GlobalQueryBlockList
Il server 2008 avrà probabilmente le voci di WPAD e ISATAP. Rimuovi l’entrata WPAD e riavvia il servizio DNS affinché ricarichi la Blocklist. Dovresti quindi essere in grado di risolvere wpad.example.local
Quindi imposta il tuo browser per utilizzare la configurazione automatica del proxy. Tutti i moderni browser web seguono lo standard wpad e tenteranno di cercare http://wpad.example.local/wpad.dat per le loro informazioni di configurazione.
Maggiori informazioni su WPAD possono essere trovate qui: http://wiki.squid-cache.org/Technology/WPAD/DNS
Controlla i tuoi log di squid per vedere che i browser stanno utilizzando il proxy.
Facoltativo: Installare Cyphin Reporter
Con i proxy che gestiamo, abbiamo bisogno di report decenti. Programmi come sarg, mysar ecc. non erano all’altezza come opzioni di reporting decenti per monitorare l’uso di Internet degli utenti. Cyfin Reporter di Wavecrest si è dimostrato un sistema di reporting molto capace e intuitivo con molte funzionalità.
Ecco come impostare e installare Cyfin Reporter con squid su Debian Squeeze.
L’ultima versione di Cyfin Reporter al momento della scrittura è la versione 8.5. Controlla i seguenti luoghi a seconda della tua architettura prima di scaricare e aggiorna i seguenti comandi dove necessario.
http://downloads.wavecrest.net/release/cyfin/linux32/
http://downloads.wavecrest.net/release/cyfin/linux64/
Quindi la tua installazione potrebbe apparire qualcosa del genere…
cd /usr/local/src/
wget “http://downloads.wavecrest.net/release/cyfin/linux32/v850/c850linux32.bin.gz”
gunzip c850linux32.bin.gz
chmod +x c850linux32.bin
N.B Il programma Install Anywhere interferisce con PS1, quindi cambiare questo per la shell corrente risolve il problema.
export PS1=”>”
./c850linux32.bin
Quando ti viene chiesto riguardo al percorso di installazione, inseriscilo come
* INSERISCI UN PERCORSO ASSOLUTO, O PREMI PER ACCETTARE IL PREDEFINITO
: /opt/wavecrest/cyfin*Accetta tutto il resto come predefinito.
Dobbiamo creare uno script di avvio per avviare e fermare cyfin nel modo Debian.
vi /etc/init.d/cyfin#! /bin/sh
### BEGIN INIT INFO
# Provides: cyfin
# Required-Start: $network $remote_fs
# Required-Stop: $network $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: script di avvio cyfin reporter
### END INIT INFO
NAME=cyfin
SCRIPTNAME=/etc/init.d/$NAME
# Carica l'impostazione VERBOSE e altre variabili rcS
. /lib/init/vars.sh
# Definisci le funzioni di log LSB.
# Dipendi da lsb-base (>= 3.2-14) per garantire che questo file sia presente
# e status_of_proc funzioni.
. /lib/lsb/init-functions
case "$1" in
start) sh /opt/wavecrest/cyfin/cyfin start
;;
stop) sh /opt/wavecrest/cyfin/cyfin stop
;;
status) sh /opt/wavecrest/cyfin/cyfin start
;;
restart) sh /opt/wavecrest/cyfin/cyfin restart
;;
*) echo "Uso: $SCRIPTNAME {start|stop|status|restart}" >&2
exit 3
;;
esac
:
chmod +x /etc/init.d/cyfin
update-rc.d cyfin defaults
Configurare Cyfin Reporter richiederebbe un tutorial completamente nuovo, quindi ecco le basi.
Accedi all’interfaccia di configurazione tramite http://squidproxy.example.local:7999. Il login per impostazione predefinita è “admin” per il nome utente e la password.
- Usa l’aiuto nell’interfaccia grafica poiché la documentazione è molto buona.
- Controlla le FAQ su http://www.wavecrest.net/support/cyfin/reporter/faqs.html
- Usa il menu Avvio Veloce per impostare le basi, che sono abbastanza semplici.
- Abilita il Data Manager per importare file di log e impostare un programma di importazione dei file di log.
- utilizza l’integrazione in Active Directory, puoi utilizzare l’account squid creato per l’autenticazione LDAP per estrarre anche informazioni da Active Directory.
- Configura un programma per importare elenchi di utenti da Active Directory.
- Dovresti assicurarti che i tuoi utenti facciano parte di un gruppo di sicurezza o di distribuzione in Active Directory e aggiungere questi gruppi a Cyfin Reporter.
- Assegna il Manager dei dipartimenti come destinatario dei report via email.
- Imposta account di accesso per il personale con permesso di visualizzare i log.
Se utilizzi Cyfin Reporter, devi tenere conto di un ulteriore utilizzo di memoria, quindi assicurati di allocare risorse sufficienti per eseguirlo.
Questo conclude il tutorial. Spero sia utile.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.