Configurare il server proxy Squid con DansGuardian e ipmasq
Panoramica
Questa guida descrive come configurare Squid per l’autenticazione NTLM, collegarlo a DansGuardian per il filtraggio dei contenuti e usare ipmasq per il routing e il proxying trasparente. Include inoltre uno script per impostare i permessi di winbind ad ogni avvio e suggerimenti per test e risoluzione problemi.
Definizione rapida: NTLM è un protocollo di autenticazione Microsoft usato spesso in domini Active Directory.
Prerequisiti
- Sistema Linux con Squid, DansGuardian, Samba/winbind e ipmasq disponibili.
- Accesso root o privilegi sudo.
- Macchine cliente nella rete (alcune eventualmente non appartenenti al dominio) per i test.
Backup e modifica di /etc/squid/squid.conf
Fai una copia di sicurezza prima di modificare la configurazione di Squid:
cp /etc/squid/squid.conf /etc/squid/squid.conf.bak
nano -c /etc/squid/squid.conf
Modifica le righe indicate nel file:
- Cambia la riga 73 in:
http_port 127.0.0.1:3128 transparent
- Cambia la riga 74 in:
http_port 8080
- Cambia la riga 593 in:
cache_peer 127.0.0.1 parent 8081 0 no-query login=*:nopassword
- Rimuovi il commento (uncomment) tra le righe 1783 e 1791 e sostituisci il segnaposto con:
/usr/bin/ntlm_auth –helper-protocol=squid-2.5-ntlmssp
- Rimuovi il commento tra le righe 1800 e 1803 e sostituisci il segnaposto con:
/usr/bin/ntlm_auth –helper-protocol=squid-2.5-basic
- Cambia la riga 2449 in:
acl ntlm_auth proxy_auth REQUIRED
- Cambia la riga 2579 in:
http_access allow ntlm_auth
- Cambia la riga 3161 in:
forwarded_for off
Salva il file.
Importante: la direttiva forwarded_for imposta se Squid aggiunge o meno l’IP interno dell’utente nella richiesta HTTP. Lasciarla attiva può esporre IP interni ai siti esterni.
Permessi di winbind e script di avvio
Squid necessita di accesso a /var/run/samba/winbindd_privileged. I permessi possono essere corretti ma vengono spesso resettati al riavvio. Per risolvere in modo persistente, crea uno script di avvio che imposti i permessi ad ogni boot.
Crea o modifica il file /etc/init.d/winbind-ch.sh e incollaci dentro il seguente contenuto:
#!/bin/sh
#set -x
WINBINDD_PRIVILEGED=/var/run/samba/winbindd_privileged
chmodgrp() {
chgrp proxy $WINBINDD_PRIVILEGED || return 1
chmod g+w $WINBINDD_PRIVILEGED || return 1
}
case "$1" in
start)
chmodgrp
;;
restart|reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
stop)
;;
*)
echo "Usage: $0 start|stop" >&2
exit 3
;;
esac
#EOF
Quindi registra lo script per l’avvio:
update-rc.d winbind-ch.sh start 21 2 3 4 5 .
Nota: assicurati che lo script sia eseguibile (chmod +x /etc/init.d/winbind-ch.sh) e che l’utente/groupproxy esista sul sistema.
Configurare DansGuardian
Modifica il file principale di DansGuardian:
- Apri /etc/dansguardian/dansguardian.conf e commenta la riga 3.
- Vai alla riga 62 e cambia la porta da 8080 a 8081.
- Cambia filtergroups = 1 (riga 102) in filtergroups = 2 e crea i file di configurazione per il nuovo gruppo.
Esempio di copia per il nuovo gruppo:
cp /etc/dansguardian/dansguardianf1.conf /etc/dansguardian/dansguardianf2.conf
nano -c /etc/dansguardian/dansguardianf2.conf
Nel file del secondo gruppo, vai alla riga 29 e impostala così:
naughtynesslimit = 100
Anti-Virus: le definizioni degli antivirus non dovrebbero essere scandite da DansGuardian perché possono essere bloccate.
Aggiungi il sito di aggiornamenti del tuo AV alla whitelist antivirus di DansGuardian:
- Modifica /etc/dansguardian/exceptionvirussitelist e aggiungi il DNS del servizio di definizioni. Per esempio:
activeupdate.trendmicro.com
- Se necessario, aggiungi anche il dominio alla site exception list:
Modifica /etc/dansguardian/exceptionsitelist e aggiungi:
trendmicro.com
Riavvia DansGuardian:
/etc/init.d/dansguardian restart
Configurare il firewall con ipmasq
Ipmasq è un’utilità che semplifica la configurazione di firewall e routing. Per installarla:
apt-get install ipmasq -y
Per abilitare il proxy trasparente e reindirizzare tutte le richieste HTTP in uscita a DansGuardian (porta 8081), copia la regola di esempio:
cp /usr/share/doc/ipmasq/examples/basics/I89tproxy.rul /etc/ipmasq/rules/I89tproxy.rul
Se hai server interni che necessitano di port forwarding, consulta l’esempio DNAT:
/usr/share/doc/ipmasq/examples/dnat/C50dnat.rul
Installare il modulo DansGuardian per Webmin
Apri un browser e vai a:
Accedi come root. Vai in Webmin > Webmin Configuration > Webmin Modules. Seleziona “From ftp or http URL” e incolla il seguente URL, poi clicca su Install Module:
http://internap.dl.sourceforge.net/sourceforge/dgwebminmodule/dg-0.5.10-pr5.wbm
Test finali e scenari
- Riavvia il sistema.
- Configura il browser su una macchina client per usare il proxy all’indirizzo IP della macchina proxy e porta 8080. Se il dominio è correttamente integrato, l’accesso NTLM dovrebbe essere automatico.
- In Internet Explorer, se NTLM fallisce, potrebbe essere necessario immettere domainname\username manualmente.
- Prova una macchina non joinata al dominio e non configurata per il proxy per vedere come viene gestita la richiesta.
Accedi a Webmin e verifica i log di DansGuardian. Dovresti vedere il nome utente del computer di dominio e i siti visitati.
Comportamento atteso:
- I computer di dominio passano per Squid → DansGuardian → Squid.
- I computer non joinati passano direttamente a DansGuardian → Squid.
Se non funziona, controlla il syslog e i log di Squid e DansGuardian per messaggi di errore.
Check-list operativa per l’amministratore
- Backup di /etc/squid/squid.conf
- Applicare le modifiche alle righe indicate in squid.conf
- Creare e rendere eseguibile /etc/init.d/winbind-ch.sh
- Registrare lo script con update-rc.d
- Modificare dansguardian.conf e duplicare i gruppi filtro
- Aggiungere eccezioni antivirus e domini alla whitelist
- Installare ipmasq e importare la regola I89tproxy.rul
- Installare il modulo Webmin, riavviare e testare
Test di accettazione essenziali
- Il proxy risponde su 127.0.0.1:3128 e su 8080.
- DansGuardian ascolta su 8081 e filtra le richieste.
- L’autenticazione NTLM passa correttamente per utenti di dominio.
- I permessi del file winbindd_privileged sono settati dopo il riavvio.
- I log mostrano i nomi utente corretti e le richieste filtrate.
Risoluzione problemi comuni
- Squid invia ancora l’IP interno: verifica forwarded_for off in squid.conf e riavvia Squid.
- NTLM non esegue il login automatico: verifica che ntlm_auth sia installato e che Samba/winbind siano attivi.
- Permessi winbind resettati dopo reboot: controlla lo script in /etc/init.d e la priorità di avvio.
- Contenuti AV bloccati: aggiungi i domini di aggiornamento AV a exceptionvirussitelist e exceptionsitelist.
Box dei fatti: porte e percorsi chiave
- Squid (locale): 127.0.0.1:3128
- Proxy pubblico: porta 8080
- DansGuardian: porta 8081
- Percorsi chiave: /etc/squid/squid.conf, /etc/dansguardian/dansguardian.conf, /var/run/samba/winbindd_privileged
Privacy e conformità (GDPR) — note pratiche
- L’autenticazione NTLM usa nomi utente. Limita la conservazione dei log e proteggi l’accesso ai log.
- Documenta la base giuridica per il trattamento dei dati personali e informa gli interessati se necessario.
- Proteggi la macchina proxy con aggiornamenti regolari e accesso amministrativo limitato.
Ruoli e responsabilità
- Amministratore di rete: applicare configurazioni, testare e mantenere script di avvio.
- Amministratore di sistema: gestire Samba/winbind, permessi file e aggiornamenti.
- Responsabile privacy: verificare conservazione log e conformità GDPR.
Esempi di casi limite e quando questa soluzione fallisce
- Autenticazione Kerberos pura: questa configurazione è centrata su NTLM; per Kerberos servono ulteriori impostazioni.
- Client che forzano proxy manuale con credenziali errate: il flusso automatico NTLM non funziona.
- Reti IPv6-only: verificare compatibilità di ipmasq e regole di iptables/iptables-legacy.
Riepilogo
Questa guida ti porta passo-passo dalla modifica dei file di configurazione di Squid e DansGuardian fino all’installazione di ipmasq e del modulo Webmin. Include uno script per mantenere i permessi di winbind e suggerimenti per test e privacy. Segui la checklist e i test di accettazione per verificare il corretto funzionamento.
Importante: conserva sempre una copia di backup dei file di configurazione e prova le modifiche in un ambiente di staging quando possibile.
Risorse e link utili
Social preview suggerito
Titolo: Squid + DansGuardian: proxy trasparente e filtraggio web Descrizione: Guida pratica per configurare Squid con NTLM, DansGuardian e ipmasq; include script, regole firewall e checklist di test.
Annuncio breve (100–200 parole)
Questa guida spiega come configurare un proxy trasparente con Squid integrato a DansGuardian per il filtraggio dei contenuti e ipmasq per la gestione del routing. Troverai le modifiche da applicare a squid.conf, uno script di avvio per correggere i permessi di winbind al boot, istruzioni per creare gruppi di filtro in DansGuardian e regole ipmasq per il redirect del traffico HTTP. La guida include una checklist operativa, i test di accettazione e note sulla privacy per la gestione dei log contenenti nomi utente. È ideale per amministratori di rete che devono implementare filtraggio e autenticazione in ambienti con Active Directory.
Glossario in una riga
NTLM: protocollo di autenticazione Microsoft; DansGuardian: filtro di contenuti web; ipmasq: utilità di configurazione firewall/router.
Materiali simili

App a pagamento gratis su iPhone senza jailbreak

Installare Opigno LMS su Ubuntu 18.04

Migliorare connessione mobile e Internet debole

Bloccare la barra delle applicazioni in Windows
