Różnica między kontem "System lokalny" a kontem "Usługa sieciowa"?

Napisałem usługę Windows, która wywołuje oddzielny proces. Proces ten tworzy obiekt COM. Jeśli usługa działa pod kontem "System lokalny" wszystko działa poprawnie, ale jeśli usługa działa pod kontem "Usługa sieciowa", proces zewnętrzny uruchamia się, ale nie tworzy obiektu COM. Błąd zwrócony podczas tworzenia obiektu COM nie jest standardowym błędem COM(myślę, że jest specyficzny dla tworzonego obiektu COM).

Jak więc określić czym różnią się dwa konta: "System lokalny" i "usługa sieciowa"? Te wbudowane konta wydają się bardzo tajemnicze i nikt nie zdaje się o nich wiele wiedzieć.

Author: Ray, 2009-02-04

1 answers

Ponieważ jest tak wiele zamieszania co do funkcjonalności standardowych kont usług, postaram się dać szybki dół.

Najpierw rzeczywiste rachunki:

  • LocalService konto (preferowane)

    Ograniczone konto usługowe, które jest bardzo podobne do usługi sieciowej i przeznaczone do uruchamiania standardowych usług najmniej uprzywilejowanych. Jednak w przeciwieństwie do usługi sieciowej uzyskuje dostęp do sieci jako anonimowy użytkownik.

    • Nazwa: NT AUTHORITY\LocalService
    • Konto nie ma hasła (wszelkie podane przez Ciebie informacje o Hasle są ignorowane)]}
    • HKCU reprezentuje LocalService konto użytkownika
    • posiada Minimalne uprawnienia na lokalnym komputerze
    • prezentuje anonimowe dane uwierzytelniające w sieci
    • SID : S-1-5-19
    • posiada własny profil pod kluczem rejestru HKEY_USERS (HKEY_USERS\S-1-5-19)

     

  • NetworkService konto

    Ograniczone konto usługowe, które jest przeznaczone do obsługi standardowych usług uprzywilejowanych. To konto jest znacznie bardziej ograniczone niż System lokalny (lub nawet Administrator), ale nadal ma prawo dostępu do sieci jako maszyna(patrz zastrzeżenie powyżej).

    • NT AUTHORITY\NetworkService
    • Konto nie ma hasła (wszelkie podane przez Ciebie informacje o Hasle są ignorowane)]}
    • HKCU reprezentuje NetworkService konto użytkownika
    • posiada Minimalne uprawnienia na lokalnym komputerze
    • [22]}przedstawia dane uwierzytelniające komputera (np. MANGO$) do zdalnych serwerów
  • SID : S-1-5-20
  • posiada własny profil pod kluczem rejestru HKEY_USERS (HKEY_USERS\S-1-5-20)
  • jeśli próbujesz zaplanować zadanie za jego pomocą, wprowadź NETWORK SERVICE w Wybierz użytkownika lub grupę okno dialogowe

 

  • LocalSystem konto (niebezpieczne, nie używaj!)

    Całkowicie zaufane konto, bardziej niż konto administratora. Nie ma nic na pojedynczym pudełku, czego to konto nie może zrobić, i ma prawo dostępu do sieci jako maszyny (wymaga to Active Directory i przyznania uprawnień do konta Maszyny do czegoś) {]}

    • Nazwa: .\LocalSystem (można również użyć LocalSystem lub ComputerName\LocalSystem)
    • konto nie ma hasła (wszelkie podane przez Ciebie informacje dotyczące hasła są ignorowane)
    • SID : S-1-5-18
    • nie posiada własnego profilu (HKCU reprezentuje domyślnego użytkownika)
    • posiada rozbudowane uprawnienia na lokalnym komputerze
    • [22]}przedstawia dane uwierzytelniające komputera (np. MANGO$) do zdalnych serwerów
  •  

    Powyżej mówiąc o dostępie do sieci, odnosi się to wyłącznie do SPNEGO (Negocjuj), NTLM i Kerberos, a nie do żadnych innych mechanizm uwierzytelniania. Na przykład przetwarzanie działające jako LocalService może nadal uzyskać dostęp do Internetu.

    Ogólny problem z uruchomieniem standardowego konta po wyjęciu z pudełka polega na tym, że jeśli zmodyfikujesz którekolwiek z domyślnych uprawnień, rozszerzasz zestaw rzeczy, które Wszystko działa tak, jak to konto może zrobić. Więc jeśli przyznasz DBO do bazy danych, nie tylko Twoja usługa działająca jako Usługa lokalna lub usługa sieciowa może uzyskać dostęp do tej bazy danych, ale także Wszystko inne działające jako te konta. Jeśli każdy programista robi to komputer będzie miał konto serwisowe, które ma uprawnienia do praktycznie wszystkiego (dokładniej superset wszystkich różnych dodatkowych uprawnień przyznanych temu Kontu).

    Z punktu widzenia bezpieczeństwa zawsze lepiej jest uruchomić jako własne konto usługi, które ma dokładnie uprawnienia potrzebne do tego, co robi Twoja usługa i nic więcej. Koszt takiego podejścia polega jednak na założeniu konta serwisowego i zarządzaniu hasło. Jest to działanie równoważące, którym musi zarządzać każda aplikacja.

    W twoim konkretnym przypadku problem, który prawdopodobnie widzisz, polega na tym, że aktywacja DCOM lub COM+ jest ograniczona do danego zestawu kont. W Windows XP SP2, Windows Server 2003 i nowszych uprawnienia do aktywacji zostały znacznie ograniczone. Powinieneś skorzystać z usług komponentowych MMC snapin, aby sprawdzić swój konkretny obiekt COM i zobaczyć uprawnienia aktywacji. Jeśli nie masz dostępu do niczego w sieci jako konto maszyny powinieneś poważnie rozważyć użycie usługi lokalnej (Nie systemu lokalnego, który jest w zasadzie systemem operacyjnym).


    W Windows Server 2003 nie można uruchomić zaplanowanego zadania jako

    • NT_AUTHORITY\LocalService (aka konto usługi lokalnej), lub
    • NT AUTHORITY\NetworkService (aka konto usługi sieciowej).

    Ta możliwość została dodana tylko z Task Scheduler 2.0 , który istnieje tylko w Windows Vista / Windows Server 2008 i nowsze.

    Usługa działająca jako NetworkService przedstawia dane uwierzytelniające maszyny W Sieci. Oznacza to, że jeśli komputer został wywołany mango, przedstawiłby jako konto maszyny MANGO$:

    Tutaj wpisz opis obrazka

     720
    Author: Peter Oehlert,
    Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
    2019-06-11 15:04:56