Kerberos'u Windows'ta UDP yerine TCP kullanmaya zorlama

Bu makalede Kerberos'un UDP yerine TCP kullanmaya nasıl zorlandığı açıklanır.

Şunlar için geçerlidir: Windows 10 - tüm sürümler, Windows Server 2012 R2
Özgün KB numarası: 244474

Özet

Windows Kerberos kimlik doğrulama paketi, Windows Server 2003, Windows Server 2008 ve Windows Vista'da varsayılan kimlik doğrulama paketidir. NTLM sınama/yanıt protokolüyle birlikte bulunur ve hem istemcinin hem de sunucunun Kerberos anlaşması yapabildiği örneklerde kullanılır. Açıklamalar İsteği (RFC) 1510, bir istemci KDC ile iletişim kurarken istemcinin Anahtar Dağıtım Merkezi'nin (KDC) IP adresinde 88 numaralı bağlantı noktasına bir Kullanıcı Veri Birimi Protokolü (UDP) veri birimi göndermesi gerektiğini belirtir. KDC, gönderenin IP adresindeki gönderen bağlantı noktasına bir yanıt veri birimiyle yanıt vermelidir. RFC, UDP'nin denenen ilk protokol olması gerektiğini de belirtir.

Not

RFC 4120 artık RFC 1510'un kullanımdan kaldırıldı. RFC 4120, KDC'nin TCP isteklerini kabul etmesi ve bu tür istekleri 88 numaralı bağlantı noktasında (ondalık) dinlemesi gerektiğini belirtir. Varsayılan olarak, Windows Server 2008 ve Windows Vista Kerberos için önce TCP'yi dener çünkü MaxPacketSize varsayılanı artık 0'dır. Bu davranışı geçersiz kılmak için MaxPacketSize kayıt defteri değerini kullanmaya devam edebilirsiniz.

UDP paket boyutuyla ilgili bir sınırlama, etki alanı oturum açma sırasında aşağıdaki hata iletisine neden olabilir:

Olay Günlüğü Hatası 5719
Kaynak NETLOGON

Etki alanı Etki Alanı için Windows NT veya Windows 2000 Etki Alanı Denetleyicisi kullanılamaz. Aşağıdaki hata oluştu:

Şu anda oturum açma isteğine hizmet vermek için kullanılabilecek oturum açma sunucusu yok.

Ayrıca, Netdiag aracı aşağıdaki hata iletilerini görüntüleyebilir:

  • Hata iletisi 1

    DC listesi sınaması. . . . . . . . . . . : Başarısız [UYARI] DsBind COMPUTERNAMEDC.domain.com çağrısı yapılamıyor (159.140.176.32). [ERROR_DOMAIN_CONTROLLER_NOT_FOUND]

  • Hata iletisi 2

    Kerberos testi. . . . . . . . . . . : Başarısız [ÖNEMLİ] Kerberos'un MEMBERSERVER$ için bir bileti yok.] Bu sorunun belirtileri olan Windows XP olay günlükleri SPNegotiate 40960 ve Kerberos 10'dur.

Daha fazla bilgi

Önemli

Bu bölüm, yöntem veya görev, kayıt defterini nasıl değiştireceğinizin anlatıldığı adımları içermektedir. Ancak kayıt defterini hatalı biçimde değiştirirseniz önemli sorunlar oluşabilir. Bu nedenle bu adımları dikkatle uyguladığınızdan emin olun. Ek koruma için kayıt defterini değiştirmeden önce yedeklemeyi unutmayın. Böylece, bir sorun oluşursa kayıt defterini daha sonra geri yükleyebilirsiniz. Kayıt defterini yedekleme ve geri yükleme hakkında daha fazla bilgi için bkz. Windows'ta kayıt defterini yedekleme ve geri yükleme.

Kerberos için UDP kullanıyorsanız, şu iletiyi aldığınızda istemci bilgisayarınız yanıt vermeyi durdurabilir (askıda kalabilir): Kişisel ayarlarınızı yükleme.

Varsayılan olarak, Windows Server 2003'ün UDP kullandığı veri birimi paketlerinin boyutu üst sınırı 1.465 bayttır. Windows XP ve Windows 2000 için bu en fazla 2.000 bayttır. İletim Denetimi Protokolü (TCP), bu üst sınırdan daha büyük olan tüm veri birimleri için kullanılır. UDP'nin kullanıldığı en büyük veri birimi paketi boyutu, kayıt defteri anahtarı ve değeri değiştirilerek değiştirilebilir.

Varsayılan olarak, Kerberos bağlantısız UDP veri birimi paketlerini kullanır. Güvenlik tanımlayıcısı (SID) geçmişi ve grup üyeliği gibi çeşitli faktörlere bağlı olarak, bazı hesaplar daha büyük Kerberos kimlik doğrulama paketi boyutlarına sahip olur. Sanal özel ağ (VPN) donanım yapılandırmasına bağlı olarak, bu büyük paketlerin bir VPN üzerinden geçerken parçalanması gerekir. Sorun, bu büyük UDP Kerberos paketlerinin parçalanmasından kaynaklanır. UDP bağlantısız bir protokol olduğundan, hedefe sırasız bir şekilde ulaşırlarsa parçalanmış UDP paketleri bırakılır.

MaxPacketSize değerini 1 olarak değiştirirseniz istemciyi TCP kullanarak VPN tüneli üzerinden Kerberos trafiği göndermeye zorlarsınız. TCP bağlantı odaklı olduğundan, VPN tüneli boyunca daha güvenilir bir aktarım aracıdır. Paketler bırakıldığında bile, sunucu eksik veri paketini yeniden talep eder.

İstemcileri TCP üzerinden Kerberos trafiğini kullanmaya zorlamak için MaxPacketSize değerini 1 olarak değiştirebilirsiniz. Bunu yapmak için şu adımları uygulayın:

  1. Kayıt Defteri Düzenleyicisi'ni başlatın.

  2. Şu kayıt defteri alt anahtarını bulup tıklayın: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\Parameters.

    Not

    Parametreler anahtarı yoksa, şimdi oluşturun.

  3. Düzen menüsünde Yeni'nin üzerine gelin ve DWORD Değeri'ne tıklayın.

  4. MaxPacketSize yazıp ENTER tuşuna basın.

  5. MaxPacketSize öğesine çift tıklayın, Değer verileri kutusuna 1 yazın, Ondalık seçeneğini seçmek için tıklayın ve ardından Tamam'a tıklayın.

  6. Kayıt Defteri Düzenleyicisi'nden çıkın.

  7. Bilgisayarınızı yeniden başlatın.

Bu, Windows 2000, XP ve Server 2003 için çözüm yaklaşımıdır. Windows Vista ve daha yeni sürümler, Kerberos İstemcisi için UDP kullanımını da kapatan MaxPacketSize için varsayılan olarak "0" kullanır.

Aşağıdaki şablon, Windows Server 2003, Windows XP veya Windows 2000 çalıştıran tüm kurumsal bilgisayarlar için MaxPacketSize değerinin ayarlanmasını sağlamak üzere grup ilkesi içeri aktarılabilir bir yönetim şablonudur. MaxPacketSize ayarlarını grup ilkesi Nesne Düzenleyici görüntülemek için, Yalnızca İlkeleri Göster'in seçili olmaması için Görünüm menüsünde yalnızca İlkeleri Göster'e tıklayın. Bu şablon, İlkeler bölümünün dışındaki kayıt defteri anahtarlarını değiştirir. Varsayılan olarak, grup ilkesi Nesne Düzenleyici bu kayıt defteri ayarlarını görüntülemez.