Skip to main content
CID222 Docs

Trafiği dizin kullanıcılarına bağlama

Denetlenen trafiğin IP adresi yerine iş istasyonundaki kişiyi adlandırması için User-ID ajanını dağıtın.

  • Sürüm: 0.4
  • Özellik: icap
  • Rol: admin_user
  • Tür: görev

Denetlenen bir istek bir IP adresinden gelir. Kullanıcı kimliği atfı, o adresi bir dizin kullanıcı adına dönüştürür; böylece Tüm Tespitler ekranındaki bir tespit 10.0.5.42 yerine bir kişiyi adlandırır. Sorguyu, etki alanı denetleyicilerinizden gelen oturum açma olaylarıyla beslenen küçük bir Go hizmeti olan cid-userid-agent yanıtlar.

Neye ihtiyacım var?

Lisans
Herhangi biri
Rol
admin_user

Ön koşullar

  • Trafik CID222'ye satır içi vekil ya da üçüncü taraf bir güvenli web ağ geçidi üzerinden zaten ulaşıyor. Bu sayfa denetlenen trafiği kişiye bağlar; hiçbir trafiği yakalamaz.
  • Güvenlik olay günlüğüne etkileşimli oturum açmaları (olay 4624) kaydeden en az bir Windows etki alanı denetleyicisi.
  • O denetleyicide, güvenlik olay günlüğünü okuyabilen bir hizmet hesabı ya da zamanlanmış görev kimliği.
  • Etki alanı denetleyicisinden cihaza ya da ajanı çalıştırdığınız yere TCP 8090'ın açık olması.
  • Kendinizin üreteceği yüksek entropili bir paylaşılan jeton — ajanın varsayılan bir kimlik bilgisi yoktur.

Cihaz bir isteği kimin gönderdiğine nasıl karar verir

Cihaz, göndereni sabit bir sırayla çözümler ve ilk isabeti alır:

SıraKaynakNereden gelir
1Ağ geçidinin verdiği kullanıcı adıICAP'te X-Authenticated-User, HTTP çağrısında authenticatedUser
2User-ID ajanıBu sayfa. Etki alanı denetleyicilerinizden gerçek zamanlı oturum açma verisi
3Elle atıf tablosuPanelde sürdürdüğünüz CIDR–etiket satırları; en uzun önek kazanır
4Kayıtlı eklenti filosuSon bir saat içinde aynı adresten kalp atışı gönderen bir tarayıcı cihazı

Dördü de ıskaladığında olay kaynak adresini korur ve akışta bir uzun tire olarak görünür. Şu anda oturum açmış kişiyi adlandıran tek adım 2. adımdır; elle sürdürdüğünüz tablonun önünde olmasının nedeni budur.

Warning

Ajan bir oturum için değil, bir adres için yanıt verir. Paylaşılan iş istasyonları, NAT ve CGNAT adresi kimlik saymayı bozar; ev ağındaki bir dizüstü bilgisayarın ise hiç kullanışlı bir adresi yoktur. Atıf, yalnızca bir adresin bir kişi anlamına geldiği bir ağda kanıt düzeyindedir.

Ajanı dağıtın

Paylaşılan jetonu üretin

Rastgele bir dizgi üretin ve yapılandırma yönetiminizin okuyabileceği bir yerde tutun:

openssl rand -hex 32

Bu tek değer iki yönü de doğrular — oturum açma olaylarını yazan etki alanı denetleyicisi betiğini ve sorguları okuyan cihazı.

Ajanı cihazda başlatın

Jetonu cihazın .env dosyasına ekleyin, sonra hizmeti compose profiliyle başlatın:

USERID_AGENT_TOKEN=<token> \
USERID_AGENT_PROTECT_READS=true \
  docker compose --profile userid-agent up -d cid-userid-agent

Konteyner 8090 portunu dinler ve yalnızca geri döngü arayüzünde yayımlanır. Başladığını doğrulayın:

curl -s localhost:8090/healthz

Warning

AGENT_PROTECT_READS değeri true olduğunda ajan, bir jeton yapılandırılana kadar okuma hizmeti vermeyi reddeder — açık bir porta düşmek yerine 503 yanıtı verir. Jetonu aynı değişiklikte ayarlayın.

Ağ geçidini ajana yönlendirin

Bunları nestjs-core üzerinde ayarlayın ve yeniden başlatın:

USERID_AGENT_URL=http://cid-userid-agent:8090
USERID_AGENT_TOKEN=<the same token>
USERID_AGENT_TIMEOUT_MS=250

Açılışta ağ geçidi, URL ve zaman aşımıyla birlikte UserIdAgent enabled günlükler. USERID_AGENT_URL olmadan istemci etkisizdir, hiç ağ çağrısı yapmaz ve günlük satırı bunu söyler.

Yolu statik bir girdiyle kanıtlayın

Active Directory'yi işin içine katmadan önce bilinen bir yanıt tohumlayın. Ajan, adres–kullanıcı satırlarından oluşan bir JSON dosyasını okur ve her 30 saniyede bir yeniden okur:

[
  { "ip": "10.0.5.42", "username": "jdoe", "domain": "CORP", "ttlSeconds": 86400 }
]

USERID_AGENT_STATIC_FILE değişkenini dosyaya yönlendirin, sonra doğrudan ajana sorun:

curl -s -H "Authorization: Bearer <token>" \
  "http://localhost:8090/lookup?ip=10.0.5.42"

Yanıt, kullanıcı adını ve onu sağlayan kaynağı taşır. Iskalama 404 döndürür.

