Klik hier voor informatie over de wijziging in de levering van diensten en ondersteuning.

Linux-werkstation integratie met Active Directory via Kerberos 🤖

kerberos-auth

In mijn vorige artikel beschreef ik hoe je het functionele niveau van een Samba Active Directory verhoogt naar Windows Server 2016-niveau. Dit artikel bouwt daarop voort en laat zien hoe je een Linux-werkstation configureert om veilig en betrouwbaar met deze omgeving te werken, waarbij NTLM is uitgeschakeld en authenticatie voor zowel AD als SMB uitsluitend via Kerberos verloopt.

Ik gebruik voornamelijk Debian GNU/Linux met XFCE (bureaubladomgeving), maar deze post is ook prima toepasbaar op andere distributies. Voor Ubuntu bijvoorbeeld zijn de pakketten vrijwel hetzelfde. Gebruik je een andere bureaubladomgeving, let dan goed op de pakketten: dan zul je voor de XFCE-pakketten geschikte equivalenten moeten zoeken.

De wijziging die ik doorvoer houdt in dat ik de juiste pakketten installeer en enkele configuratiebestanden aanpas. Daarna is het een kwestie van het herstarten van de betreffende services en het uitvoeren van een aantal tests.

Voor mijn Windows 10- en 11-machines hoefde ik geen wijzigingen door te voeren. Kerberos is standaard ingeschakeld, en Windows valt automatisch terug op NTLM als Kerberos-authenticatie niet lukt.

💡 Tip: Je kunt onder Windows de actieve Kerberos-tickets bekijken met het commando klist.

In de onderstaande voorbeelden gebruik ik sudo, maar houd er rekening mee dat sudo standaard niet is geïnstalleerd in Debian. Je kunt de commando’s ook rechtstreeks als root-gebruiker uitvoeren. Als ervaren Debian-gebruiker weet je dat natuurlijk wel. 😄

Ben je echter gewend aan Ubuntu, dan kan de Debian-manier verwarrend zijn. Het is dan verstandig om deze toelichting even door te lezen. Daarin wordt uitgelegd hoe de standaardconfiguratie van sudo in Debian verschilt van die in Ubuntu.

Stap 1: Pakketten installeren 👣

Voordat je configuratiebestanden aanpast, zorg je dat alle benodigde softwarepakketten aanwezig zijn:

sudo apt update
sudo apt install smbclient cifs-utils krb5-user winbind libpam-winbind libnss-winbind gvfs-backends thunar-volman xfce4-settings
  • smbclient en cifs-utils: tools voor SMB-share toegang en mounten
  • krb5-user: Kerberos clienttools
  • winbind, libpam-winbind, libnss-winbind: integratie met Active Directory gebruikers en authenticatie
  • gvfs-backends, thunar-volman, xfce4-settings: netwerkshares browsen binnen XFCE/Thunar

Stap 2: Configuratie aanpassen 👣

Afbeelding van Kerberos (Cerberos), de waakhond uit de Griekse mythologie

Kerberos configuratie (/etc/krb5.conf)

Stel je Kerberos-configuratie in zodat je werkstation de domeincontrollers als KDC’s en Admin Servers herkent:

[libdefaults]
    default_realm = LAN.EXAMPLE.COM
    dns_lookup_realm = false
    dns_lookup_kdc = true
    rdns = false
    ticket_lifetime = 9h
    renew_lifetime = 18h
    forwardable = false

[realms]
    LAN.EXAMPLE.COM = {
        kdc = sdc01.lan.example.com
        kdc = sdc02.lan.example.com
        admin_server = sdc01.lan.example.com
        admin_server = sdc02.lan.example.com
    }

[domain_realm]
    .lan.example.com = LAN.EXAMPLE.COM
    lan.example.com = LAN.EXAMPLE.COM

Logo van Samba, open source-implementatie van het SMB-protocol

Samba client configuratie (~/smb.conf)

