Nowe funkcje w usłudze koordynatora transakcji rozproszonych w systemie Windows

W tym artykule opisano niektóre aktualizacje i zmiany związane z zabezpieczeniami systemu Windows oraz ich wpływ na usługę Microsoft Distributed Transaction Coordinator (MS DTC).

Oryginalna wersja produktu: Windows
Oryginalny numer KB: 899191

Podsumowanie

Od systemu Windows Server 2003 z dodatkiem Service Pack 1 (SP1) i Windows XP z dodatkiem Service Pack 2 (SP2) w systemie Windows wprowadzono pewne aktualizacje i zmiany związane z zabezpieczeniami, które mają wpływ na usługę MS DTC.

Dostęp do tych zmian można uzyskać za pomocą zaktualizowanego okna dialogowego Konfiguracja zabezpieczeń dostępnego w narzędziu administracyjnym usług składników.

Te zmiany są wprowadzane w domyślnych ustawieniach zabezpieczeń, które powodują, że ruch usługi DTC przechodzi w tryb failover przez sieć. W takiej sytuacji może zostać wyświetlony co najmniej jeden komunikat o błędzie lub kody błędów.

Modyfikując ustawienia w oknie dialogowym Konfiguracja zabezpieczeń , możesz pomóc w kontrolowaniu sposobu, w jaki usługa DTC komunikuje się z komputerami zdalnymi za pośrednictwem sieci.

W tym artykule opisano nowe funkcje usługi MS DTC w następujących systemach operacyjnych:

  • Windows Server 2003 Service Pack 1 (SP1)
  • Windows XP Service Pack 2 (SP2)
  • Windows Vista
  • Windows Server 2008
  • Windows 7
  • Windows Server 2008 R2
  • Windows 8
  • Windows Server 2012
  • Windows 8.1
  • Windows Server 2012 R2

Usługa DTC koordynuje transakcje, które aktualizują co najmniej dwa zasoby chronione przez transakcje. Zasoby chronione przez transakcje obejmują bazy danych, kolejki komunikatów i systemy plików. Te zasoby chronione przez transakcje mogą znajdować się na jednym komputerze lub mogą być dystrybuowane między wieloma komputerami sieciowymi.

Zarządzanie komunikacją siecią przy użyciu konfiguracji zabezpieczeń

W systemie Windows usługa DTC zapewnia większą kontrolę nad komunikacją sieciową między komputerami. Domyślnie cała komunikacja sieciowa jest wyłączona. Okno dialogowe Konfiguracja zabezpieczeń usługi DTC zostało rozszerzone, dzięki czemu można zarządzać tymi ustawieniami komunikacji. Aby wyświetlić okno dialogowe Konfiguracja zabezpieczeń , wykonaj następujące kroki:

  1. Uruchom narzędzie administracyjne usług składników. W tym celu wybierz pozycję Start, wybierz pozycję Uruchom, wpisz dcomcnfg.exe, a następnie wybierz przycisk OK.
  2. W drzewie konsoli narzędzia administracyjnego Usługi składników rozwiń węzeł Usługi składników, rozwiń węzeł Komputery, kliknij prawym przyciskiem myszy pozycję Mój komputer, a następnie wybierz pozycję Właściwości.
  3. Wybierz kartę MSDTC , a następnie wybierz pozycję Konfiguracja zabezpieczeń.

Nowe opcje w konfiguracji zabezpieczeń

Poniższe informacje opisują nowe opcje dostępne w oknie dialogowym Konfiguracja zabezpieczeń . Te informacje opisują również wpisy rejestru, na które mają wpływ nowe opcje w oknie dialogowym Konfiguracja zabezpieczeń .

Dostęp do usługi DTC sieci

Pole wyboru Dostęp do usługi DTC sieci umożliwia określenie, czy usługa DTC może uzyskać dostęp do sieci. Aby włączyć transakcje usługi DTC sieci, należy zaznaczyć pole wyboru Dostęp do usługi DTC sieci razem z jednym z pozostałych pól wyboru w obszarze Dostęp do usługi DTC sieci .

Pole wyboru Dostęp do usługi DTC sieci ma wpływ na następujący wpis rejestru:

  • Ścieżka rejestru: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security
  • Nazwa wartości: NetworkDtcAccess
  • Typ wartości: REG_DWORD
  • Dane wartości: 0 (wartość domyślna)

Uwaga

