Help : Authentification Negotiate Squid

Bonjour à tous,

Je bloque depuis le début de la semaine sur la mise en place de l’authentification negotiate sur un proxy squid3.

J’ai principalement suivi ce tuto :
wiki.squid-cache.org/ConfigExamp … e/Kerberos
(Je me suis cependant aidé de beaucoup d’autre sur le net.)

Pour la configuration :

  • Serveur AD : Windows 2003 R2
  • Proxy : Ubuntu 12.04 avec Squid 3.1.19 avec krb5-user 1.10, msktutils 0.4

Le proxy et le DC communique parfaitement. (ping, reverse dns, ports adéquat ouverts)

Configuration de /etc/krb5.conf :

[libdefaults]
        default_realm = DOMAINE.COM
        clock_skew = 300
        ticket_lifetime = 24000
        default_tkt_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
        default_tgs_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
        permitted_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
        dns_lookup_realm = no
        dns_lookup_kdc = no
        default_keytab_name = /etc/http.keytab
[realms]
        DOMAINE.COM = {
                kdc = dc.DOMAINE.COM
                admin_server = dc.DOMAINE.COM
                }
[domain_realm]

        .domaine.com = DOMAINE.COM
        domaine.com = DOMAINE.COM

[logging]
  kdc = FILE:/var/log/krb/kdc.log
  admin_server = FILE:/var/log/krb/kadmin.log
  default = FILE:/var/log/krb/krb5lib.log

Avec cette configuration, j’arrive bien à me connecter en utilisant “kinit” et je vois bien mon ticket grâce à “klist”

Création de la keytab :

Le proxy est bien créé dans “COMPUTER” de l’AD avec le nom lnx-px-01 et le fichier /etc/http.keytab est bien généré :

sudo klist -e -k /etc/http.keytab
Keytab name: FILE:/etc/http.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   5 lnx-px-01$@DOMAINE.COM (des-cbc-crc)
   5 lnx-px-01$@DOMAINE.COM (des-cbc-md5)
   5 lnx-px-01$@DOMAINE.COM (arcfour-hmac)
   5 host/lnx-px-01.domaine.com@DOMAINE.COM (des-cbc-crc)
   5 host/lnx-px-01.domaine.com@DOMAINE.COM (des-cbc-md5)
   5 host/lnx-px-01.domaine.com@DOMAINE.COM (arcfour-hmac)
   5 HTTP/lnx-px-01@DOMAINE.COM (des-cbc-crc)
   5 HTTP/lnx-px-01@DOMAINE.COM (des-cbc-md5)
   5 HTTP/lnx-px-01@DOMAINE.COM (arcfour-hmac)

Configuration de /etc/squid3/squid.conf :

auth_param negotiate program /usr/lib/squid3/squid_kerb_auth -d auth_param negotiate children 5 auth_param negotiate keep_alive on

ERREUR :

Lorsque je veux me connecter via un navigateur (testé sur Chrome Firefox et IE) soit une page d’erreur s’affiche directement (pour XP) soit des identifiants sont demandés (Pour Seven).

Je n’arrive pas à trouver mon erreur.
Faut-il que le proxy soit obligatoirement configuré en mode transparent ?
Peut-etre est-il nécessaire de configurer les navigateurs ?

Fichier de log /var/log/squid3/cache.log :

2012/10/18 09:43:00| squid_kerb_auth: DEBUG: Got 'YR TlRMTVNTUAABAAAAB4IIogAAAAAAAAAAAAAAAAAAAAAFASgKAAAADw==' from squid (length: 59). 2012/10/18 09:43:00| squid_kerb_auth: DEBUG: Decode 'TlRMTVNTUAABAAAAB4IIogAAAAAAAAAAAAAAAAAAAAAFASgKAAAADw==' (decoded length: 40). 2012/10/18 09:43:00| squid_kerb_auth: WARNING: received type 1 NTLM token 2012/10/18 09:43:00| authenticateNegotiateHandleReply: Error validating user via Negotiate. Error returned 'BH received type 1 NTLM token'

Fichier de log /var/log/squid3/access.log :

J’ai fais une analyse de trame avec Wireshark sur mon client je vois bien la requête TGS-REQ Kerberos, mais je ne sais pas comment l’exploiter pour trouver l’erreur.

N’hésiter pas à me demander pour plus d’information.

Bastien,

J’ai du nouveau,

En inspectant la trame j’ai vue que le client essayait de pointer sur HTTP/192.168.21.21 (Mon proxy) du coup j’ai renseigné le nom DNS plutot que l’adresse IP dans la configuration du navigateur.

Cela ne fonctionne toujours pas… Mais les logs disent autres choses :

2012/10/18 10:52:56| squid_kerb_auth: ERROR: gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information. 2012/10/18 10:52:56| authenticateNegotiateHandleReply: Error validating user via Negotiate. Error returned 'BH gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information. '

Je cherche dans cette voie, si quelqu’un à une idée ?

Toujours personne ?

En analysant les logs, je me suis apercue que les informations ne sont pas les mêmes lors de la requetes TGS-REQ et TGS-REP :

TGS-REQ :

Ticket
Tkt-vno: 5
Realm : DOMAINE.COM
Server Name (Service and Instance): krbtgt/DOMAINE.COM
enc-part rc4-hmac (23)
encryption type: rc4-hmac (23)
Kvno: 2

TGS-REP :

Ticket
Tkt-vno: 5
Realm : DOMAINE.COM
Server Name (Service and Instance): HTTP/lnx-px-01.domaine.com
enc-part rc4-hmac (23)
encryption type: rc4-hmac (23)
Kvno: 3