[[http://tmade.de|Home tmade.de]]
[[http://wiki.tmade.de|Home Wiki]]
==== Kerberos Authentification Linux <--> Windows AD ====
=== Configuration ===
To get an apache2-webserver authenticated with an Windows Actice directory create on your DC a
*Computer Account
*keytab file
The key-tab-file can be created as follows:
ktpass -princ HTTP/server-name.domain.local@DOMAIN.LOCAL -mapuser domain\computer-account$ -pass secret -ptype KRB5_NT_PRINCIPAL -out some_name.keytab
The created keytab-file has to be copied to the apache2-webserver (fqdn = server-name.domain.local).
Following additional packages has to be installed on apache2-webserver:
kerberos-client-x.x.x.x
kerberos-server-x.x.x.x
krb5-devel-32bit-x.x.x.x
krb5-devel-x.x.x.x
krb5-x.x.x.x
krb5-x.x.x.x
Within the apache configuration folder (e. g. /etc/apache2/) create a vHost (or within default site) with following content inside "directory tag":
Options None
AllowOverride All
Order allow,deny
Allow from all
AuthName "Name to be shown on auth-form"
AuthType Kerberos
KrbAuthRealms DOMAIN.LOCAL
KrbServiceName HTTP
Krb5Keytab /etc/apache2/keytab/some_name.keytab
KrbMethodNegotiate on
require valid-user
**Note:** If you donĀ“t want to grant all users access on your DC you have to change "require user user1@domain.local user2@domain.local user3@domain.local ..."
Edit kerberos config (/etc/krb5.conf) as follows:
[libdefaults]
default_realm = DOMAIN.LOCAL
ticket_lifetime = 24h
forwardable = yes
[realms]
DOMAIN.LOCAL = {
kdc = dc1.domain.local
kdc = dc2.domain.local
admin_server = dc1.domain.local
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
}
[logging]
kdc = FILE:/var/log/krb5/krb5kdc.log
admin_server = FILE:/var/log/krb5/kadmind.log
default = SYSLOG:NOTICE:DAEMON
=== Testing ===
klist -k -t /etc/apache2/httpotrskeytab
klist
kinit
klist -kte
kinit someuser@EXAMPLE.COM
kinit -k HTTP/SERVER.EXAMPLE.COM@EXAMPLE.COM
=== Explications ===
tgt #"ticket granting ticket", session ticket
See also:
http://acksyn.org/?p=460
http://modauthkerb.sourceforge.net/
http://grolmsnet.de/kerbtut/
http://interop.blog.de/2010/02/13/kapitel-6-apache-kerberos-ad-8001577/
http://comments.gmane.org/gmane.comp.apache.mod-auth-kerb.general/2579
http://sammoffatt.com.au/jauthtools/Kerberos/Troubleshooting