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 dnsutils

Sul 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.conf
search example.local
nameserver 192.168.0.1
nameserver 192.168.0.10

Esegui 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 4

Controlla 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.26

Attenzione: 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 ntp

Poiché 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.conf

Trova 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.local

Poi riavvia e testa NTP.

invoke-rc.d ntp restart  
tpq -p

Dovresti 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 libkrb53

Accetta 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.conf

Modifica 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.LOCAL

Installa Squid 3

apt-get install squid3 ldap-utils

Nota: 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  
cd

Inizia 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 administrator

Inserisci la password dell’amministratore di dominio.

Dovrebbe quindi restituire senza errori. Puoi vedere se hai ottenuto con successo un ticket con:

klist

Ora 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 --verbose

Se 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 28

Imposta i permessi sul keytab in modo che squid possa leggerlo.

chgrp proxy /etc/squid3/PROXY.keytab  
chmod g+r /etc/squid3/PROXY.keytab

Sul 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 --verbose

Se 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 -e
SHELL=/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 msktutil
Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.