= Squid en Kerberos authenticatie = Deze howto zorgt ervoor dat Windows XP, Windows 7 en hoger , die zijn aangemeld op een Windows Active directory server, zich ook transparant autenticeren bij uw SYN-3 squid server. Er zijn geen registry aanpassingen/hacks nodig in de Windows omgeving. Bron howtos: * standaard: http://wiki.squid-cache.org/ConfigExamples/Authenticate/Kerberos * met ldap group support en basic authentication: http://klaubert.wordpress.com/2008/01/09/squid-kerberos-authentication-and-ldap-authorization-in-active-directory/ '''in progress''' == Algemeen == * Zorg dat alle servers op tijd lopen, het liefst via ntp. = Windows config = == Windows 2003/2008 server configuratie == * '''Voor Windows 2008 ben u wellicht deze hotfix nodig: http://support.microsoft.com/kb/951191''' Volg de AD wizard. Volgende instellingen op server * Domein: ADTEST.PSY.DATUX.NL * IP: 192.168.13.13 * Server hostnaam: w2k3-edwin.adtest.psy.datux.nl * Server als DNS laten configureren door de AD wizard. * Gewone standaard gebruiker: edwin, pass test == Windows 7 client == * Als DNS 192.168.13.13 instellen. * Aanmelden op het domein(Inloggen als Administrator, niet als user) en testen Als je zover bent heb je dus een werkende windows Active directory met 1 aangemelde computer. = DNS = * Het essentieel dat DNS goed geconfigureerd is, anders werkt kerberos niet. * Maak een A record en Reverse record in de Windows server, voor uw proxy server. In ons geval: proxy.adtest.psy.datux.nl <-> 192.168.13.150 * Zorg dat alle machines de Windows server als DNS gebruiken * Controleer met het dig commando of alle forward en reverse looksups goed gaan. = Syn-3 config = * Zorg dat u minimaal SYN-3 versie 4.4.2 heeft. * Zorg dat de hostname goed is ingesteld. In ons geval: proxy.adtest.psy.datux.nl = Kerberos config = Eerst moeten we zorgen dat kerberos goed werkt. De config staat nog in /etc, maar deze komt later misschien in /home/system: {{{ [Syn-3] root@proxy.adtest.psy.datux.nl ~# cat /etc/krb5.conf [libdefaults] default_realm = ADTEST.PSY.DATUX.NL dns_lookup_kdc = no dns_lookup_realm = no default_keytab_name = /etc/krb5.keytab ; for 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 ; 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] ADTEST.PSY.DATUX.NL = { kdc = w2k3-edwin.adtest.psy.datux.nl admin_server = w2k3-edwin.adtest.psy.datux.nl } [domain_realm] .adtest.psy.datux.nl = ADTEST.PSY.DATUX.NL adtest.psy.datux.nl = ADTEST.PSY.DATUX.NL [logging] kdc = FILE:/var/log/kdc.log admin_server = FILE:/var/log/kadmin.log default = FILE:/var/log/krb5lib.log }}} Let op de hoofdletters en op het feit dat je de LANGE '''domain''' naam gebruikt voor het AD-domain. (dus NIET de volledige hostname) Gebruik voor kdc het ip van de AD-server. Testen of het werkt doe je zo: {{{ [Syn-3] root@proxy.adtest.psy.datux.nl ~# kinit administrator Password for administrator@ADTEST.PSY.DATUX.NL: [Syn-3] root@proxy.adtest.psy.datux.nl ~# klist -e Ticket cache: FILE:/tmp/krb5cc_0 Default principal: administrator@ADTEST.PSY.DATUX.NL Valid starting Expires Service principal 12/22/10 20:16:44 12/23/10 06:16:12 krbtgt/ADTEST.PSY.DATUX.NL@ADTEST.PSY.DATUX.NL renew until 12/23/10 20:16:44, Etype (skey, tkt): ArcFour with HMAC/md5, ArcFour with HMAC/md5 }}} Let op de hoofdletters en zo. Je hebt nu een werkende kerberos omgeving die authenticeert naar de Kerberos server. = Active directory kopelling maken = Dit doe je met de msktutil: {{{ [Syn-3] root@proxy.adtest.psy.datux.nl /etc# msktutil -c -b "CN=COMPUTERS" -s HTTP/$HOSTNAME -h $HOSTNAME -k /etc/krb5.keytab --computer-name syn3proxy --upn HTTP/$HOSTNAME --server w2k3-edwin.adtest.psy.datux.nl No computer account for syn3proxy found, creating a new one. dn: cn=syn3proxy,CN=COMPUTERS,dc=ADTEST,dc=PSY,dc=DATUX,dc=NL }}} '''Voor een Windows 2008 server voegt u --enctypes 28 toe aan het commando.''' = Squid instellen = == ldap gegevens bepalen == Om basic authentication te ondersteunen moet u de DN's uitzoeken op uw windows server. Deze kunt u gokken, of u gebruikt de ldp.exe tool. Deze vind u in het 'Windows Support Tools' pakket van Microsoft. (http://www.microsoft.com/downloads/en/details.aspx?FamilyID=96a35011-fd83-419d-939b-9a772ea2df90&DisplayLang=en) In ons geval: * Base DN: ''CN=Users,DC=adtest,DC=psy,DC=datux,DC=nl'' * Administrator DN: ''CN=Administrator,CN=Users,DC=adtest,DC=psy,DC=datux,DC=nl'' == Keytab == Squid moet bij de keytab file kunnen: {{{ [Syn-3] root@proxy.adtest.psy.datux.nl ~# chown nobody /etc/krb5.keytab }}} == auth_param == Alle auth_param instellingen in /home/system/proxy/squid.conf vervangen: {{{ # Kerberos authentication settings auth_param negotiate program /usr/bin/squid_kerb_auth -d auth_param negotiate children 10 auth_param negotiate keep_alive on # LDAP/AD settings, for clients that only support basic authentication: auth_param basic program /usr/bin/squid_ldap_auth -b "CN=Users,DC=adtest,DC=psy,DC=datux,DC=nl" -s sub -D "CN=Administrator,CN=Users,DC=adtest,DC=psy,DC=datux,DC=nl" -w as -f "(&(objectClass =person)(sAMAccountName=%s))" -u sAMAccountName -P -v 3 -h w2k3-edwin.adtest.psy.datux.nl auth_param basic children 10 auth_param basic realm Proxy Authentication auth_param basic credentialsttl 2 hours }}} == acl en http_access == Om tot slotte authenticatie in te schakellen en verplicht te stellen: Toevoegen op de juiste plekken in /home/system/proxy/squid.conf: {{{ acl auth proxy_auth REQUIRED http_access allow auth }}} == Debugging == Werkt het niet, zet dan cache logging aan en voeg de -d optie toe aan squid_kerb_auth. = Windows clients instellen. = * Zorg in Internet Explorer dat u de SYN-3 server opgeeft als proxy. * Gebruik de volledige HOSTNAME en niet het IP. Dus in dit geval: proxy.adtest.psy.datux.nl