W klastrze serwera pole wyboru Dostęp do usługi DTC sieci ma wpływ na wartość w kluczu rejestru klastra udostępnionego w kluczu rejestru zasobów MS DTC. Klucz rejestru klastra udostępnionego dla usługi MS DTC znajduje się w HKEY_LOCAL_MACHINE\Cluster\Resources\<MSDTC resource GUID> lokalizacji.

Domyślnie wartość wpisu NetworkDtcAccess rejestru jest ustawiona na 0. Wartość 0 wyłącza NetworkDtcAccess wpis rejestru. Aby włączyć wpis rejestru, ustaw tę wartość rejestru na NetworkDtcAccess 1.

Zezwalaj na ruch przychodzący

Pole wyboru Zezwalaj na ruch przychodzący umożliwia określenie, czy zezwolić na uruchamianie transakcji rozproszonej pochodzącej z komputera zdalnego na komputerze lokalnym. Domyślnie to ustawienie jest wyłączone. Aby włączyć to ustawienie, kliknij, aby zaznaczyć pole wyboru Dostęp do usługi DTC sieci , aby ustawić następujący wpis rejestru na 1:

  • Ścieżka rejestru: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security
  • Nazwa wartości: NetworkDtcAccess
  • Typ wartości: REG_DWORD

Aby wyłączyć to ustawienie, kliknij, aby wyczyścić pole wyboru Dostęp do usługi DTC sieci , aby ustawić ten wpis rejestru na wartość 0.

Pole wyboru Zezwalaj na ruch przychodzący ma wpływ na oba następujące wpisy rejestru REG_DWORD w obszarze HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security:

  • NetworkDtcAccessTransactions
  • NetworkDtcAccessInbound

Zezwalaj na ruch wychodzący

Pole wyboru Zezwalaj na ruch wychodzący pozwala określić, czy zezwolić komputerowi lokalnemu na zainicjowanie transakcji i uruchomienie tej transakcji na komputerze zdalnym. Aby włączyć to ustawienie, zaznacz pole wyboru Dostęp do usługi DTC sieci , aby ustawić następujący wpis rejestru na 1:

  • Ścieżka rejestru: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security
  • Nazwa wartości: NetworkDtcAccess
  • Typ wartości: REG_DWORD

Aby wyłączyć to ustawienie, wyczyść pole wyboru Dostęp do usługi DTC sieci , aby ustawić ten wpis rejestru na wartość 0.

Pole wyboru Zezwalaj na ruch wychodzący ma wpływ na oba następujące wpisy rejestru REG_DWORD w obszarze HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security:

  • NetworkDtcAccessTransactions
  • NetworkDtcAccessOutbound

Wymagane wzajemne uwierzytelnianie

Opcja Wymagane uwierzytelnianie wzajemne dodaje obsługę uwierzytelniania wzajemnego w systemie Windows. Wymagane wzajemne uwierzytelnianie ustawia największy tryb zabezpieczeń, który jest obecnie dostępny na potrzeby komunikacji sieciowej. Zalecamy ten tryb transakcji dla komputerów klienckich z systemem Windows XP z dodatkiem SP2 wraz z komputerami z systemem Windows Server 2003 z dodatkiem SP1.

Wymagane wzajemne uwierzytelnianie ma wpływ na następujące wpisy rejestru w obszarze HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC:

  • Klucz rejestru 1

    • Nazwa wartości: AllowOnlySecureRpcCalls
    • Typ wartości: REG_DWORD
    • Dane wartości: 1
  • Klucz rejestru 2

    • Nazwa wartości: FallbackToUnsecureRPCIfNecessary
    • Typ wartości: REG_DWORD
    • Dane wartości: 0
  • Klucz rejestru 3

    • Nazwa wartości: TurnOffRpcSecurity
    • Typ wartości: REG_DWORD
    • Dane wartości: 0

