Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
RPC-tjänsten (Remote Procedure Call) gör RPC-gränssnitt säkra som standard för att minska attacker. Med RestrictRemoteClients registernyckeln kan du ändra beteendet för alla RPC-gränssnitt i systemet och kan användas för att eliminera anonym fjärråtkomst till RPC-gränssnitt i systemet, med vissa undantag. Du kan använda andra gränssnittskontroller med hjälp av registernyckeln EnableAuthEpResolution som beskrivs i den här artikeln. Både RPC-programutvecklare och systemadministratörer kan konfigurera RPC-gränssnittsbegränsningar.
Prerequisites
När du använder RestrictRemoteClients på servern:
Dina RPC-klienter måste använda RPC-säkerhet när du kontaktar dina serverprogram, vilket är den bästa metoden för att minimera säkerhetshot.
Undanta RPC-inställningen från att kräva autentisering genom att ange flaggan RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH under registreringen. Detta konfigurerar RPC för att tillåta anonyma anslutningar till dina program.
RestrictRemoteClients hotminskning
Aktivering av RestrictRemoteClients är användbart för att förhindra maskar som förlitar sig på exploateringsbara buffertöverskridningar, vilka kan utnyttjas fjärrmässigt genom anonyma anslutningar. RPC-program som förväntar sig att ta emot samtal från fjärranslutna anonyma RPC-klienter kanske inte körs korrekt när du använder den här funktionen. Därför kanske program som använder DCOM (Distributed Component Object Model) inte fungerar korrekt om det här värdet har angetts.
RPC-anrop med anslutningslösa protokoll misslyckas om den här nyckeln är aktiverad. Säkra RPC-anrop via anslutningslösa protokoll, till exempel UDP (User Datagram Protocol) och IPX (Internetwork Packet Exchange), använder en lägre säkerhetsnivå jämfört med anslutningsorienterade protokoll. Specifikt anses ncadg_ip_udp och ncadg_ipx vara mindre säkra. För den här principen betraktas dessa anrop alltid som icke-säkerhetsmässiga.
Om du vill tillåta RPC-klientanrop med hjälp av anslutningslösa protokoll håller du RestrictRemoteClients värdet inställt på inaktiverat.
Begränsningar för RPC-klienter
När ett gränssnitt registreras med , RpcServerRegisterIftillåter RPC att serverprogrammet begränsar åtkomsten till gränssnittet via ett säkerhetsåteranrop. Registernyckeln RestrictRemoteClients tvingar RPC att utföra ytterligare säkerhetskontroller för alla gränssnitt, även om gränssnittet inte har några registrerade säkerhetsåteranrop.
RPC-klienter som använder den namngivna pipe-protokollsekvensen (ncacn_np) är undantagna från alla begränsningar som beskrivs i det här avsnittet. Den namngivna pipe-protokollsekvensen kan inte begränsas på grund av betydande bakåtkompatibilitetsproblem.
RestrictRemoteClients kan också styras programmatiskt i rubriken rpcdce.h API (Application Programming Interface).
Konfigurera RestrictRemoteClients
Så här redigerar du dessa principer med hjälp av redigeraren för grupprincipobjekt:
Välj Starttyp>gpedit.msc> genom att trycka på Retur för att öppna redigeraren för lokal grupprincip.
Om du vill aktivera motsvarande
RestrictRemoteClientsinställningar går du till Datorkonfiguration\Administrativa mallar\System\Fjärrproceduranrop\Begränsningar för oautentiserade RPC-klienter och väljer sedan något av följande:- Inaktiverad – Den här inställningen är standardvärdet för server-SKU:er. Motsvarar värdet RPC_RESTRICT_REMOTE_CLIENT_NONE i rpcdce.h och det är serverprogrammets ansvar att införa lämpliga RPC-begränsningar.
- Autentiserad – motsvarar värdet RPC_RESTRICT_REMOTE_CLIENT_DEFAULT i rpcdce.h. Tillåter endast autentiserade RPC-klienter att ansluta till RPC-servrar som körs på den dator där principinställningen tillämpas. RPC-körning avvisar anonyma anrop. Om ett gränssnitt registrerar ett säkerhetsåteranrop och tillhandahåller flaggan RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH gäller inte den här begränsningen för det gränssnittet.
- Autentiserad utan undantag1 – Motsvarar värdet RPC_RESTRICT_REMOTE_CLIENT_HIGH i rpcdce.h. Tillåter endast autentiserade RPC-klienter att ansluta till RPC-servrar som körs på den dator där principinställningen tillämpas. Inga undantag tillåts när det här värdet anges eftersom systemet inte kan ta emot anonyma fjärrsamtal med RPC.
Ändringar i någon av de här inställningarna kräver att en systemomstart börjar gälla.
Caution
¹Använd inte det här värdet utan betydande testning. Mer information finns i Begränsningar för oautentiserade RPC-klienter.
EnableAuthEpResolution
Nyckeln EnableAuthEpResolution gör att RPC-klientkörningen kan använda NTLM (NT LAN Manager) för att autentisera till slutpunktsmapparen när den är aktiverad. Den här autentiserade frågan sker endast om det faktiska RPC-klientanropet använder RPC-autentisering.
RPC-klienter anropar en RPC-server som har en registrerad dynamisk slutpunkt med RPC Endpoint Mapper Client Authentication aktiverat. Dessa anrop efterfrågas för autentiserade anrop med NTLM-autentisering.
RPC-klienter som försöker ringa ett anrop med hjälp av en dynamisk slutpunkt frågar RPC-slutpunktsmapparen på servern för att avgöra vilken slutpunkt den ska ansluta till. Den här frågan utförs anonymt, även om själva RPC-klientanropet utförs med RPC-säkerhet. RPC Endpoint Mapper-gränssnittet är inte tillgängligt anonymt om RestrictRemoteClients inställningen är aktiverad.
Konfigurera EnableAuthEpResolution
Så här redigerar du dessa principer med hjälp av redigeraren för grupprincipobjekt:
Välj Starttyp>gpedit.msc> genom att trycka på Retur för att öppna redigeraren för lokal grupprincip.
Om du vill aktivera motsvarande
EnableAuthEpResolutioninställningar går du till Datorkonfiguration\Administrativa mallar\System\Fjärrproceduranrop\Aktivera RPC Endpoint Mapper-klientautentisering och väljer sedan en av de två tillgängliga inställningarna:- Inaktiverad – Den här inställningen är standardinställningen. RPC-klienter autentiserar inte till endpoint Mapper-tjänsten, men de kan kommunicera med Endpoint Mapper Service på Windows NT4 Server.
- Aktiverad – PC-klienter autentiserar via endpoint Mapper-tjänsten för anrop som innehåller autentiseringsinformation. Klienter som gör sådana anrop kan inte kommunicera med Windows NT4 Server Endpoint Mapper Service.
Ändringar i någon av de här inställningarna kräver att en systemomstart börjar gälla.
Important
Följande grupprincipinställningar finns i Datorkonfiguration\Windows-inställningar\Säkerhetsinställningar\Lokala principer\Säkerhetsalternativ kan inte användas med EnableAuthEpResolution:
- Nätverkssäkerhet: Begränsa NTLM: Inkommande NTLM-trafik – "Neka alla konton"
- Nätverkssäkerhet: Begränsa NTLM: Utgående NTLM-trafik till fjärrservrar – "Neka alla"
Att flytta från NTLM för att bättre skydda din miljö uppmuntras. Om du står inför ett val mellan att begränsa NTLM och använda EnableAuthEpResolutionär den rekommenderade metoden att du begränsar NTLM i din miljö.
Andra RPC-gränssnittsregistreringsflaggor
Dessa gränssnittsregistreringsflaggor skapas för att göra det enklare för programutvecklare att skydda ett RPC-gränssnitt:
RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH
När den här flaggan har registrerats anropar RPC-körningen det registrerade säkerhetsåteranropet för alla anrop, oavsett inställningarna för samtalssäkerhet. Utan den här flaggan avvisar RPC alla oautentiserade anrop innan de når säkerhetsåteranropet. Den här flaggan fungerar bara när ett säkerhetsåteranrop har registrerats.RPC_IF_SEC_NO_CACHE
Ett säkerhetsåteranrop registreras för ett gränssnitt för att begränsa åtkomsten. Vanligtvis personifierar säkerhetsåteranropet klienten för att kontrollera om klienten har tillräcklig behörighet för att göra ett anrop till gränssnittet. När en viss klientidentitet har godkänt säkerhetsåteranropet skickas vanligtvis samma säkerhetsåteranrop vid efterföljande försök.RPC-körningen utnyttjar det här mönstret genom att komma ihåg när en enskild klientidentitet skickar ett säkerhetsåteranrop. Sedan hoppar den över säkerhetsåteranropet för efterföljande anrop från klienten till samma gränssnitt. Den här funktionen kallas cachelagring av säkerhetsåteranrop och finns sedan Microsoft Windows 2000-serien med operativsystem. Du kan använda flaggan RPC_IF_SEC_NO_CACHE för att inaktivera cachelagring av säkerhetsåteranrop för ett visst gränssnitt. Det är användbart om säkerhetskontrollen kan ändras och möjligen avvisa en klientidentitet som tidigare var tillåten.
RPC_IF_LOCAL_ONLY
När ett gränssnitt har registrerats med den här flaggan avvisar RPC anrop som görs av fjärr-RPC-klienter. Dessutom avvisas lokala anrop även över allancadg_* protokollsekvenser och allancacn_* protokollsekvenser, förutom för namngivna rör medncacn_np. Om ett anrop görs påncacn_nptillåter RPC endast anropet om det inte kommer från SRV (Service Location Protocol), som filtrerar bort alla fjärranrop.Ncalrpcsamtal tillåts alltid genom.
Användning av dessa flaggor är enligt programutvecklarens gottfinnande. RPC-programutvecklare får ytterligare säkerhetsverktyg för att skydda sitt RPC-gränssnitt eftersom dessa flaggor inte ändrar något befintligt program eller får dem att köras felaktigt.