Windows-Clients unterstützen alle drei sowie die neuesten Linux-Kernel. Ich kenne keinen modernen Client, der NTLMv2 nicht unterstützt, obwohl Kerberos etwas weniger verbreitet ist.
Der Hauptunterschied zwischen NTLM und Kerberos ist:
NTLM ist ein Challenge-Response-Mechanismus, der nur mit Passwörtern funktioniert. Es kann also zwischen zwei beliebigen Hosts verwendet werden, solange der Client das vom Server gewünschte Passwort kennt.
Kerberos basiert auf Tickets. Der Client erhält ein Login-Ticket von einem zentralen KDC und präsentiert es dem Server. Dazu muss ein Kerberos-Realm eingerichtet werden. Bei CIFS handelt es sich normalerweise um eine Active Directory-Domäne - und der KDC des Realms, der irgendwo gehostet wird.
(Mac OS X, das früher das AFP-Protokoll dem CIFS vorgezogen hat, kann Kerberos tatsächlich zwischen zwei Peers verwenden, wobei automatisch generierte Bereichsnamen verwendet werden, aber weder Windows noch Linux unterstützen dasselbe.)
Jedoch:
Die Sicherheit von NTLM Version 1 liegt sehr nahe an der einfachen Versendung des Passworts. NTLMv2 verbessert dies etwas, obwohl ich nicht sicher bin, wie viel.
Kerberos 5 gilt mittlerweile als sehr sicher und wird von Active Directory, FreeIPA und verschiedenen anderen Unix-Verzeichnisdienstprogrammen verwendet.
Leider dauert die Einrichtung von Kerberos einige Zeit, und Windows-Clients unterstützen es nur ordnungsgemäß (dh ohne drei Tage), wenn sowohl Client als auch Server zu einer AD-Domäne gehören.
Daher müssen Sie sich jetzt für NTLMv2 entscheiden. Dies ist, was Standalone-Windows-Maschinen standardmäßig standardmäßig verwenden. (Die Standardeinstellung in modernen Linux-Kerneln ist sec=ntlmssp
: Ich bin nicht ganz sicher, wie sich das unterscheidet ntlmv2
, obwohl ich weiß, dass die Unterschiede keine Auswirkungen auf die Sicherheit haben.)