Funkcjonalność ustawiana przy użyciu wymaganego wzajemnego uwierzytelniania różni się od funkcji, która jest ustawiana przy użyciu wymaganego uwierzytelniania wywołującego przychodzącego. Trzy opcje wymienione w obszarze Komunikacja z menedżerem transakcji działają w następujący sposób:

  • Tryb transakcji Wymagane uwierzytelnianie wzajemne wymaga składnika zdalnego dostępu w celu zapewnienia uwierzytelnionego połączenia z komputerem lokalnym. To uwierzytelnianie jest weryfikowane przez personifikację na komputerze lokalnym. Ponadto jeśli komunikacja dostępu zdalnego jest wykonywana między dwiema usługami DTC, te informacje uwierzytelniania muszą określać konto komputera zgodne z nazwą hosta komputera w trybie transakcji zdalnej.

  • Tryb wymaganych transakcji uwierzytelniania wywołującego przychodzącego wymaga tylko uwierzytelnienia połączenia zdalnego. Ponadto jeśli składnik uzyskujący dostęp zdalny jest usługą DTC, informacje o uwierzytelnianiu muszą dotyczyć konta komputera.

  • Tryb transakcji Bez uwierzytelniania nie weryfikuje uwierzytelnionego połączenia ani nie sprawdza, czy nawiązywane jest uwierzytelnione połączenie.

W środowisku klastrowanym konto komputera dla usługi DTC określa nazwę hosta węzła klastra. W środowisku klastrowanym uwierzytelnianie usługi DTC nie używa nazwy hosta trybu transakcji. W środowisku klastrowanym nazwa hosta trybu transakcji to nazwa usługi wirtualnej. W związku z tym nie można używać trybu transakcji wymaganego do wzajemnego uwierzytelniania w środowisku klastrowanym ani na komputerach negocjujących transakcje z takimi komputerami. Tryb wymaganych transakcji wzajemnego uwierzytelniania można użyć między dwoma komputerami nieklastruowanymi z systemem Windows Server 2003 z dodatkiem SP1 lub między dwoma komputerami z systemem Windows XP z dodatkiem SP2.

Użyj trybu wymaganej transakcji uwierzytelniania wywołującego przychodzącego między komputerami z systemem Windows Server 2003 w środowisku klastrowanym.

Użyj trybu transakcji Bez uwierzytelniania, w którym spełniony jest co najmniej jeden z następujących warunków:

  • Dostęp do sieci odbywa się między komputerami z systemem Microsoft Windows 2000.
  • Dostęp do sieci znajduje się między dwiema domenami, które nie mają skonfigurowanego wzajemnego zaufania.
  • Dostęp do sieci odbywa się między komputerami należącymi do grupy roboczej.

Wymagane jest uwierzytelnianie przychodzących rozmówców

Wymagane uwierzytelnianie przychodzących rozmówców wymaga, aby lokalna usługa DTC komunikowała się ze zdalną usługą DTC przy użyciu tylko zaszyfrowanych komunikatów. Uwierzytelnione zostanie tylko połączenie przychodzące. Tylko system Windows Server 2003 z dodatkiem SP1, Windows XP z dodatkiem SP2 i nowsza wersja systemu Windows obsługują tę funkcję. W związku z tym tę opcję należy włączyć tylko wtedy, gdy zdalna usługa DTC jest uruchomiona na komputerze z systemem Windows Server 2003 z dodatkiem SP1, Windows XP z dodatkiem SP2 lub nowszą wersją systemu Windows.

Wymagane uwierzytelnianie wywołującego przychodzące ma wpływ na następujące wpisy rejestru w obszarze HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC:

  • Klucz rejestru 1

    • Nazwa wartości: AllowOnlySecureRpcCalls
    • Typ wartości: REG_DWORD
    • Dane wartości: 0
  • Klucz rejestru 2

    • Nazwa wartości: FallbackToUnsecureRPCIfNecessary
    • Typ wartości: REG_DWORD
    • Dane wartości: 1
  • Klucz rejestru 3

    • Nazwa wartości: TurnOffRpcSecurity
    • Typ wartości: REG_DWORD
    • Dane wartości: 0

Aby uzyskać więcej informacji na temat wymaganego uwierzytelniania wywołującego przychodzącego, zobacz sekcję Wymagane wzajemne uwierzytelnianie .

Nie jest wymagane uwierzytelnianie

Brak wymaganego uwierzytelniania umożliwia zgodność systemu operacyjnego między wcześniejszymi wersjami systemu operacyjnego Windows. Po włączeniu tej opcji komunikacja sieciowa między usługami DTC może powrócić do komunikacji nieupo uwierzytelnionej lub do komunikacji nieszyfrowanej, jeśli nie można ustanowić bezpiecznego kanału komunikacyjnego.

Uwaga

Zalecamy użycie tego ustawienia, jeśli zdalna usługa DTC jest uruchomiona na komputerze z systemem Microsoft Windows 2000 lub na komputerze z systemem Windows XP w wersji starszej niż Windows XP SP2.

