Translations of this page:

Kerberos Authentifizierung

User Authentifizierung an ADS/Kerberos
Beispiel umgesetzt auf Debian Etch. Auch für W2K Domaincontroller

Systemvoraussetzungen

Apache Version 2.2.3 / KDC (Windows DC)

entsprechende Pakete nachinstallieren:

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

Konfiguration

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 = DOMAIN.LOCAL

[realms]
DOMAIN.LOCAL = {
     admin_server = dc.domain.local
     kdc = dc.domain.local
}

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

Kerberos Clientverbindung testen:

# kinit username 
# Password for username@DOMAIN.LOCAL: xxxxxxxx

Ticketcache anzeigen lassen:

# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: username@DOMAIN.LOCAL

Valid starting     Expires            Service principal
05/03/07 10:11:16  05/03/07 20:11:16  krbtgt/DOMAIN.LOCAL@DOMAIN.LOCAL

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

Ticketcache löschen:

# kdestroy

Key für Auth. auf KDC erstellen

Serviceuser im AD erstellen (hier krb5nagios)

keyfile auf dc erzeugen, hostname nur reiner hostname (FQDN) nicht evtl. Alias verwenden:

C:\>ktpass -princ HTTP/nagios.domain.local@DOMAIN.LOCAL -mapuser krb5nagios -crypto DES-CBC-MD5
    -ptype KRB5_NT_PRINCIPAL -mapop set +desonly -pass passwort -out C:\http_nagios.krb5keytab

Auf einem W2K Server die Supporttools installieren. Im Ordner „Programme\Support Tools“ findet sich dann das ktpass Tool

erzeugte Datei nach apache Server kopieren.
Wichtig, dieses nur eimal ausführen, da die Keynummer hochgezählt wird.
Falls Ihr diesen Befehl ein zweites mal ausführt, bitte auch das erzeugte Keyfile neu auf den Webserver kopieren. Rechte auf kopiertes File setzen:

# chmod 400 /etc/apache2/http_nagios.krb5keytab
# chown www-data:www-data /etc/apache2/http_nagios.krb5keytab

keyfile testen:

# kinit -k -t /etc/apache2/http_nagios.krb5keytab HTTP/nagios.domain.local
# klist -e

muss das gecachte Ticket anzeigen

danach Cache wieder löschen

# cache löschen
# kdestroy

Apache

Kerberos Auth in Vhost

/etc/apache2/conf.d/nagios2.conf
<Directory "/usr/local/nagios/sbin">
    Options ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
    AuthType Kerberos
    KrbAuthRealms DOMAIN.LOCAL
    KrbServiceName HTTP
    Krb5Keytab /etc/apache2/http_nagios.krb5keytab
    KrbMethodNegotiate on
    KrbMethodK5Passwd off
    Require valid-user #oder entsp. Usernamen z.B. username@DOMAIN.LOCAL
</Directory>

Rewrite Rule, damit FQDN Eingabe im Browser nicht notwendig ist

RewriteEngine On
RewriteCond %{HTTP_HOST} ^HOSTNAME$ [NC]
RewriteRule ^(.*)$ http://HOSTNAME.DOMAIN.LOCAL$1 [R=301,L]

maeces 2009/12/19 13:28

Apache neustarten:

/etc/init.d/apache2 restart

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. nagios.domain.local

Firefox neu starten !

Beim Aufruf im Browser bitte immer den VOLLEN FQDN angeben, ansonsten kann dies nicht richtig auf das Keyfile gemapt werden..

Zwingender FQDN Aufruf im Browser wird jetzt durch Rewrite Rule abgefangenmaeces 2009/12/19 13:28

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: 2009/12/19 13:28 von maeces
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