Script aláírása PowerShell - Gyakorlati útmutató (1. rész) - PKI bővítmények

Mint az jól ismert, hogy szinte minden felhasználója PowerShell, annak érdekében, hogy a biztonsági politika futtatásához került bevezetésre. Amely 4 mód:

  • Korlátozott - nem szabad végrehajtani a szkripteket, amelyek a munka csak az interaktív konzol
  • AllSigned - minden script kell titkosított aláírással
  • RemoteSigned - csak a kapott megbízható forrásból származó (például az interneten) szkripteket alá kell írnia
  • Korlátozás - a legkevésbé biztonságos szinten lehetővé tette a végrehajtása olyan szkriptek

A változat V2 (még CTP3) PowerShell script egyenlővé futtatható fájlokat, és ezeket a fájlokat váltak neotklyuchaemo Policy Monitor szoftver házirendek. Már írtam korábban: PowerShell V2 és szoftver házirendek. Eleinte ez nagyon bosszantó, de miután arra a következtetésre jutott, hogy ez a helyes. Rossz csak az, hogy nem látjuk (PS1 kiterjesztés nem jelenik meg sehol). Ezzel harc két módon - egyértelműen jelzi az útvonalat, ahol megengedett .ps1 indítson fájlokat vagy jelentkezzen őket.

Ha a számítógép a hálózat több, mint egy, akkor ez a tökéletes megoldás a problémára a rendelkezésre álló egy Active Directory tartomány, és ha lehetséges, az Enterprise Vizsga Authity (CA). Domain foglalható megoldani egy csomó probléma, mint a terjedését SRP politikák domain, tanúsítvány terjesztése a tartományon belül, ellenőrző tanúsítvány változata, amely aláírta szkripteket.

Tehát, először meg kell kap egy igazolást, amelyet aláírt szkripteket. Biztonsági okokból, akkor létre kell hozni egy korlátozott felhasználói fiók alól a rendszergazda (a legtöbb esetben) lesz aláírásával szkripteket. A könyv PowerShell In Action, hogy létrehoz egy igazolást nyújtott használni makecert.exe. amely része a Visual Studio SDK, de nekem úgy tűnik, több helyes a CA A Windows Server CA erre a célra van egy kész sablon, amely az úgynevezett kódaláírás. De nincs alapvető különbség, hogy milyen eszközzel akkor létrehoz egy tanúsítványt, és írom le a folyamat, mely során a tanúsítvány a domain CA.

Ezt követően, akkor be kell jelentkeznie a felhasználói futtassa az igazolás kezelő beépülő modul (Start -> Futtatás ... -> certmgr.msc) és hajtsa végre a tanúsítvány kérést. A sablonok listáját ki kell egészíteni, és a kódaláírás. Amennyiben a bizonyítvány nem szükséges, hogy lezárja a Tanúsítványok beépülő modul kérni fogják. Következő, meg kell exportálni a nyitott része a tanúsítványt a x509 fájlt (kiterjesztés .cer). Export nyilvános része, ellenőriznünk kell, aláírása és az aláírás a szervezet bizalom a domainen belül. Exportált tanúsítvány kell szállítani adminisztrátor (-am) most felelős Group Policy.

A Group Policy (leggyakrabban a tartomány politikai) létre kell hozni az új politikák Software házirendek a Additiona szabályzat szabályt hozzáadni, a bizonyítvány (Certificate szabály), és adja meg az exportált tanúsítványt. Szükséges tehát, hogy a PowerShell, hogy ellenőrizze a tanúsítvány bizalmi keresi azt a Megbízható gyártók tartályt és csak Software házirendek központilag osztja igazolások ebben a tartályban.

Most elkezdheti aláírása szkripteket. Ezekre a célokra a Set-AuthenticodeSignature parancsmaggal és a szintaxis a következő:

Amennyiben $ file - út a forgatókönyvet és a $ cert - a tanúsítvány tárgy, amelyet úgy kapunk, az alábbiak szerint:

Itt kifejezetten rámutatni, hogy szükségünk van egy igazolást, amely a EKU (enchanced kulcshasználati) Set kód Sgining. A mi esetünkben, akkor csak 1. De ha lesz egy pár, akkor majd válassza ki a korábbi. Itt van, hogyan fog kinézni a gyakorlatban:

Bemutattam, hogyan működik. Először fordította szkript végrehajtási politika AllSigned és megállapította, hogy az aláírás nélküli script nem kerül végrehajtásra. Ezt követően jelentkeztem a forgatókönyvet, és újra próbálkozott. Mint látható, a forgatókönyvet már tele.

Ha nincs feltétele a tanúsítvány elosztó segítségével az SRP politika a Megbízható Publishers tartályba. akkor kap itt az üzenet:

Ez hogyan oldja meg a problémát, a teljesítmény csak a megbízható szkriptek beállítva. Ebben az értelemben a PowerShell 1.0 kevésbé biztonságos és kényelmes, mert nem tudjuk blokkolni a végrehajtási politika SRP PS1 fájlt, mint egy osztály, és csak az egyik lehetőség - a kényszerű aláírása szkripteket. A változat V2 politika szkript végrehajtása kényelmesen illeszkedik az SRP. Egyszerű integráció, hogy amellett, hogy a terjedését SRP bizonyítvány tartományon belüli, valamint az ennek alapján a szabály lehetővé teszi, hogy végre ezeket a szkripteket, hogy megkerülje a korlátozás a PS1 fájlokat.

A következő bejegyzésben fogom magyarázni, hogyan lehet egyszerűsíteni a folyamatot aláírása szkripteket. Annak érdekében, hogy ne tiltsa le :-)

Kapcsolódó cikkek