Możesz również użyć opcji Brak wymaganego uwierzytelniania , aby rozwiązać sytuację, w której usługi DTC są uruchomione na komputerach znajdujących się w domenach, które nie mają ustanowionej relacji zaufania. Ponadto możesz użyć opcji Brak wymaganego uwierzytelniania , aby rozwiązać sytuację, w której usługi DTC są uruchomione na komputerach należących do grupy roboczej.

Brak wymaganego uwierzytelniania ma wpływ na następujące wpisy rejestru w obszarze HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC:

  • Klucz rejestru 1

    • Nazwa wartości: AllowOnlySecureRpcCalls
    • Typ wartości: REG_DWORD
    • Dane wartości: 0
  • Klucz rejestru 2

    • Nazwa wartości: FallbackToUnsecureRPCIfNecessary
    • Typ wartości: REG_DWORD
    • Dane wartości: 0
  • Klucz rejestru 3

    • Nazwa wartości: TurnOffRpcSecurity
    • Typ wartości: REG_DWORD
    • Dane wartości: 1

Uwaga

W klastrze serwerów te wpisy rejestru znajdują się w rejestrze klastra udostępnionego.

Znaczenie nowych opcji

Nowe opcje dostępne w oknie dialogowym Konfiguracja zabezpieczeń umożliwiają stosowanie ustawień zabezpieczeń do wychodzącej lub przychodzącej komunikacji sieciowej. Domyślnie po zainstalowaniu systemu Windows komputer nie akceptuje ruchu sieciowego. W związku z tym komputer jest mniej narażony na dostęp do sieci przez złośliwego użytkownika. Ponadto protokoły wysyłane za pośrednictwem sieci są aktualizowane w celu obsługi bardziej bezpiecznego i wzajemnie uwierzytelnionego trybu komunikacji. Pomaga to zmniejszyć prawdopodobieństwo przechwycenia i przejęcia komunikacji między usługami DTC przez złośliwego użytkownika.

Zmiany komunikacji sieciowej w systemie Windows

Komunikacja sieciowa wychodząca z usługi DTC lub przychodząca do usługi DTC jest wyłączona. Jeśli na przykład obiekt COM+ próbuje zaktualizować bazę danych SQL Server firmy Microsoft znajdującą się na komputerze zdalnym przy użyciu transakcji usługi DTC, ta transakcja nie powiedzie się. Z drugiej strony, jeśli komputer hostuje bazę danych SQL Server, do których składniki z komputera zdalnego próbują uzyskać dostęp przy użyciu transakcji usługi DTC, ta transakcja nie powiedzie się.

Następujące problemy są związane z usługą DTC:

Transakcje nie powiodły się z powodu problemów z łącznością sieciową

Ważna

W tej sekcji, metodzie lub w tym zadaniu podano informacje dotyczące modyfikowania rejestru. Niepoprawne zmodyfikowanie rejestru może jednak być przyczyną poważnych problemów. Dlatego należy uważnie wykonywać podane czynności. Dla większego bezpieczeństwa przed zmodyfikowaniem rejestru należy wykonać jego kopię zapasową. Dzięki temu będzie można przywrócić rejestr w przypadku wystąpienia problemu. Aby uzyskać więcej informacji na temat sposobu tworzenia kopii zapasowych, przywracania i modyfikowania rejestru, zobacz artykuł Tworzenie kopii zapasowych i przywracanie rejestru systemu Microsoft Windows.

Jeśli transakcje usługi DTC zakończą się niepowodzeniem z powodu problemów z łącznością sieciową, kliknij, aby zaznaczyć następujące pola wyboru w oknie dialogowym Konfiguracja zabezpieczeń :

  • Kliknij, aby zaznaczyć pole wyboru Dostęp do usługi DTC sieci .

  • Kliknij, aby zaznaczyć jedno lub oba z następujących pól wyboru w obszarze Komunikacja z menedżerem transakcji w zależności od wymagań:

    • Zezwalaj na ruch przychodzący
    • Zezwalaj na ruch wychodzący

Jeśli chcesz programowo zmienić te ustawienia w ramach systemu Windows, możesz bezpośrednio zmodyfikować ustawienia rejestru odpowiadające ustawieniu, które chcesz ustawić. Po zmodyfikowaniu ustawień rejestru należy ponownie uruchomić usługę DTC.