Maak of pas je Samba clientconfiguratie aan (bijvoorbeeld in je home directory):

[global]
    client min protocol = SMB2
    client max protocol = SMB3
    client signing = required
    client ipc signing = auto
    kerberos method = system keytab

Uiteraard kun je de bovenstaande SMB-configuratie ook systeembreed toepassen door /etc/smb.conf aan te passen, maar dat hangt af van je persoonlijke voorkeur.

Stap 3: Services herstarten 👣

Start na het aanpassen van configuraties de relevante services opnieuw om de wijzigingen door te voeren:

sudo systemctl restart winbind smbd

Kerberos zelf heeft geen daemon die je moet herstarten, maar het is goed om eerst een nieuwe ticket op te halen.

Stap 4: Configuratie testen 👣

Kerberos tickets verkrijgen en controleren

Onder zowel Linux als Windows is het mogelijk om te testen of de authenticatie via Kerberos verloopt in plaats van via NTLM.


🛠️ Linux-clients 🐧

Om te controleren of je Linux-werkstation correct is ingesteld voor Kerberos-authenticatie binnen Active Directory, doorloop je deze tests:

kinit jouwgebruikersnaam@LAN.EXAMPLE.COM

Met dit commando vraag je een Kerberos-ticket aan bij de KDC (Key Distribution Center) van je AD-domein. Je voert je wachtwoord in, waarna je een ticket krijgt dat bewijst dat je geauthenticeerd bent binnen het domein.

klist

Dit toont de lijst van actieve Kerberos-tickets in je sessie, inclusief het ticket voor de Ticket Granting Ticket (TGT). Hier controleer je de geldigheidsduur en dat je ticket succesvol is verkregen.


🏢 Windows-clients 🪟

Onder Windows kun je met het commando klist (ook) een overzicht krijgen van de actieve Kerberos-tickets voor de huidige sessie. Dit is vooral nuttig voor het controleren of Kerberos-authenticatie daadwerkelijk wordt gebruikt in plaats van NTLM.

Het volgende commando:

PS C:\Users\bouke> klist

Geeft de volgende uitvoer:

Current LogonId is 0:0xe68a3

Cached Tickets: (4)

#0>     Client: bouke @ LAN.EXAMPLE.COM
        Server: krbtgt/LAN.EXAMPLE.COM @ LAN.EXAMPLE.COM
        KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
        Ticket Flags 0x40e10000 -> forwardable renewable initial pre_authent name_canonicalize
        Start Time: 5/17/2025 13:13:55 (local)
        End Time:   5/17/2025 23:13:55 (local)
        Renew Time: 5/24/2025 13:13:55 (local)
        Session Key Type: AES-256-CTS-HMAC-SHA1-96
        Cache Flags: 0x1 -> PRIMARY
        Kdc Called: SDC02

#1>     Client: bouke @ LAN.EXAMPLE.COM
        Server: cifs/sdc02.lan.example.com/lan.example.com @ LAN.EXAMPLE.COM
        KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
        Ticket Flags 0x40ac0000 -> forwardable renewable pre_authent ok_as_delegate 0x80000
        Start Time: 5/17/2025 13:13:55 (local)
        End Time:   5/17/2025 23:13:55 (local)
        Renew Time: 5/24/2025 13:13:55 (local)
        Session Key Type: AES-256-CTS-HMAC-SHA1-96
        Cache Flags: 0
        Kdc Called: sdc01.lan.example.com

#2>     Client: bouke @ LAN.EXAMPLE.COM
        Server: ldap/sdc01.lan.example.com/lan.example.com @ LAN.EXAMPLE.COM
        KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
        Ticket Flags 0x40ac0000 -> forwardable renewable pre_authent ok_as_delegate 0x80000
        Start Time: 5/17/2025 13:13:55 (local)
        End Time:   5/17/2025 23:13:55 (local)
        Renew Time: 5/24/2025 13:13:55 (local)
        Session Key Type: AES-256-CTS-HMAC-SHA1-96
        Cache Flags: 0
        Kdc Called: sdc01.lan.example.com

