Meine alte Konfiguration für den Squid Proxy Server kann hiermit erweitert werden.
Hintergrund war der, dass zu Stoßzeiten Performanceprobleme auftraten. In der Squid Maillingliste wurde mir vorgeschlagen, die NTLM- gegen Kerberos-Authentifizierung zu ersetzen und auch den LDAP Group Check für die Authorisierung zu nehmen.

Im Einsatz ist CentOS 6 x64, Squid aus dessen Repo und eine AD 2008.

Kerberos Konfiguration:

Im DNS (forward/reverse) muss ein FQDN Eintrag für den Proxy Server existieren.

Die nötigen Pakete installieren:

yum install -y cyrus-sasl-gssapi cvs autoconf automake openldap openldap-devel krb5-workstation krb5-devel gcc-c++ -y

Danach muss man EPEL einrichten:
siehe hier

um das Tool msktutil installieren zu können:

yum install msktutil -y

Die Kereros Konfig anpassen:

(anzupassen sind: DOMAIN, domain, IPADRESSE, local, LOCAL)
/etc/krb5.conf

[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = DOMAIN.LOCAL
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h

# For Windows 2007:
# 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
 forwardable = yes

# for Windows 2008 with 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

# for MIT/Heimdal kdc no need to restrict encryption type

[realms]
 DOMAIN.LOCAL = {
  kdc = IPADRESSE:88
  admin_server = IPADRESSE:7491
  default_domain = domain.local
 }

[domain_realm]
 .domain.local = DOMAIN.LOCAL
 domain.local = DOMAIN.LOCAL

[appdefaults]
 pam = {
   debug = false
   ticket_lifetime = 36000
   renew_lifetime = 36000
   forwardable = true
   krb4_convert = false
}

Danach:

kinit administrator

(anzupassen ist: FQDN-DES-PROXIES, fqdn-des-proxies, computername-des-proxies, fqdn-domaincontroller

msktutil -c -b "CN=COMPUTERS" -s HTTP/FQDN-DES-PROXIES -h fqdn-des-proxies -k /etc/HTTP.keytab --computer-name computername-des-proxies --upn HTTP/fqdn-des-proxies --server fqdn-domaincontroller --verbose --enctypes 28

Im init Script von Squid noch diese Zeile am Anfang einfügen:
/etc/init.d/squid

export KRB5_KTNAME=/etc/HTTP.keytab

Dann geht es an die Squidkonfig:

/etc/squid/squid.conf

### Kerberos
auth_param negotiate program /usr/lib64/squid/squid_kerb_auth
auth_param negotiate children 10
auth_param negotiate keep_alive on


### Ldap Group Check
# (anzupassen ist: DOMAIN, local, ldap, LDAPUSERPW, Gruppen, DOMAINCONTROLLER)
external_acl_type checkgroup %LOGIN /usr/lib64/squid/squid_ldap_group -R -K -b "dc=DOMAIN,dc=local" -D ldap -w "LDAPUSERPW" -f "(&(objectclass=person)(sAMAccountName=%v) memberof=cn=%g,ou=Gruppen,dc=tclsg,dc=local))" -h DOMAINCONTROLLER

# (anzupassen ist: Internet = die Gruppe in der AD, die Zugriff bekommen soll)
acl InternetGroup external checkgroup Internet
acl AUTH proxy_auth REQUIRED

# Nicht authentifizierte bekommen den Zugriff verwährt
http_access deny !AUTH
# Nur Leute aus der AD-Gruppe "Internet" dürfen passieren
http_access allow InternetGroup