Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A JEA üzembe helyezése után rendszeresen ellenőriznie kell a JEA-konfigurációt. A naplózás segít felmérni, hogy a megfelelő személyek hozzáférnek-e a JEA-végponthoz, és a hozzájuk rendelt szerepkörök továbbra is megfelelőek.
Regisztrált JEA-munkamenetek keresése egy gépen
Annak ellenőrzéséhez, hogy mely JEA-munkamenetek vannak regisztrálva egy gépen, használja a Get-PSSessionConfiguration parancsmagot.
# Filter for sessions that are configured as 'RestrictedRemoteServer' to
# find JEA-like session configurations
Get-PSSessionConfiguration | Where-Object { $_.SessionType -eq 'RestrictedRemoteServer' }
Name : JEAMaintenance
PSVersion : 5.1
StartupScript :
RunAsUser :
Permission : CONTOSO\JEA_DNS_ADMINS AccessAllowed, CONTOSO\JEA_DNS_OPERATORS AccessAllowed,
CONTOSO\JEA_DNS_AUDITORS AccessAllowed
A végpont érvényes jogosultságai az Engedély tulajdonságban találhatók. Ezeknek a felhasználóknak joguk van csatlakozni a JEA-végponthoz. A hozzáféréssel rendelkező szerepköröket és parancsokat azonban a végpont regisztrálásához használt munkamenet-konfigurációs fájlRoleDefinitions tulajdonsága határozza meg. Bontsa ki a RoleDefinitions tulajdonságot a regisztrált JEA-végpont szerepkör-leképezéseinek kiértékeléséhez.
# Get the desired session configuration
$jea = Get-PSSessionConfiguration -Name 'JEAMaintenance'
# Enumerate users/groups and which roles they have access to
$jea.RoleDefinitions.GetEnumerator() | Select-Object Name, @{
Name = 'Role Capabilities'
Expression = { $_.Value.RoleCapabilities }
}
Elérhető szerepkör-képességek keresése a gépen
A JEA a szerepkör-képességeket a .psrcPowerShell-modul RoleCapabilities mappájában tárolt fájlokból szerzi be. Az alábbi függvény megkeresi a számítógépen elérhető összes szerepkör-képességet.
function Find-LocalRoleCapability {
$results = @()
# Find modules with a "RoleCapabilities" subfolder and add any PSRC files to the result set
Get-Module -ListAvailable | ForEach-Object {
$psrcpath = Join-Path -Path $_.ModuleBase -ChildPath 'RoleCapabilities'
if (Test-Path $psrcpath) {
$results += Get-ChildItem -Path $psrcpath -Filter *.psrc
}
}
# Format the results nicely to make it easier to read
$results | Select-Object @{ Name = 'Name'; Expression = { $_.Name.TrimEnd('.psrc') }}, @{
Name = 'Path'; Expression = { $_.FullName }
} | Sort-Object Name
}
Megjegyzés:
A függvény eredményeinek sorrendje nem feltétlenül az a sorrend, amelyben a szerepkör-képességek ki lesznek választva, ha több szerepkör-képesség azonos nevű.
Adott felhasználó érvényes jogosultságainak ellenőrzése
A Get-PSSessionCapability parancsmag felsorolja a JEA-végponton elérhető összes parancsot a felhasználó csoporttagságai alapján. A Get-PSSessionCapability kimenete megegyezik azzal, mintha a specifikált felhasználó futtatná a Get-Command -CommandType All egy JEA munkamenetben.
Get-PSSessionCapability -ConfigurationName 'JEAMaintenance' -Username 'CONTOSO\Alice'
Ha a felhasználók nem állandó csoportok tagjai, amelyek további JEA-jogosultságokat biztosítanak számukra, ez a parancsmag nem feltétlenül tükrözi ezeket a további engedélyeket. Ez akkor fordul elő, ha igény szerint emelt szintű hozzáférés-felügyeleti rendszereket használ, hogy a felhasználók ideiglenesen egy biztonsági csoporthoz tartozhassanak. Gondosan értékelje ki a felhasználók szerepkörökre és képességekre való leképezését, hogy a felhasználók csak a feladataik sikeres elvégzéséhez szükséges hozzáférési szintet kapják meg.
PowerShell-eseménynaplók
Ha engedélyezte a modul- vagy szkriptblokkok naplózását a rendszeren, a windowsos eseménynaplókban minden olyan parancs eseményei láthatók, amelyeken a felhasználó jeA-munkamenetben fut. Az események megkereséséhez nyissa meg a Microsoft-Windows-PowerShell/Operatív eseménynaplót, és keresse meg a 4104-as eseményazonosítójú eseményeket.
Minden eseménynapló-bejegyzés tartalmaz információkat arról a munkamenetről, amelyben a parancsot futtatták. A JEA-munkamenetek esetében az esemény a ConnectedUserről és a RunAsUserről tartalmaz információkat. A ConnectedUser az a tényleges felhasználó, aki létrehozta a JEA-munkamenetet. A RunAsUser a parancs végrehajtásához használt JEA fiók.
Az alkalmazásesemény-naplók a RunAsUser által végrehajtott módosításokat mutatják. Ezért ha engedélyezve van a modul- és szkriptnaplózás, egy adott parancshívást vissza kell követnie a ConnectedUserbe.
Alkalmazásesemény-naplók
A parancsok olyan JEA-munkamenetben futnak, amely külső alkalmazásokkal vagy szolgáltatásokkal kommunikál, eseményeket naplózhatnak saját eseménynaplóikba. A PowerShell-naplókkal és az átiratokkal ellentétben más naplózási mechanizmusok nem rögzítik a JEA-munkamenet csatlakoztatott felhasználóját. Ehelyett ezek az alkalmazások csak felhasználóként naplózják a virtuális futtatásokat. Annak megállapításához, hogy ki futtatta a parancsot, meg kell vizsgálnia egy munkamenet-átiratot , vagy össze kell fűznie a PowerShell-eseménynaplókat az alkalmazás eseménynaplójában látható idővel és felhasználóval.
A WinRM-napló segíthet a futtató felhasználók és a csatlakozó felhasználó közötti korrelációban egy alkalmazásesemény-naplóban. A Microsoft-Windows-Windows távfelügyeleti/üzemeltetési napló 193-as eseményazonosítója a csatlakozó felhasználó biztonsági azonosítóját (SID) és fióknevét rögzíti, és minden új JEA-munkamenethez felhasználóként fut.
Munkamenet-átiratok
Ha úgy konfigurálta a JEA-t, hogy minden felhasználói munkamenethez hozzon létre egy átiratot, az összes felhasználó műveleteinek szöveges másolata a megadott mappában lesz tárolva.
A következő parancs (rendszergazdaként) megkeresi az összes átiratkönyvtárat.
Get-PSSessionConfiguration |
Where-Object { $_.TranscriptDirectory -ne $null } |
Format-Table Name, TranscriptDirectory
Minden átirat a munkamenet indításának időpontjával, a munkamenethez csatlakozó felhasználóval és a hozzájuk rendelt JEA-identitással kapcsolatos információkkal kezdődik.
**********************
Windows PowerShell transcript start
Start time: 20160710144736
Username: CONTOSO\Alice
RunAs User: WinRM Virtual Users\WinRM VA_1_CONTOSO_Alice
Machine: SERVER01 (Microsoft Windows NT 10.0.14393.0)
[...]
Az átirat szövege információkat tartalmaz a felhasználó által végrehajtott parancsokról. A használt parancs pontos szintaxisa nem érhető el a JEA-munkamenetekben, mert a parancsok a PowerShell távoli eléréshez átalakítva vannak. Azonban továbbra is meghatározhatja a végrehajtott érvényes parancsot. Az alábbiakban egy JEA-munkamenetben futó felhasználó példaátirat-kódrészlete látható Get-Service Dns :
PS>CommandInvocation(Get-Service): "Get-Service"
>> ParameterBinding(Get-Service): name="Name"; value="Dns"
>> CommandInvocation(Out-Default): "Out-Default"
>> ParameterBinding(Out-Default): name="InputObject"; value="Dns"
Running Dns DNS Server
A rendszer egy CommandInvocation sort ír minden olyan parancshoz, amelyet a felhasználó futtat.
A ParameterBindings rögzíti a parancshoz megadott paramétereket és értékeket. Az előző példában láthatja, hogy a Név paraméterhez a Dns értéket adták meg a Get-Service parancsmaghoz.
Az egyes parancsok kimenete a CommandInvocation parancsot is aktiválja, általában a következőre Out-Default: . Az InputObject a Out-Default parancsból visszaadott PowerShell-objektum. Az objektum részleteit néhány sor alatt nyomtatja ki a rendszer, szorosan utánozva azt, amit a felhasználó látott volna.