#3>     Client: bouke @ LAN.EXAMPLE.COM
        Server: LDAP/sdc02.lan.example.com/lan.example.com @ LAN.EXAMPLE.COM
        KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
        Ticket Flags 0x40ac0000 -> forwardable renewable pre_authent ok_as_delegate 0x80000
        Start Time: 5/17/2025 13:13:55 (local)
        End Time:   5/17/2025 23:13:55 (local)
        Renew Time: 5/24/2025 13:13:55 (local)
        Session Key Type: AES-256-CTS-HMAC-SHA1-96
        Cache Flags: 0
        Kdc Called: sdc01.lan.example.com

🧠 Toelichting:

  • krbtgt is het Ticket Granting Ticket (TGT), nodig om andere service tickets op te vragen.
  • CIFS- en LDAP-tickets tonen dat netwerkshares en directoryservices correct via Kerberos verlopen.
  • De encryptie (AES-256) toont aan dat moderne, veilige algoritmen actief zijn.
  • Kdc Called toont welke domeincontroller het ticket heeft uitgegeven — hier zijn dat sdc01 en sdc02, volledig benoemd in FQDN-vorm.
  • Windows beheert deze tickets automatisch; je hoeft ze niet handmatig aan te maken.

SMB-shares bekijken via Kerberos

smbclient -k -L //sdc01.lan.example.com

Met deze opdracht vraag je een lijst op van gedeelde SMB-mappen op de server sdc01, waarbij -k aangeeft dat authenticatie via Kerberos moet verlopen. Dit bevestigt dat de Kerberos-verbinding werkt en dat je toegang hebt tot de shares.

SMB-share mounten met Kerberos

sudo mount -t cifs //sdc01.lan.example.com/share /mnt/share -o sec=krb5,uid=$(id -u),gid=$(id -g),_netdev

Hiermee mount je de SMB-share share van sdc01 op je lokale map /mnt/share. De optie sec=krb5 zorgt dat de verbinding Kerberos-authenticatie gebruikt. uid=$(id -u) en gid=$(id -g) zorgen dat jij als gebruiker eigenaar wordt van de gemounte bestanden, zodat je er makkelijk mee kunt werken. _netdev geeft aan dat dit een netwerkdevice is, wat handig is voor het juiste mount- en unmount-gedrag bij netwerkproblemen.

Stap 5: Werken met netwerkshares in XFCE/Thunar

Met de geïnstalleerde pakketten kun je nu via Thunar onder Netwerk SMB-shares browsen en openen, mits je Kerberos-tickets geldig zijn.

smb-share-thunar

In de schermafdruk wordt de SMB-share data01 op mijn TrueNAS-fileserver tfs01 weergegeven. Ik draai (nog) met TrueNAS Core, wat is opgevolgd door TrueNAS SCALE.

💡 Tip: TrueNAS is meer dan een fileserver omdat het uitgebreide functies biedt zoals geavanceerd opslagbeheer (ZFS), datareplicatie, snapshots en ingebouwde beveiliging. Door de ondersteuning voor virtualisatie en containers kan TrueNAS vergeleken worden met een Synology- of QNAP-NAS, waarop je ook diverse pakketten kunt draaien om functionaliteit toe te voegen — maar dan op eigen hardware.

Opmerking over NTLM 💬

In deze setup is NTLM op de domain controllers uitgeschakeld, wat alleen Kerberos-authenticatie toestaat. Dit verhoogt de veiligheid door zwakkere authenticatiemethoden te elimineren.

Conclusie 🧾

Deze aanpak zorgt voor een veilig, stabiel en gebruiksvriendelijk Linux-werkstation dat naadloos samenwerkt met Active Directory op een hoog functioneel niveau zonder NTLM.

Next Post Previous Post