Szolgáltatások és RPC/TCP
A Windows Vista-tól kezdve a szolgáltatásvezérlés-kezelő (SCM) támogatja a távoli eljáráshívásokat a Transmission Control Protocol (RPC/TCP) és a nevesített csövek (RPC/NP) használatával. Az ügyféloldali SCM-függvények alapértelmezés szerint RPC/TCP protokollt használnak.
Az RPC/TCP az SCM-függvényeket távolról használó legtöbb alkalmazáshoz, például távoli felügyelethez vagy monitorozási eszközökhöz megfelelő. A kompatibilitás és a teljesítmény érdekében azonban előfordulhat, hogy egyes alkalmazásoknak le kell tiltania az RPC/TCP protokollt a jelen témakörben ismertetett beállításjegyzék-értékek beállításával.
Amikor egy szolgáltatás távoli SCM-függvényt hív meg, az ügyféloldali SCM először az RPC/TCP használatával próbál kommunikálni a kiszolgálóoldali SCM-mel. Ha a kiszolgáló olyan Windows-verziót futtat, amely támogatja az RPC/TCP protokollt, és engedélyezi az RPC/TCP forgalmat, az RPC/TCPP kapcsolat sikeres lesz. Ha a kiszolgáló olyan Windows-verziót futtat, amely nem támogatja az RPC/TCP protokollt, vagy támogatja az RPC/TCP protokollt, de olyan tűzfal mögött működik, amely csak az elnevezett csőforgalmat teszi lehetővé, az RPC/TCP kapcsolat túllépi az időkorlátot, és az SCM újrapróbálkozza a kapcsolatot az RPC/NP protokollal. Ez végül sikeres lesz, de eltarthat egy ideig (általában több mint 20 másodpercig), ami miatt a OpenSCManager függvény blokkolva jelenik meg.
A TCP nem rendelkezik net use paranccsal megadott felhasználói hitelesítő adatokkal. Ezért ha az RPC/TCP engedélyezve van, és sc.exe a megadott szolgáltatás elérésére van használva, a parancs sikertelen lehet, ha a hozzáférés megtagadva van. Az RPC/TCP ügyféloldali letiltása miatt a sc.exe parancs egy elnevezett csövet használ, amely felhasználói hitelesítő adatokat tartalmaz, így a parancs sikeres lesz. A sc.exeSzolgáltatás vezérlése SC-használatával című témakörben talál további információt.
Jegyzet
A szolgáltatás nem adhat meg explicit hitelesítő adatokat egy net use parancshoz, mert előfordulhat, hogy ezek a hitelesítő adatok véletlenül meg vannak osztva a szolgáltatás határain kívül. Ehelyett a szolgáltatásnak ügyfél-megszemélyesítési kell használnia a felhasználó megszemélyesítéséhez.
RPC-/TCP-beállításjegyzék-értékek
Az RPC/TCP-t az SCMApiConnectionParam, DisableRPCOverTCP, és DisableRemoteScmEndpoints beállításjegyzék-értékek vezérlik, amelyek mind a SYSTEM HKEY_LOCAL_MACHINE\\CurrentControlSet\Control kulcs alatt találhatók. Ezek az értékek REG_DWORD adattípussal rendelkeznek. Az alábbi eljárások bemutatják, hogyan használhatók ezek a beállításjegyzék-értékek az RPC/TCP szabályozására.
Az alábbi eljárás azt ismerteti, hogyan tilthatja le az RPC/TCP protokollt az ügyféloldalon.
Az RPC/TCP letiltása az ügyféloldali
- Egyesítse az SCMApiConnectionParam beállításjegyzék-értéket a maszk értékével 0x80000000.
- Indítsa újra a OpenSCManager függvényt hívó alkalmazást.
Az alábbi eljárás azt ismerteti, hogyan tilthatja le a TCP-t a kiszolgálóoldalon.
A TCP letiltása kiszolgálóoldali
- Állítsa a DisableRPCOverTCP beállításjegyzék-értékét 1 értékre.
- Indítsa újra a kiszolgálót.
Az alábbi eljárás azt ismerteti, hogyan tilthatja le az RPC/TCP és az RPC/NP protokollt a kiszolgálón (például a támadási felület csökkentése érdekében).
Az RPC/TCP és az RPC/NP letiltása a kiszolgálón
- Állítsa a DisableRemoteScmEndpoints beállításjegyzék-értéket 1 értékre.
- Indítsa újra a kiszolgálót.
Az SCMApiConnectionParam beállításjegyzék-érték az RPC/TCP időtúllépési időköz ezredmásodpercben történő megadására is használható. A 30 000 érték például 30 másodperces időtúllépési időközt ad meg. Az alapértelmezett érték 21 000 (21 másodperc).