====== 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 =====
==== 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 =
allow_weak_crypto = yes
[realms]
= {
admin_server = dc1.
admin_server = dc2.
kdc = dc1.
kdc = dc2.
}
[domain_realm]
servernameomd. =
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)
Account Options:
* User cannot change password
* Passwort never expires
* User logon name: HTTP/.
Usermapping auf Servername mittels SPN auf Windows DC einrichten:
(setspn.exe muss über Supportools installiert sein)
C:\>setspn -a HTTP/.
C:\>setspn -a HTTP/
Kontrolle ob Mapping erfolgte:
C:\>setspn -l
Sollte folgende Ausgabe erzeugen:
Registered ServicePrincipalNames for CN=,OU=Service,OU=Benutzer,OU=,OU=BS,DC=domain,DC=local:
HTTP/
HTTP/.
==== Apache ====
Kerberos Auth in Vhost
/etc/apache2/conf.d/nagios2.conf
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
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@nagios-wiki.de|maeces]] 2009/12/19 13:28//
Apache neustarten:
/etc/init.d/apache2 restart
==== Browseranpassungen ====
- Internetexplorer
Extras --> Internetoptionen --> Reiter "Erweitert"
Die integrierte Windows-Authentifizierung muß aktiviert sein.
- 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 abgefangen//
--- //[[maeces@nagios-wiki.de|maeces]] 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@nagios-wiki.de|vicodas]] 2008/01/31 13:56//