Kerberos Authentification mit Apache2

Pre-Requisites

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

Kerberos Konfiguration

/etc/krb5.conf

[libdefaults]
        default_realm = HOME.NET
 
[realms]
        HOME.NET = {
                kdc = DC.HOME.NET
                kdc = DC2.HOME.NET
                master_kdc = DC.HOME.NET
                admin_server = DC.HOME.NET
                default_domain = HOME.NET
        }
 
[domain_realm]
        .home.net = HOME.NET
        home.net = HOME.NET
        HOME = HOME.NET

Apache vHost Konfiguration

/etc/apache/sites-enabled/123.conf

<Directory "/var/www/html">
        # By default, allow access to anyone.
        Order allow,deny
        Allow from All
 
        # Enable Kerberos authentication using mod_auth_kerb.
        AuthType Kerberos
        AuthName "Marker::Control"
        KrbAuthRealm HOME.NET
        Krb5KeyTab "/home/pi/svc_apache_markerctl.keytab"
        KrbMethodNegotiate on
        KrbSaveCredentials on
        KrbVerifyKDC on
        KrbServiceName HTTP
        Require valid-user
</Directory>

Fallstricke

  • Die KVNO-Nummer im Keytab ist nicht gleich im AD (Attribut msDS-KeyVersioNumber)
    • Check des Keytabs mittels: klist -e -k -t svc_apache_ledframe.keytab
  • Der SPN ist bereits bei einem anderen User registriert
  • Der UPN ist nicht so gesetzt wie sich die Applikation meldet
  • Der Aufruf des Servers ist nicht mittels FQDN, das Keytab aber auf den FQDN erzeugt (SPN / UPN)