Linux'tan Mac SMB Paylaşımına Güvenlik Bozmadan Bağlanma
macOS'te NT hash oluşturan güvensiz kısayol yerine Kerberos/LKDC kullanarak Linux'tan Mac SMB paylaşımına bağlanmanın yolu anlatılıyor.
Bir Mac mini üzerinde paylaşılan SMB klasörüne iPhone sorunsuz bağlanırken Linux istemcilerinin NT_STATUS_LOGON_FAILURE hatasıyla karşılaşmasının kök nedeni incelenmiş. Sorun ağ veya şifreyle ilgili değil; macOS yerel hesaplar için birden fazla kimlik bilgisi tutuyor ve SMB için iki farklı kimlik doğrulama kapısı sunuyor: NTLMv2 (saklı NT hash gerektirir) ve Kerberos (Mac'in yerleşik Local KDC'sine, yani LKDC'ye dayanır). Taze bir hesapta NT hash hiç oluşturulmadığından Linux'un smbclient ve mount.cifs gibi araçları NTLM kapısında başarısız oluyor; iPhone ise zaten Kerberos kapısını kullandığı için sorunsuz bağlanabiliyor.
İnternette yaygın olarak önerilen çözüm, kullanıcı bazında 'Windows Dosya Paylaşımı' seçeneğini açmak; ancak bu, Apple'ın kendi dokümantasyonuna göre parolayı daha zayıf biçimde saklamaya zorluyor. Yazı bunun yerine iPhone'un yaptığını yapmayı, yani mDNS üzerinden LKDC realm'ini keşfedip Kerberos bileti almayı öneriyor. Burada smbclient'in servis asıl adını (SPN) hostname'den türetmesi ile Mac'in gerçekte cifs/LKDC:SHA1.<hash> kaydetmesi arasındaki uyumsuzluk bir tuzak oluşturuyor; çözüm, UNC yolunda hostname yerine LKDC adını kullanıp gerçek IP'yi -I ile zorlamak.
Kalıcı otomatik bağlama için ise root'un parola istemeden bilet alabilmesi amacıyla keytab oluşturuluyor, realm bilgisi /etc/krb5.conf.d altına ekleniyor ve systemd user/system unit'leriyle (timer, mount, automount) TGT'nin taze tutulması ve paylaşımın ihtiyaç anında bağlanması sağlanıyor. Bu yaklaşım, mühendisler için hem Kerberos'un LKDC üzerinden nasıl işlediğini somutlaştırıyor hem de güvenlik ödünü vermeden çapraz platform SMB erişimi kurmanın pratik bir şablonunu sunuyor.