'Yerel Sistem' hesabı ile 'Ağ Hizmeti' hesabı arasındaki fark nedir?


386

Ayrı bir süreç oluşturan bir Windows hizmeti yazdım. Bu işlem bir COM nesnesi oluşturur. Hizmet 'Yerel Sistem' hesabı altında çalışırsa her şey yolunda gider, ancak hizmet 'Ağ Hizmeti' hesabı altında çalışırsa, dış işlem başlar ancak COM nesnesini oluşturamaz. COM nesnesi oluşturma döndürülen hata standart bir COM hatası değil (Ben oluşturulan COM nesnesine özgü olduğunu düşünüyorum).

Peki, 'Yerel Sistem' ve 'Ağ Hizmeti' adlı iki hesabın nasıl farklı olduğunu nasıl belirlerim? Bu yerleşik hesaplar çok gizemli görünüyor ve kimse onlar hakkında çok şey bilmiyor gibi görünüyor.

Yanıtlar:


701

Standart hizmet hesaplarının işlevselliği hakkında çok fazla karışıklık olduğundan, hızlı bir şekilde tükenmeye çalışacağım.

İlk önce gerçek hesaplar:

  • LocalService hesabı (tercih edilen)

    Ağ Hizmetine çok benzeyen ve standart olarak en az ayrıcalıklı hizmetleri çalıştırmak üzere tasarlanmış sınırlı bir hizmet hesabı. Ancak, Ağ Hizmetinden farklı olarak, ağa Anonim kullanıcı olarak erişir .

    • Ad: NT AUTHORITY\LocalService
    • hesabın şifresi yok (sağladığınız şifre bilgileri yok sayılır)
    • HKCU, LocalService kullanıcı hesabını temsil eder
    • sahip minimal yerel bilgisayarda ayrıcalıkları
    • ağda anonim kimlik bilgileri sunar
    • SID : S-1-5-19
    • HKEY_USERS kayıt defteri anahtarı ( HKEY_USERS\S-1-5-19) altında kendi profili var

     

  • NetworkService hesabı

    Standart ayrıcalıklı hizmetleri çalıştırmak için kullanılan sınırlı hizmet hesabı. Bu hesap Yerel Sistemden (hatta Yönetici'den) çok daha sınırlıdır, ancak yine de ağ olarak makine olarak erişim hakkına sahiptir (yukarıdaki uyarıya bakın).

    • NT AUTHORITY\NetworkService
    • hesabın şifresi yok (sağladığınız şifre bilgileri yok sayılır)
    • HKCU, NetworkService kullanıcı hesabını temsil eder
    • sahip minimal yerel bilgisayarda ayrıcalıkları
    • bilgisayarın kimlik bilgilerini (örn. MANGO$) uzak sunuculara sunar
    • SID : S-1-5-20
    • HKEY_USERS kayıt defteri anahtarı ( HKEY_USERS\S-1-5-20) altında kendi profili var
    • Bunu kullanarak bir görev zamanlamak için çalışıyor ise girmek NETWORK SERVICEiçine Kullanıcı veya Grup Seç iletişim

     

  • LocalSystem hesabı (tehlikeli, kullanmayın!)

    Tamamen güvenilir hesap, yönetici hesabından daha fazla. Tek bir kutuda bu hesabın yapamayacağı hiçbir şey yoktur ve ağ olarak makine olarak erişim hakkına sahiptir (bu, Active Directory gerektirir ve makine hesabı izinlerini bir şeye verir)

    • Adı: .\LocalSystem(aynı zamanda kullanabilir LocalSystemveya ComputerName\LocalSystem)
    • hesabın şifresi yok (sağladığınız şifre bilgileri yok sayılır)
    • SID : S-1-5-18
    • kendi profili yok ( varsayılan kullanıcıyı HKCUtemsil eder )
    • sahip geniş yerel bilgisayarda ayrıcalıkları
    • bilgisayarın kimlik bilgilerini (örn. MANGO$) uzak sunuculara sunar

     

Yukarıda ağa erişmekten bahsederken, bu yalnızca SPNEGO (Müzakere), NTLM ve Kerberos anlamına gelir , diğer kimlik doğrulama mekanizmaları için geçerli değildir. Örneğin, işlem LocalServicehala çalışıyor internete erişebiliyor.

Kutudan çıkışta standart olarak çalıştırmayla ilgili genel sorun, varsayılan izinlerden herhangi birini değiştirirseniz, o hesapla çalışan her şeyin yapabileceği şeyleri genişlettiğinizdir. Yani bir veritabanına DBO verirseniz, yalnızca Yerel Hizmet veya Ağ Hizmeti olarak çalışan hizmetiniz bu veritabanına erişemez, aynı zamanda bu hesaplar olarak çalışan her şey de yapabilir. Her geliştirici bunu yaparsa, bilgisayarın hemen hemen her şeyi yapma iznine sahip bir hizmet hesabı olacaktır (daha özel olarak söz konusu hesaba verilen farklı ek ayrıcalıkların üst kümesi).

Kendi hizmet hesabınız olarak, hizmetinizin yaptığı şeyi yapmak için gereken izinlere sahip olan ve başka bir şey olmayan bir güvenlik perspektifinden çalışmak her zaman tercih edilir. Ancak, bu yaklaşımın maliyeti hizmet hesabınızı oluşturmak ve parolayı yönetmektir. Her uygulamanın yönetmesi gereken dengeleyici bir işlemdir.

Özel durumunuzda, büyük olasılıkla gördüğünüz sorun, DCOM veya COM + etkinleştirmesinin belirli bir hesap kümesiyle sınırlı olmasıdır. Windows XP SP2, Windows Server 2003 ve sonraki sürümlerde Etkinleştirme izni önemli ölçüde kısıtlanmıştır. Belirli COM nesnesini incelemek ve etkinleştirme izinlerini görmek için Bileşen Hizmetleri MMC ek bileşenini kullanmalısınız. Makine hesabı olarak ağdaki hiçbir şeye erişmiyorsanız, Yerel Hizmeti (temel olarak işletim sistemi olan Yerel Sistemi değil) kullanmayı ciddi bir şekilde düşünmelisiniz .


Windows Server 2003'te sen olamaz zamanlanmış görevi çalıştırmak olarak

  • NT_AUTHORITY\LocalService (Yerel Hizmet hesabı olarak da bilinir) veya
  • NT AUTHORITY\NetworkService (Ağ Hizmeti hesabı olarak da bilinir).

Bu özellik yalnızca Windows Vista / Windows Server 2008 ve daha yeni sürümlerde bulunan Görev Zamanlayıcı 2.0 ile eklenmiştir .

Şu şekilde çalışan bir hizmet NetworkService, ağdaki makine kimlik bilgilerini sunar. Bu, bilgisayarınız arandıysa mango, makine hesabı olarak sunulacağı anlamına gelir MANGO$:

resim açıklamasını buraya girin


7
Yönetilen Hizmet Hesaplarının , hesabı oluşturma ve şifreyi yönetme konusundaki bazı acıları ortadan kaldırdığını düşünüyorum (veya daha çok bir etki alanı yöneticisine veya temsilcisine iletin.)
Carl G

1
Merhaba, açıklama için teşekkürler. Gerçi bir sorum var - yerel sistem / ağ hizmeti hesabı kullanarak (etkin dizinde kapsayıcı bu windows hizmetlerinin çalıştığı bilgisayara tam izin vermiş olması koşuluyla) etkin dizindeki kapsayıcılara giriş eklemek / kaldırmak mümkündür. Hizmeti etki alanı kullanıcılarından biri olarak yürüttüğümde, ancak yerel sistem / ağ hizmeti olarak değilken her şeyin çalıştığını lütfen unutmayın (ayrıntılar için stackoverflow.com/questions/20943436/… ) Saygılarımızla
Dreamer

1
Evet, olmalı. Bu soru daha soyut ve belirli bir uygulama olduğu için sorunuzu doğrudan cevaplayacağım.
Peter Oehlert

7
"Anonim" kullanıcının yalnızca "kimliği doğrulanmış kullanıcıların" bir üyesi değil, Windows'taki "herkes" in bir üyesi olmadığını unutmayın. Windows ağlarında, 'anonim' yalnızca 'anonim' olarak açıkça verilen kaynaklara erişebilir - varsayılan olarak hiçbir şey.
david

1
@HakamFostok Çok fazla referansım yok. Doğru hatırlıyorsam, Dan Brown bir kısmını Windows Güvenliği Programlama kitabında ele aldı. Windows yardımında ve MSDN belgelerinde çok şey var ama belirli bir referansım yok. Jeff Richter'in programlama pencereleriyle ilgili kitaplarının yanı sıra Soloman & Russinovich'in İç Pencereleri (3. veya 4. Baskı) da var.
Peter Oehlert
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.