====== 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//