Version 22 (modified by 14 years ago) (diff) | ,
---|
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