Autenticazione Squid NTLM e DansGuardian

Spesso, come nel mio caso, puo’ presentarsi la necessità di monitorare la navigazione degli utenti tramite un proxy, con la possibilità di filtrare Chat, Siti per adulti ecc..
Tutto questo autenticando l’utente in una struttura ADS di un dominio windows preesistente.
Vi dico subito che si puo’ fare…..ed è anche piuttosto semplice!

1. Aggiungiamo la porta di ascolto dello squid:

joe /etc/squid/squid.conf

squid.conf:

http_port 3128

http_port 3030

2. configuriamo dansguardian.conf file

nano /etc/dansguardian/dansguardian.conf

dansguardian.conf:

usernameidmethodproxyauth = on
filterip = 127.0.0.1
filterport = 8080
proxyip = 127.0.0.1
proxyport = 3030

3. Per prima cosa aggiungiamo NTLM authentication nel file squid.conf:

joe /etc/squid-ntml/squid.conf

squid.conf:

auth_param ntlm program /usr/bin/ntlm_auth –helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 5
auth_param ntlm max_challenge_reuses 0
auth_param ntlm max_challenge_lifetime 2 minutes
auth_param ntlm use_ntlm_negotiate offauth_param basic program /usr/bin/ntlm_auth –helper-protocol=squid-2.5-basic
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours

4. Abilitazione del programma NTLM authentication in http_access & the acl rules

nano /etc/squid-ntml/squid.conf
squid.conf:

# (in the acl’s area)
acl ntlm proxy_auth REQUIRED# (in the http_access area)
http_access allow localhost
http_access allow ntlm

make sure that the http_access rules are the first in the list.

5. Fermiamo windbind. Nei punti successivi abiliteremo Winbind ad autenticarsi nell’active directory del dominio windows:

/etc/init.d/smb stop
/etc/init.d/winbind stop

6. Edit Kerberos
nano /etc/krb5.conf

krb5.conf:

[libdefaults]
default_realm = WINDOWS.SERVER.INT[realms]
WINDOWS.SERVER.INT = {
kdc = mc1.windows.server.int
default_domain = WINDOWS.SERVER.INT
kpasswd_server = mc1.windows.server.int
admin_server = mc1.windows.server.int
}[domain_realm]
.windows.server.int = WINDOWS.SERVER.INT

7. Edita il file di configurazione samba

/etc/samba/smb.conf

smb.conf:

workgroup = server
security = ads
realm = WINDOWS.SERVER.INT
encrypt passwords = yesusername map = /etc/samba/smbuserswinbind uid = 10000-20000
winbind gid = 10000-20000
winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes

8. Joina nel dominio windows principale:

net ads join -U administrator -S mc1

9. Facciamo ripartire samba e winbind

/etc/init.d/smb start
/etc/init.d/winbind start

10. Verifica di aver accesso al dominio con il seguente comando, dovrebbe resistuire l elenco dei gruppi utente di active directory.

/usr/bin/wbinfo -g

11. Next step is to disable the caching in squid, edit the ‘/etc/squid/squid.conf’

12. Settiamo Dansguardian ad essere la seconda cache di squid.

/etc/squid/squid.conf

squid.conf:

cache_peer 127.0.0.1 parent 8080 0 no-query login=*:nopassword

13. Facciamo  partire Squid e Dansguardian

/etc/init.d/dansGuardian start
/usr/sbin/squid -f /etc/squid/squid.conf -z
/usr/sbin/squid-cache -f /etc/squid/squid-cache.conf -z

11 commenti su “Autenticazione Squid NTLM e DansGuardian

  1. Ciao ho seguito le tue istruzioni che trovo molto utile ma al join al dominio ho questo errore :
    [2008/07/25 19:39:52, 0] utils/net_ads.c:ads_startup(289)
    ads_connect: No such file or directory

    Hai idea di che tipo di problema possa essere ?
    Grazie
    Ciao
    Enrico

  2. Ciao
    Ho seguito le tue istruzioni passo passo, ma l’autenticazione con dansguardian non funziona, se utilizzo solo squid funziona, invece se uso squid+dansguardian allora mi presenta la finsetra per l’autenticazione, provo comunque ad inserire username e password, ma non mi fa atenticare.
    Un’altra cosa net tuo tutorial indichi come porta per dansguardian

    proxyport = 3030

    ma con questa configurazione non riesco a far partire dansguardian perché non riesce a connettersi e mi da il seguente errore
    Error connecting to parent proxy

  3. Ciao Luigi,
    Se su Proxyport in Dansguardian usi la porta 3030 anche in squid devi configurarla con http_port 3030.
    Inoltre sempre nello squid.conf verifica di avere questa riga:

    cache_peer 127.0.0.1 parent 8080 0 no-query login=*:nopassword

  4. ciao

    ho impostato esattamente come te ma mi dice error connecting to parent proxy come luigi
    grazie

  5. Ciao Mykil, verfica di non aver firewall locali. Se da terminale fai un telent diretto alla porta 3030, risponde?

  6. ciao
    ma hai indicato http_port 3128 e poi proxyport 3130 , nn ha molto senso….
    grazie

  7. ciao dev

    allora nn ho ben capito a cosa serve impostare proxyport=3030
    visto ke il proxy ascolta sulla 3128
    scusa la testardaggine e grazie

  8. Mykol, son un po rinco io non mi ero proprio accorto….hai ragione.
    La mia intenzione era di usare la 3030 x sfruttare l’autenticazione ecc e la 3128 per una connessione classica bypassando il sistema per i vari test.
    Ho apportato la modifica al post.
    Grazie e scusa
    Ciao

  9. ciao dev

    grazie a te per il supporto mi sei stato di grande aiuto

    ps:complimenti per il blog!

I commenti sono chiusi.