Linux-werkstation integratie met Active Directory via Kerberos 🤖
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
encifs-utils
: tools voor SMB-share toegang en mountenkrb5-user
: Kerberos clienttoolswinbind
,libpam-winbind
,libnss-winbind
: integratie met Active Directory gebruikers en authenticatiegvfs-backends
,thunar-volman
,xfce4-settings
: netwerkshares browsen binnen XFCE/Thunar
Stap 2: Configuratie aanpassen 👣
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
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 datsdc01
ensdc02
, 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.
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.