Networking · 5 min read · Sep 23, 2025
Debian Squeeze, Squid, Autenticazione Kerberos/LDAP, Integrazione Active Directory E Cyfin Reporter
Debian Squeeze, Squid, Autenticazione Kerberos/LDAP, Integrazione Active Directory E Cyfin Reporter
Introduzione
Questo documento tratta la configurazione di un Proxy Squid che si integrerà senza problemi con Active Directory per l’autenticazione utilizzando Kerberos con LDAP come backup per gli utenti non autenticati tramite Kerberos. L’autorizzazione è gestita dai Gruppi in Active Directory. Questo è particolarmente utile per i client Windows 7 che non supportano più NTLMv2 senza modificare la politica del computer locale. È in grado di utilizzare liste bianche e liste nere per l’accesso ai siti e le restrizioni.
Per questa guida vengono utilizzati i seguenti esempi - dovresti aggiornare eventuali sezioni con il dominio dei client, i nomi host e gli IP dove necessario.
- Dominio = example.local
- Subnet = 192.168.0.0/24
- Server Proxy: IP = 192.168.0.26, NOME HOST = squidproxy.example.local
- Windows Server 1: IP = 192.168.0.1, NOME HOST = domaincontroller1.example.local
- Windows Server 2: IP = 192.168.0.10, NOME HOST = server2.example.local
Si presume un’installazione base di Debian Squeeze così come competenze di amministrazione di base di Debian. Si presume che vi sia vi come editor di testo.
Requisiti
I browser Internet Explorer dei client devono avere “Abilita l’autenticazione integrata di Windows” selezionato nelle Opzioni Internet :: Impostazioni avanzate, così come la rilevazione automatica del proxy abilitata - cercali su Google se non sei sicuro. Tutti i moderni browser web supporteranno la rilevazione automatica del proxy. Firefox e Chrome supportano anche l’autenticazione di Windows.
Configurazione DNS
Installa dnsutils:
apt-get install dnsutilsSul server DNS Windows aggiungi una nuova voce A per il nome host del server proxy e assicurati che venga creata e funzioni anche una corrispondente voce PTR (DNS inverso). Controlla che il proxy stia utilizzando il server DNS Windows per la risoluzione dei nomi e aggiorna /etc/resolv.conf di conseguenza.
vi /etc/resolv.confsearch example.local
nameserver 192.168.0.1
nameserver 192.168.0.10Esegui il ping a un nome host interno ed esterno per assicurarti che il DNS funzioni.
ping domaincontroller1.example.local -c 4 && ping google.com -c 4Controlla se riesci a eseguire una ricerca inversa del server Windows e dell’IP locale del proxy dal DNS Windows.
dig -x 192.168.0.1
dig -x 192.168.0.26Attenzione: Se una delle ricerche DNS fallisce non procedere fino a quando non è risolta o l’autenticazione del proxy fallirà.
Configurazione NTP
Installa il pacchetto ntp:
apt-get install ntpPoiché Kerberos deve avere l’ora sincronizzata con i controller di dominio Windows per l’autenticazione, configuriamo il proxy per ottenere l’ora da essi.
vi /etc/ntp.confTrova la seguente sezione e aggiorna i server ntp come richiesto. Se hai più di un controller di dominio o server NTP puoi aggiungere più righe.
# Devi parlare con un server NTP o due (o tre).
#server ntp.your-provider.example
server domaincontroller1.example.local
server server2.example.localPoi riavvia e testa NTP.
invoke-rc.d ntp restart
tpq -pDovresti vedere un output che si riferisce ai controller di dominio e ad altri server NTP che vengono elaborati nell’ordine in cui appaiono nel file di configurazione.
Configura Kerberos
Installa i pacchetti Kerberos:
apt-get install krb5-user libkrb53Accetta semplicemente i valori predefiniti presentati in qualsiasi dialogo debconf poiché li stiamo sovrascrivendo.
Configura Kerberos.
cp /etc/krb5.conf /etc/krb5.conf.default
cat /dev/null > /etc/krb5.conf
vi /etc/krb5.confModifica il file sostituendo le variabili (evidenziate) con il dominio e il server del cliente.
Attenzione: A seconda della versione del sistema operativo dei tuoi controller di dominio Windows, decommenta la sezione Windows 200X pertinente e commenta la sezione opposta.
Se hai solo 1 controller di dominio, rimuovi l’ulteriore voce “kdc” dalla sezione “[realms]”.
[libdefaults]
default_realm = EXAMPLE.LOCAL
dns_lookup_kdc = no
dns_lookup_realm = no
ticket_lifetime = 24h
default_keytab_name = /etc/squid3/PROXY.keytab
; per Windows 2003
default_tgs_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
default_tkt_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
permitted_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
; per Windows 2008 con AES
; default_tgs_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
; default_tkt_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
; permitted_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
[realms]
EXAMPLE.LOCAL = {
kdc = domaincontroller1.example.local
kdc = server2.example.local
admin_server = domaincontroller1.example.local
default_domain = example.local
}
[domain_realm]
.example.local = EXAMPLE.LOCAL
example.local = EXAMPLE.LOCALInstalla Squid 3
apt-get install squid3 ldap-utilsNota: La configurazione di Squid avviene dopo che msktutil è stato configurato.
Installa e esegui msktutil
Ottieni il pacchetto msktutil e installalo.
cd /var/cache/apt/archives/
wget http://fuhm.net/software/msktutil/releases/msktutil_0.4-2_i386.deb
apt-get install libsasl2-modules-gssapi-mit libsasl2-modules
dpkg -i msktutil_0.4-2_i386.deb
cdInizia una sessione kerberos con il server in modo che msktutil possa usarla per creare il nostro oggetto Proxy in Active Directory che sarà utilizzato per l’accesso.
kinit administratorInserisci la password dell’amministratore di dominio.
Dovrebbe quindi restituire senza errori. Puoi vedere se hai ottenuto con successo un ticket con:
klistOra configuriamo il proxy in AD con i principi di servizio eseguendo msktutil (aggiorna i valori evidenziati con la tua rete).
Attenzione: Non dovresti spostare l’oggetto dall’OU in cui lo utilizzi per creare con msktutil.
msktutil -c -b "CN=COMPUTERS" -s HTTP -k /etc/squid3/PROXY.keytab --computer-name SQUIDPROXY \
--upn HTTP/squidproxy.example.local --server domaincontroller1.example.local --verboseSe stai utilizzando un dominio Server 2008, aggiungi “–enctypes 28” alla fine del comando.
msktutil -c -b "CN=COMPUTERS" -s HTTP -k /etc/squid3/PROXY.keytab --computer-name SQUIDPROXY \
--upn HTTP/squidproxy.example.local --server domaincontroller1.example.local --verbose --enctypes 28Imposta i permessi sul keytab in modo che squid possa leggerlo.
chgrp proxy /etc/squid3/PROXY.keytab
chmod g+r /etc/squid3/PROXY.keytabSul server Windows ripristina l’account computer in AD facendo clic con il tasto destro sul computer SQUIDPROXY e selezionando “Ripristina account”, quindi esegui msktutil come segue per assicurarti che il keytab venga aggiornato come previsto e che il keytab venga prelevato da msktutil da /etc/krb5.conf correttamente.
Riavvia prima il proxy per cancellare i ticket kerberos generati dal comando kinit, quindi esegui quanto segue:
msktutil --auto-update --verboseSe il keytab non viene trovato, prova ad aggiungere “-k /etc/squid3/PROXY.keytab” al comando per vedere se funziona e poi risolvi i problemi fino a quando non è risolto o gli utenti non saranno in grado di autenticarsi con Squid.
Aggiungi quanto segue a cron in modo che possa aggiornare automaticamente l’account computer in Active Directory quando scade (tipicamente dopo circa 30 giorni). Lo invio tramite logger in modo da poter vedere eventuali errori in syslog se necessario. Come indicato, msktutil utilizza il file predefinito /etc/krb5.conf per i suoi parametri, quindi fai attenzione se decidi di apportare modifiche.
Le variabili SHELL e PATH sono lì per garantire che cron funzioni correttamente, cambiale se sai cosa stai facendo.
crontab -eSHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# m h dom mon dow command
00 4 * * * msktutil --auto-update --verbose | logger -t msktutilRicevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.