Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Usługa zdalnego wywoływania procedur (RPC) sprawia, że interfejsy RPC są domyślnie zabezpieczone w celu zmniejszenia liczby ataków. Klucz RestrictRemoteClients rejestru umożliwia modyfikowanie zachowania wszystkich interfejsów RPC w systemie i może być używany do eliminowania zdalnego anonimowego dostępu do interfejsów RPC w systemie, z pewnymi wyjątkami. Możesz zastosować inne kontrolki interfejsu przy użyciu klucza rejestru opisanego EnableAuthEpResolution w tym artykule. Zarówno deweloperzy aplikacji RPC, jak i administratorzy systemu mogą konfigurować ograniczenia interfejsu RPC.
Prerequisites
W przypadku korzystania z RestrictRemoteClients serwera:
Klienci RPC są zobowiązani do korzystania z zabezpieczeń RPC podczas kontaktowania się z aplikacjami serwera, co jest najlepszą metodą ograniczania zagrożeń bezpieczeństwa.
Wyklucz ustawienie RPC z wymagania uwierzytelniania, ustawiając flagę RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH podczas rejestracji. Spowoduje to skonfigurowanie protokołu RPC w celu zezwolenia na anonimowe połączenia z aplikacjami.
Ograniczanie zagrożeń RestrictRemoteClients
Włączenie RestrictRemoteClients tej opcji jest przydatne w ograniczaniu ryzyka związanego z robakami, które polegają na możliwych do wykorzystania przepełnieniach, które można wywołać zdalnie za pośrednictwem połączeń anonimowych. Aplikacje RPC, które oczekują na odbieranie połączeń od zdalnych anonimowych klientów RPC, mogą nie działać poprawnie podczas korzystania z tej funkcji. W związku z tym aplikacje korzystające z modelu DCOM (Distributed Component Object Model) mogą nie działać poprawnie, jeśli ta wartość jest ustawiona.
Wywołania RPC korzystające z protokołów bezpołączeniowych kończą się niepowodzeniem, jeśli ten klucz jest włączony. Bezpieczne wywołania RPC za pośrednictwem protokołów bezpołączeniowych, takich jak UDP (User Datagram Protocol) i IPX (Internetwork Packet Exchange), wykorzystują niższy poziom zabezpieczeń w porównaniu z protokołami zorientowanymi na połączenie. W szczególności ncadg_ip_udp i ncadg_ipx są uważane za mniej bezpieczne. Na potrzeby tych zasad te połączenia są zawsze uważane za niezabezpieczone.
Aby zezwolić na wywołania klienta RPC przy użyciu protokołów bez połączenia, zachowaj RestrictRemoteClients wartość ustawioną na wyłączoną.
Ograniczenia dla klientów RPC
Gdy interfejs jest zarejestrowany za pomocą RpcServerRegisterIfprogramu , RPC umożliwia aplikacji serwera ograniczenie dostępu do interfejsu za pomocą wywołania zwrotnego zabezpieczeń. Klucz RestrictRemoteClients rejestru wymusza na RPC wykonanie dodatkowych kontroli zabezpieczeń dla wszystkich interfejsów, nawet jeśli interfejs nie ma zarejestrowanego wywołania zwrotnego zabezpieczeń.
Klienci RPC, którzy używają nazwanej sekwencji protokołu potoku (ncacn_np), są wyłączeni ze wszystkich ograniczeń omówionych w tej sekcji. Nie można ograniczyć sekwencji protokołu nazwanego potoku ze względu na istotne problemy ze zgodnością z poprzednimi wersjami.
RestrictRemoteClients Można również kontrolować programowo w nagłówku rpcdce.h API (Application Programming Interface).
Konfigurowanie elementu RestrictRemoteClients
Aby edytować te zasady za pomocą edytora obiektu zasad grupy (GPO):
Wybierz pozycję Start> type gpedit.msc> naciśnij Enter , aby otworzyć Edytor lokalnych zasad grupy.
Aby włączyć odpowiednik
RestrictRemoteClientsustawień, przejdź do pozycji Konfiguracja komputera\Szablony administracyjne\System\Zdalne wywołanie procedury\Ograniczenia dla nieuwierzytelnionych klientów RPC, a następnie wybierz jedną z następujących opcji:- Wyłączone — to ustawienie jest wartością domyślną dla jednostek SKU serwera. Odpowiada wartości RPC_RESTRICT_REMOTE_CLIENT_NONE w pliku rpcdce.h i odpowiada aplikacji serwera do nałożenia odpowiednich ograniczeń RPC.
- Uwierzytelnione — odpowiada wartości RPC_RESTRICT_REMOTE_CLIENT_DEFAULT w pliku rpcdce.h. Zezwala tylko uwierzytelnionym klientom RPC na łączenie się z serwerami RPC działającymi na maszynie, na której zastosowano ustawienie zasad. Środowisko uruchomieniowe RPC odrzuca wywołania anonimowe. Jeśli interfejs rejestruje wywołanie zwrotne zabezpieczeń i udostępnia flagę RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH , to to ograniczenie nie ma zastosowania do tego interfejsu.
- Uwierzytelnione bez wyjątków1 — odpowiada wartości RPC_RESTRICT_REMOTE_CLIENT_HIGH w pliku rpcdce.h. Zezwala tylko uwierzytelnionym klientom RPC na łączenie się z serwerami RPC działającymi na maszynie, na której zastosowano ustawienie zasad. Nie są dozwolone żadne wyjątki, gdy ta wartość jest ustawiona, ponieważ system nie może odbierać zdalnych połączeń anonimowych przy użyciu RPC.
Wszelkie zmiany w jednym z tych ustawień wymagają ponownego uruchomienia systemu , aby zaczęły obowiązywać.
Caution
¹Nie używaj tej wartości bez znaczącego testowania. Aby uzyskać więcej informacji, zobacz Ograniczenia dotyczące nieuwierzytelnionych klientów RPC.
EnableAuthEpResolution
Klucz EnableAuthEpResolution umożliwia środowisku uruchomieniowemu klienta RPC używanie protokołu NTLM (NT LAN Manager) do uwierzytelniania w programie mapowania punktów końcowych, gdy jest włączony. To uwierzytelnione zapytanie jest wykonywane tylko wtedy, gdy rzeczywiste wywołanie klienta RPC korzysta z uwierzytelniania RPC.
Klienci RPC wykonują wywołania do serwera RPC, który ma zarejestrowany dynamiczny punkt końcowy z włączonym uwierzytelnianiem klienta mapowania punktów końcowych RPC. Te wywołania są odpytywane w imieniu uwierzytelnionych połączeń przy użyciu uwierzytelniania NTLM.
Klienci RPC, którzy próbują nawiązać wywołanie przy użyciu dynamicznego punktu końcowego, wysyłają zapytanie do programu mapowania punktów końcowych RPC na serwerze, aby określić, z którym punktem końcowym powinien się połączyć. To zapytanie jest wykonywane anonimowo, nawet jeśli samo wywołanie klienta RPC jest wykonywane przy użyciu zabezpieczeń RPC. Interfejs mapowania punktów końcowych RPC nie jest dostępny anonimowo, jeśli RestrictRemoteClients ustawienie jest włączone.
Konfigurowanie funkcji EnableAuthEpResolution
Aby edytować te zasady za pomocą edytora obiektu zasad grupy (GPO):
Wybierz pozycję Start> type gpedit.msc> naciśnij Enter , aby otworzyć Edytor lokalnych zasad grupy.
Aby włączyć odpowiednik
EnableAuthEpResolutionustawień, przejdź do pozycji Konfiguracja komputera\Szablony administracyjne\System\Zdalne wywołanie procedury\Włącz uwierzytelnianie klienta mapowania punktów końcowych RPC, a następnie wybierz jedno z dwóch dostępnych ustawień:- Wyłączone — to ustawienie jest ustawieniem domyślnym. Klienci RPC nie uwierzytelniają się w usłudze mapowania punktów końcowych, ale mogą komunikować się z usługą mapowania punktów końcowych w systemie Windows NT4 Server.
- Włączone — klienci komputerów uwierzytelniają się za pośrednictwem usługi Mapper punktu końcowego na potrzeby wywołań zawierających informacje o uwierzytelnianiu. Klienci wykonujący takie wywołania nie mogą komunikować się z usługą mapowania punktów końcowych systemu Windows NT4 Server.
Wszelkie zmiany w jednym z tych ustawień wymagają ponownego uruchomienia systemu , aby zaczęły obowiązywać.
Important
Następujących ustawień zasad grupy znajdujących się w folderze Konfiguracja komputera\Ustawienia systemu Windows\Ustawienia zabezpieczeń\Zasady lokalne\Opcje zabezpieczeń nie można używać z następującymi ustawieniami EnableAuthEpResolutionzasad grupy:
- Zabezpieczenia sieci: Ogranicz NTLM: Przychodzący ruch NTLM — "Odmów wszystkich kont"
- Zabezpieczenia sieciowe: Ogranicz ntLM: wychodzący ruch NTLM do serwerów zdalnych — "Odmów wszystkie"
Zaleca się odejście od protokołu NTLM w celu lepszego zabezpieczenia środowiska. W przypadku wyboru między ograniczeniem protokołu NTLM a użyciem EnableAuthEpResolutionprogramu zaleca się ograniczenie protokołu NTLM w danym środowisku.
Inne flagi rejestracji interfejsu RPC
Te flagi rejestracji interfejsu są tworzone, aby ułatwić deweloperom aplikacji zabezpieczanie interfejsu RPC:
RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH
Po zarejestrowaniu tej flagi środowisko uruchomieniowe RPC wywołuje zarejestrowane wywołanie zwrotne zabezpieczeń dla wszystkich połączeń, niezależnie od ustawień zabezpieczeń połączeń. Bez tej flagi RPC odrzuca wszystkie nieuwierzytelnione wywołania, zanim dotrą one do wywołania zwrotnego zabezpieczeń. Ta flaga działa tylko wtedy, gdy zarejestrowane jest wywołanie zwrotne zabezpieczeń.RPC_IF_SEC_NO_CACHE
Dla interfejsu jest rejestrowane wywołanie zwrotne zabezpieczeń w celu ograniczenia dostępu. Zazwyczaj wywołanie zwrotne zabezpieczeń personifikuje klienta w celu sprawdzenia, czy klient ma wystarczające uprawnienia do wykonania wywołania interfejsu. Gdy określona tożsamość klienta przekaże wywołanie zwrotne zabezpieczeń, zwykle przekazuje to samo wywołanie zwrotne zabezpieczeń przy kolejnych próbach.Środowisko uruchomieniowe RPC korzysta z tego wzorca, zapamiętując, kiedy poszczególna tożsamość klienta przekazuje wywołanie zwrotne zabezpieczeń. Następnie pomija wywołanie zwrotne zabezpieczeń dla kolejnych wywołań tego klienta do tego samego interfejsu. Ta funkcja jest nazywana buforowaniem wywołań zwrotnych zabezpieczeń i istnieje od rodziny systemów operacyjnych Microsoft Windows 2000. Możesz użyć flagi RPC_IF_SEC_NO_CACHE , aby wyłączyć buforowanie wywołania zwrotnego zabezpieczeń dla danego interfejsu. Jest to przydatne, jeśli kontrola zabezpieczeń może ulec zmianie, co może spowodować odrzucenie tożsamości klienta, która była wcześniej dozwolona.
RPC_IF_LOCAL_ONLY
Gdy interfejs jest zarejestrowany z tą flagą, RPC odrzuca wywołania wykonywane przez zdalnych klientów RPC. Dodatkowo, wywołania lokalne przez wszystkiencadg_* sekwencje protokołów i wszystkiencacn_* sekwencje protokołu (z wyjątkiem nazwanych potoków, usingncacn_np) są również odrzucane. Jeśli połączenie jest nawiązywane wncacn_npprogramie , RPC zezwala na połączenie tylko wtedy, gdy nie pochodzi ono z protokołu SRV (Service Location Protocol), który odfiltrowuje wszystkie połączenia zdalne.NcalrpcPołączenia są zawsze dozwolone.
Użycie tych flag zależy od uznania twórcy aplikacji. Deweloperzy aplikacji RPC są wyposażeni w dodatkowe narzędzia zabezpieczeń, które pomagają zabezpieczyć interfejs RPC, ponieważ te flagi nie zmieniają żadnej istniejącej aplikacji ani nie powodują jej nieprawidłowego działania.