Translations of this page:

Kerberos Authentifizierung

User Authentifizierung an ADS/Kerberos
Beispiel umgesetzt auf Debian Squeeze und w2003 DC.

Systemvoraussetzungen

Apache Version 2.2.16 / KDC (Windows DC)

entsprechende Pakete nachinstallieren:

# apt-get install libapache2-mod-auth-kerb krb5-clients krb5-user

Konfiguration

Key für Auth. auf KDC erstellen

Serviceuser im AD erstellen.

Account Options:

  • User cannot change password
  • Passwort never expires
  • User logon name: HTTP/<servernameomd>.<DOMAINNAME>

Usermapping auf Servername mittels SPN auf Windows DC einrichten: (setspn.exe muss über Supportools installiert sein)

C:\>setspn -a HTTP/<servernameomd>.<DOMAINNAME> <serviceaccountname>
C:\>setspn -a HTTP/<servernameomd> <serviceaccountname>

Kontrolle ob Mapping erfolgte:

C:\>setspn -l <serviceaccountname>

Sollte folgende Ausgabe erzeugen:

Registered ServicePrincipalNames for CN=<servernameomd>,OU=Service,OU=Benutzer,OU=<Standort>,OU=BS,DC=domain,DC=local:
    HTTP/<servernameomd>
    HTTP/<servernameomd>.<DOMAINNAME>

Kerberos

Keberos Client anpassen, /etc/krb5.conf nach Anleitung http://support.microsoft.com/?scid=kb%3Ben-us%3B555092&x=10&y=15


[libdefaults]
    default_realm = <DOMAINNAME>
    allow_weak_crypto = yes
[realms]
<DOMAINNAME> = {
     admin_server = dc1.<DOMAINNAME>
     admin_server = dc2.<DOMAINNAME>
     kdc = dc1.<DOMAINNAME>
     kdc = dc2.<DOMAINNAME>
}

[domain_realm]
    servernameomd.<DOMAINNAME> = <DOMAINNAME>

Kerberos Clientverbindung testen:

# kinit username 
# Password for username@<DOMAINNAME>: xxxxxxxx

Ticketcache anzeigen lassen:

# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: username@<DOMAINNAME>

Valid starting     Expires            Service principal
05/03/07 10:11:16  05/03/07 20:11:16  krbtgt/<DOMAINNAME>@<DOMAINNAME>

Kerberos 4 ticket cache: /tmp/tkt0
klist: You have no tickets cached

Ticketcache löschen:

# kdestroy

Aktuelle KVNO für gemapten User ermitteln:

# kvno HTTP/<servernameomd>.<domainname>

Keytab erzeugen:

ktutil
ktutil: addent -password -p HTTP/<servernameomd>.<domainname> -k <zuvor ermittelte kvno> -e rc4-hmac
ktutil: addent -password -p HTTP/<servernameomd> -k <zuvor ermittelte kvno> -e rc4-hmac
ktutil: wkt /opt/omd/sites/<sitename>/etc/apache/krb5.keytab
ktutil: exit

Falls man diesen Vorgang wiederholt, werden neue Keytabs an die Datei angehangen! Somit bleiben inkorrekte Einträge erhalten, also /opt/omd/sites/<sitename>/etc/apache/krb5.keytab vorher löschen.
Anzeige Keytab-Inhalt:

# klist -ke /opt/omd/sites/<sitename>/etc/apache/krb5.keytab

Sollte so ähnlich aussehen:

Keytab name: WRFILE:/opt/omd/sites/<sitename>/etc/apache/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   2 HTTP/<servernameomd>.<domainname>@<DOMAINNAME> (ArcFour with HMAC/md5)
   2 HTTP/<servernameomd>@<DOMAINNAME> (ArcFour with HMAC/md5)

Rechte für keyfile anpassen.

# chmod 400 /opt/omd/sites/<sitename>/etc/apache/krb5.keytab
# chown www-data.www-data /opt/omd/sites/<sitename>/etc/apache/krb5.keytab

Vor dem Test ist das aktuelle Ticket zu zerstören:

# kdestroy

Test mit keyfile:

# kinit -k -t /opt/omd/sites/<sitename>/etc/apache/krb5.keytab HTTP/<servernameomd>.<domainname>
# klist -e

sollte folgende Ausgabe ergeben:

Ticket cache: FILE:/tmp/krb5cc_0
Default principal: HTTP/<servernameomd>.<domainname>@<DOMAINNAME>

Valid starting     Expires            Service principal
04/05/11 12:31:10  04/05/11 22:31:10  krbtgt/<DOMAINNAMAE>@<DOMAINNAME>
        renew until 04/06/11 12:31:10

Es kann aufgrund Replikationsmechanismen etwas dauern ehe ein positives Ergebnis erzeugt wird.
Bitte deshalb diesen Befehl bei Fehlern, eine Stunde später erneut testen.

Apache

Kerberos Auth in OMD aktivieren, dazu conf Datei für Modul erzeugen:
/opt/omd/sites/<sitename>/etc/apache/conf.d/mod_auth_kerb.conf

<IfModule !mod_auth_kerb.c>
  LoadModule auth_kerb_module /usr/lib/apache2/modules/mod_auth_kerb.so
</IfModule>

Auth. anpassen, dazu die Datei /opt/omd/sites/<sitename>/etc/apache/conf.d/auth.conf anpassen.

AuthName "Kerberos Login"
AuthType Kerberos
Krb5Keytab etc/apache/krb5.keytab
KrbAuthRealm <DOMAINNAME>
KrbServiceName HTTP
KrbMethodNegotiate on
KrbMethodK5Passwd on
Require valid-user

Apache neustarten:

omd restart apache

Browseranpassungen

  1. Internetexplorer

Extras –> Internetoptionen –> Reiter „Erweitert“

Die integrierte Windows-Authentifizierung muß aktiviert sein.

  1. Firefox ab 1.x

in die Adresszeile „about:config“ eingeben.

In das Filter-Feld den Ausdruck network.negotiate-auth.trusted-uris eingeben.

auf Feld doppelklicken und den hostnamen (FQDN) eingeben, z.B. <servernameomd>.<domainname>

Firefox neu starten !

Perfparse

Da die Benutzernamen durch den Domainenzusatz etwas länger werden muß evtl. das Feld user_name in der tabelle perfdata_users angepasst werden

# ALTER TABLE perdata_users MODIFY user_name varchar(100) NOT NULL;

NagiosQL

In NagiosQL 2.x fehlt beim match auf den Usernamen das @. Daher kommt es beim Speichern zu einer Fehlermeldung. Um das “@“ zuzulassen, muß folgendes eingetragen werden:

in der NagiosQL Tabelle „tbl_language“ in der Cat: „formchecks“ keyword: „fill_specials“:

 alt: [^a-zA-Z0-9_-]
 neu: [^@.a-zA-Z0-9_-]

Das natürlich für die Sprachen, die verwendet werden (default english und deutsch)

Mittels SQL Statement:

UPDATE `db_nagiosql_v2`.`tbl_language` SET `lang_de` = '[^@.a-zA-Z0-9_-]',
`lang_en` = '[^@.a-zA-Z0-9_-]' WHERE `tbl_language`.`id` =281 LIMIT 1 ;

vicodas 2008/01/31 13:56

nagios/howtos/kerberos_authentifizierung.txt · Zuletzt geändert: 2012/02/13 09:09 von vicodas
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0