Toplayıcıyı bir etki alanı denetleyicisine kurun

Ajanın dağıtımındaki examples/dc-agent.ps1 dosyasını denetleyiciye kopyalayın — örneğin C:\ProgramData\cid-core\dc-agent.ps1 konumuna — ve bunu açılışta başlayan, güvenlik olay günlüğünü okuyabilen bir kimlikle çalışan ve arıza durumunda her dakika yeniden başlayan bir zamanlanmış görev olarak kaydedin.

Betik, güvenlik olayı 4624'e abone olur ve yalnızca etkileşimli, ağ, kilit açma ve uzak etkileşimli oturum açmaları iletir. Makine hesapları ve yerleşik hizmet kimlikleri süzülür; böylece yoğun bir denetleyici ajanı boğmaz.

Toplayıcıya jetonunu verin

Zamanlanmış görevin ortamında CID_USERID_AGENT_TOKEN değerini ayarlayın ve betiğin ajan URL'sini cihazınıza yönlendirin:

http://<appliance-fqdn>:8090/events/login

Jeton eksik olduğunda betik hemen bir hatayla çıkar; böylece yanlış yapılandırılmış bir görev sessizce kimlik doğrulamasız çalışmak yerine görünür biçimde başarısız olur.

Bir oturum açmanın ne kadar süre sayılacağını seçin

Kerberos bilet ömrünüz farklı değilse yaşam süresini 28800 saniyelik varsayılanında bırakın.

Sekiz saat, varsayılan bilet ömrüyle örtüşür; böylece önbelleklenmiş bir girdi, anlattığı oturum açmanın anlamını yitirdiği zamana yakın bir anda süresi dolarak düşer. Daha kısa bir değer daha çok atıfsız olay üretir; daha uzun bir değer paylaşılan bir masayı ilk kullanana bağlar.

Doğrulama

  1. Bir iş istasyonunda bir etki alanı kullanıcısıyla oturum açın, sonra ajana o iş istasyonunun adresini sorun. Kullanıcının adını ve kalan yaşam süresini döndürür.
  2. Aynı iş istasyonundan satır içi vekil üzerinden yapay zeka trafiği gönderin. Tüm Tespitler ekranını açın ve satırın bir uzun tire göstermek yerine kullanıcıyı adlandırdığını doğrulayın.
  3. Ajanın /status uç noktasını sorgulayın. Etkin sağlayıcıları ve önbellek boyutunu listeler; böylece "denetleyici göndermiyor" ile "cihaz sormuyor" durumlarını ayırt edebilirsiniz.
  4. Bir adrese ait eşlemeyi /cache/<ip> adresine bir DELETE ile kaldırın ve o adres için sonraki olayın elle atıf tablosuna düştüğünü doğrulayın.

Başarısız olursa

  • Her olay hâlâ atıfsız ve ağ geçidi günlüğü UserIdAgent disabled diyor — nestjs-core üzerinde USERID_AGENT_URL ayarlanmamıştır. İstemci bu durumda hiç ağ çağrısı yapmaz.
  • Ajan her okumaya 503 yanıtı veriyor — AGENT_PROTECT_READS etkin ama AGENT_AUTH_TOKEN yoktur. Bu, bilinçli olarak kapalı biçimde başarısızlık davranışıdır: jetonu ayarlayın ya da korumayı kapatın.
  • Oturum açtığını bildiğiniz adresler için sorgular 404 dönüyor — etki alanı denetleyicisi betiği iletmiyordur. Görevin çalıştığını, jetonun eşleştiğini ve denetleyicinin cihazdaki TCP 8090'a erişebildiğini denetleyin.
  • Atıf bazı kullanıcılarda çalışıyor bazılarında çalışmıyor — betik yalnızca 2, 3, 7 ve 10 numaralı oturum açma türlerini iletir. Hizmet, toplu iş ve önbelleklenmiş oturum açmalar tasarım gereği süzülür ve hiçbir girdi üretmez.
  • Bütün bir alt ağ tek bir ada çözümleniyor — istediğinizden geniş bir elle atıf satırınız vardır. Ajan tablonun önünde olduğundan bu, yalnızca ajanın yanıtı olmadığı yerde görünür.
  • Sorgu, denetime gecikme ekliyor — ekleyemez. İstemci USERID_AGENT_TIMEOUT_MS süresinde (varsayılan 250 ms) vazgeçer ve bir alt kaynağa düşer; bir ajan arızası hiçbir zaman bir kararı engellemez.

Bilinen eksikler

  • LDAP sağlayıcısı bir taslaktır. USERID_AGENT_LDAP_URL ve arkadaşları dizine bağlanır ve bağlanmayı doğrular, ancak ajan önbelleklenmiş girdileri henüz görünen ad ya da departman bilgisiyle zenginleştirmez. Gerçek zamanlı atıf, etki alanı denetleyicisi betiğinden gelir; çünkü Active Directory canlı adres–oturum bağlarını LDAP üzerinden sunmaz.
  • Mobil ya da BYOD atfı yoktur. Yönetilmeyen bir cihazda gözlenecek bir oturum açma yoktur.
  • Etki alanı denetleyicisi betiği bir iskelettir. Hız sınırlaması, geri çekilmeli yeniden deneme ve yapılandırılmış günlükleme, örnek okunabilir kalsın diye bilinçli olarak dışarıda bırakılmıştır. Başında kimse olmadan üretimde kullanmadan önce sıkılaştırın.

Sonraki adımlar

Son güncelleme

Bu sayfada