Zalecamy, aby nie modyfikować ręcznie rejestru w celu zmiany tych ustawień. W przypadku ręcznej modyfikacji tych ustawień rejestru mogą wystąpić problemy z usługą klastrowania w klastrach serwerów opartych na systemie Windows Server 2003 z dodatkiem SP1.

Zapora systemu Windows blokuje ruch usługi DTC

Ważna

Te kroki mogą zwiększyć ryzyko związane z bezpieczeństwem. Te kroki mogą również sprawić, że komputer lub sieć będą bardziej narażone na ataki złośliwych użytkowników lub złośliwego oprogramowania, takiego jak wirusy. Zalecamy proces, który opisano w tym artykule, aby umożliwić programom działanie w miarę ich projektowania lub implementowania określonych możliwości programu. Przed wprowadzeniem tych zmian zalecamy ocenę ryzyka związanego z implementowaniem tego procesu w określonym środowisku. Jeśli zdecydujesz się zaimplementować ten proces, wykonaj wszelkie odpowiednie dodatkowe kroki, aby pomóc w ochronie systemu. Zalecamy korzystanie z tego procesu tylko wtedy, gdy ten proces jest naprawdę wymagany.

Jeśli używasz Zapory systemu Windows, musisz dodać usługę DTC do listy wyjątków w ustawieniach Zapory systemu Windows. Aby to zrobić, wykonaj następujące kroki.

  1. Wybierz pozycję Start, wybierz pozycję Uruchom, wpisz firewall.cpl, a następnie wybierz przycisk OK.
  2. W oknie dialogowym Zapora systemu Windows wybierz kartę Wyjątki , a następnie wybierz pozycję Dodaj program.
  3. Wybierz pozycję Przeglądaj, znajdź, a następnie wybierz pozycję C:\Windows\System32\msdtc.exe, a następnie wybierz pozycję Otwórz.
  4. Wybierz przycisk OK, zaznacz pole wyborumsdtc.exe na liście Programy i usługi , jeśli to pole wyboru nie jest jeszcze zaznaczone, a następnie wybierz przycisk OK.

Ustawienia, które zostały zmienione lub dodane

W poniższej tabeli opisano wpisy rejestru, które są zmieniane od czasu systemu Windows XP z dodatkiem SP2 z wcześniejszych wersji systemu Windows.

Nazwa wpisu Lokalizacja Poprzednia wartość domyślna Wartość domyślna systemu Windows XP z dodatkiem SP2 Dopuszczalne wartości
NetworkDtcAccess HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security 1 0 0 lub 1
NetworkDtcAccessTransactions KEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security 1 0 0 lub 1
NetworkDtcAccessInbound HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security Nie dotyczy 0 0 lub 1
NetworkDtcAccessOutbound HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security Nie dotyczy 0 0 lub 1
AllowOnlySecureRpcCalls HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC Nie dotyczy 1 0 lub 1
FallbackToUnsecureRPCIfNecessary HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC Nie dotyczy 0 0 lub 1
TurnOffRpcSecurity HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC Nie dotyczy 0 0 lub 1

Uwaga

Te zmiany są wyświetlane w rejestrze klastra udostępnionego w klastrze serwerów z systemem Windows Server 2003 z dodatkiem SP1.

Kody błędów skojarzone ze zmianami usługi DTC

Podczas uruchamiania transakcji usługi DTC między komputerami może zostać wyświetlony jeden z następujących kodów błędów:

  • Kod błędu 1

    MessageId: XACT_E_NETWORK_TX_DISABLED
    Messagetext:
    Menedżer transakcji wyłączył obsługę transakcji zdalnych/sieciowych.
    #define XACT_E_NETWORK_TX_DISABLED HRESULT_TYPEDEF(0x8004D024L)

  • Kod błędu 2

    MessageId: XACT_E_PARTNER_NETWORK_TX_DISABLED
    Messagetext:
    Menedżer transakcji partnera wyłączył obsługę transakcji zdalnych/sieciowych.
    #define XACT_E_PARTNER_NETWORK_TX_DISABLED HRESULT_TYPEDEF(0x8004D025L)

Informacje zawarte w tym artykule dotyczą

  • Windows Server 2012 R2
  • Windows 8.1
  • Windows 8
  • Windows 7
  • Windows Vista
  • Windows Server 2008
  • Windows Server 2003
  • Windows XP