Remote Management med Powershell (del 2)


Innledning

Remoting er egentlig hemmeligheten saus av Windows Powershell. I en tidligere artikkel, hadde vi muligheten til å vise hvor sentralisert styring kan være umåtelig mer effektive med manuset remoting.

Denne artikkelen vurderinger utfordringene i remoting for nettverksadministratorer, inkludert administrerende ikke-domene datamaskiner på en akseptabel sikkerhet kontekst, delegere informasjon på flere hopp, og implisitt remoting. Det kan hende at du må snarest få tilgang til nettverket eller datasenter fra en ekstern plassering, og du skjønner ’ t selv har en bærbar eller stasjonær datamaskin tilgjengelig. Don ’ t panikk, vi har deg dekket

Managing Ikke-Domenedatamaskiner

Når du har koblet deg, som standard, Remoting delegater påloggingsinformasjonen til den eksterne datamaskinen.. Den eksterne datamaskinen bruker disse legitimasjon for å være deg, utfører kommandoene på dine vegne. Som du kan forestille deg, det er sikkerhetsrisikoer involvert når delegere legitimasjonen til en ekstern server. For eksempel, hvis en ondsinnet bruker var i stand til å etterligne en kjent ekstern datamaskin, kan du muligens slå i din påloggingsinformasjon til at bedrager, som kunne bruke dem mot deg og andre personer i nettverket.

For å redusere denne risiko, remoting som standard krever gjensidig godkjenning. Toveis autentiseringsprosess tvinger en klient for å bevise sin identitet til en server og serveren for å bevise sin identitet til klienten. Gjensidig godkjenning er opprinnelig funksjon i Active Directory Kerberos-protokollen, og den brukes av Remoting mellom pålitelige domener datamaskiner.

Men når du administrerer ikke-domene datamaskiner, kan du ikke regne med Active Directory til å håndtere gjensidig godkjenning. For disse tilfellene, enten du nødt til å gi en annen form for gjensidig autentisering ved hjelp av SSL-sertifikater (dette er den anbefalte metoden) eller legge den eksterne datamaskinen til din liste over lokale TrustedHosts. I begge tilfeller – er Legitimasjons parameter nødvendig med remoting kommandoen når du foretar tilkoblingen. Vi ’ ll forklare begge alternativene neste

Bruke Remoting med SSL-sertifikater

Når godkjenning er avhengig av digitale sertifikater, interne eller eksterne sertifiseringsinstanser (CA) er en viktig del av godkjenningsprosessen.. Sertifikatet installert på den eksterne datamaskinen må komme fra en klarert CA og bærer samme navn som du vil bruke når du gjør tilkoblingen. Selv om IIS er ikke nødvendig for denne konfigurasjonen skal fungere, sikre at du installere en web server sertifikat i den eksterne datamaskinen sertifikatlageret.

Når du fjern ved hjelp av HTTPS, hele forbindelsen kryptert ved hjelp av krypteringsnøkler av målmaskinen ’ s SSL-sertifikat; det betyr at du kan bruke den grunnleggende autentisering protokollen og passord vil fortsatt være beskyttet. Bruke MakeCert.exe å generere en selv tegn sertifikat er ikke anbefalt i et produksjonsmiljø.

For vår demonstrasjon, et sertifikat signert av en intern CA har blitt installert i en arbeidsgruppe server som heter Server1. La ’ s se hvordan det fungerer


    For å kontrollere at datamaskinen er i en arbeidsgruppe, og at et sertifikat er installert i databutikk.. Enter:

    Get-CimInstance – Classname Win32_ComputerSystem

    Get-ChildItem – Sti Cert: \\ LocalMachine \\ My

    Figur 1

    Slik setter du opp WinRM HTTPS lytter, må du skrive ned eller kopiere sertifikatet avtrykk fra forrige utgang. Deretter kjøre denne koden:

    Ny-WSManInstance winrm /config /List `

    -SelectorSet @ {Adresse = '*'; Transport =" HTTPS "}`
    < p> -ValueSet @ {vertsnavn = "Server1"; `

    CertificateThumbprint =" B78FAAAB0FFE4B91A566B2923330CCB0C0EBC09B "}

    Figur 2

    La ’ s gjennomgå parameter brukes med New-WSManInstance:

    Adresse = " * ’ tjenesten vil lytte på alle tilgjengelige IP-adresser.

    Transport = HTTPS. Det andre alternativet er HTTP.

    Vertsnavn = Må matche navnet på verten på sertifikatet.

    CertificateThumbprint = Dette er avtrykk eksponert med Get-ChildItem cmdlet.

  1. Konfigurer brannmuren slik at HTTPS trafikk på port 5986. Enter:

    Netsh AdvFirewall brannmur legge regelen name = "WinRM (HTTPS)" `

    protokoll = TCP dir = i localport = 5986 action = tillate

    Figur 3

    Start en remoting økt for å teste HTTPS lytteren. Kjør:

    Enter-PSSession – Computer Server1 – Legitimasjons Server1 \\ Administrator -UseSSL

    Figur 4

    Etter inntasting av passord, er den eksterne økten teksten vises, bekrefter en vellykket HTTPS-tilkobling

    Figur 5

    Legge til den eksterne datamaskinen til din lokale TrustedHosts List

    Engangs advarsel her. Dette alternativet slår av kravet til gjensidig godkjenning, noe som øker risikoen for en angriper skaper kaos på nettverket ved spoofing eller utgi målet tilkobling.

    Listen TrustedHosts kan konfigureres lokalt eller ved å bruke gruppepolicy. Den viser hvilke datamaskiner gjensidig godkjenning ikke er nødvendig (igjen en sikkerhetsfare). Datamaskiner kan være oppført etter navn, DNS alias, eller IP-adresse; jokertegn (*) er tillatt. Når en datamaskin er lagt til din lokale TrustedHosts listen, har du lov til å sende din påloggings til at ekstern datamaskin uten en prosess på plass for å kontrollere at datamaskinen i den andre enden er den du skal koble til.

    La ’ s konfigurere en TrustedHosts listen på en Windows-klient maskinen heter Win81A


      Først, for å kontrollere at listen TrustedHosts er tom, kjør:

      Get-element. – Sti WSMan: \\ localhost \\ Client \\ TrustedHosts

      Figur 6

      Hvis du vil legge til et datamaskinnavn CoreG2 til listen TrustedHosts, skriv:

      Set-Element – Sti WSMan: \\ localhost \\ Client \\ TrustedHosts – Verdi

      Navnene eller IP-adressene du skriver inn her, må være de samme som brukes når Remoting. For eksempel kan du ikke angi en IP-adresse og deretter prøve å koble til med navnet på datamaskinen

      Figur 7

      For å validere konfigurasjonen, kjører dette på nytt.

      Get-Element – Sti WSMan: \\ localhost \\ Client \\ TrustedHosts

      Figur 8

      La ’ s sjekk som CoreG2 er i en arbeidsgruppe. Enter:

      Get-CimInstance – Classname Win32_ComputerSystem | FL

      Figur 9

      For å teste tilkoblingen skriv:

      Enter-PSSession – Computer CoreG2 – Legitimasjons CoreG2 \\ Administrator

      Figur 10

      Den forrige skjermen bekrefter at listen TrustedHosts er riktig konfigurert, og vi er i stand til å fjern inn i en ikke-domene datamaskin.

      Multi-Hop Remoting

      For Remoting å arbeid, må legitimasjonen delegeres til målmaskinen. Når du er tilkoblet, som standard du ikke har lov til å sette i gang en ny tilkobling fra at målmaskinen inn i en annen server. fordi legitimasjon kan delegeres over en tilkobling eller hopp bare. Med andre ord, kan legitimasjon ikke være kjede delegert en gang

      For å overvinne denne standard begrensningen, må du konfigurere gruppepolicy eller sette opp begge ender av forbindelsen som følger:.


        På datamaskinen som du kobler fra, kjører du følgende kommando:

        Aktiver-WSManCredSSP – Role Client – Delegat

        Måldatamaskinen navnet kan være en * joker eller et begrenset wildcard for eksempel * .lanztek.local.

        På datamaskinen som du kobler til, kjøre samme cmdlet men tildele en annen rolle. (Dette er datamaskinen som du delegere legitimasjonen.)

        Aktiver-WSManCredSSP – Role Server

        Implisitt Remoting

        Installere spesialisert klientprogramvare på sine stasjonære datamaskiner er en måte mange IT-personell utføre fjernadministrasjon av nettverkstjenester og programmer; bruker remote desktop er et annet alternativ. Implisitt Remoting tilbyr en annerledes tilnærming som er lettere enn remote desktop økter og sparer deg for forverring av installasjon og vedlikehold av klientprogrammer på arbeidsstasjonen. Implisitt Remoting lar deg lage snarveier på den lokale datamaskinen til Powershell kommandoer på en ekstern server. Kommandoene du skriver lokalt er implisitt kjøres på serveren gjennom remoting og resultatene blir overført tilbake til deg

        La ’ s. Demonstrere implisitt remoting ved å koble fra en klient Windows 8 oppkalt Win81A til en domenekontroller som heter FS1.


          På Win81A Powershell-konsoll, opprette et varig forbindelse til FS1 og lagre den i en variabel, skriv:

          $ RDC = Ny-PSSession – Computer FS1

          Figur 11

          Hvis du vil vise en liste over moduler på FS1, kjør:

          Get-Module – List – PSSession $ RDC | FT ModuleType, Name – Auto

          Figur 12

          Hvis du vil importere Active Directory-modulen fra FS1, skriv:

          Import-Module – PSSession $ RDC – Navn ActiveDirectory

          Figur 13

          For å finne ut hvor mange AD kommandoer er nå tilgjengelig på den lokale datamaskinen, skriver du:

          Get-Command – Module ActiveDirectory | Mål-Object

          Figur 14

          Disse kommandoene vil være tilgjengelig så lenge du holder PSsession åpen med den eksterne datamaskinen

          La ’ s. Test implisitt remoting ved å søke etter datamaskin står i katalogen. Enter:

          Get-ADComputer – Filter * – SearchBase “ OU = filservere, dc = lanztek, dc = lokale ” | Bedrifter

          Velg Navn, ObjectGUID | FT -Autosize

          Figur 15

          Remoting Output serialisering

          Når du kjører kommandoene på en ekstern datamaskin, som i forrige Active Directory demonstrasjon, serialiserer at datamaskinen resultatene i XML format, og sender denne XML teksten tilbake til datamaskinen. De serialisering prosedyren omhandler kun med egenskapene til objektet, noe som betyr statisk informasjon. XML mottatt av den lokale datamaskinen deserialisert tilbake til objekter som er satt inn i Windows Powershell rørledningen. Men deserialisert objektene har ingen metoder eller hendelser. Tenk på alle data som er mottatt gjennom remoting som et statisk bilde. Du kan ikke utføre noen handling for å endre eller oppdatere disse stedene. Dette er viktig å vite, fordi det kan være lurt å gjøre så mye behandling som mulig på den eksterne datamaskinen der du jobber med levende objekter som har metoder og hendelser.

          Windows Powershell Web Access

          Denne funksjonen lar deg kjøre Windows Powershell kommandoer og skript fra en nettleser uten å bruke noen spesiell plug-in eller å ha Powershell er installert på klientmaskinen. Så lenge du har en kompatibel nettleser, er det mulig å lage forbindelser fra et nettbrett eller smarttelefon.

          I Windows server, foruten å legge til Windows batteri webtilgang funksjonen, må du installere Windows Powershell 3.0 eller en nyere versjon, web server (IIS) rolle, og .NET Framework 4.5. Et SSL-sertifikat er også nødvendig for å sikre tilkoblinger. Det er mulig å lage et selvsignert sertifikat under konfigureringen, men det skal brukes til testformål. I produksjon, er en gyldig SSL-sertifikat, signert av en klarert sertifiseringsinstans (CA) anbefales

          La ’ s gjennom trinnene for å installere og konfigurere Powershell nettilgang funksjonen.

            < li> Installer Windows Powershell Web Access-funksjonen. På Powershell teksten skriver du inn følgende kommando:

            Installer-WindowsFeature – navn WindowsPowerShellWebAccess -IncludeManagementTools

            Figur 16

            Sett opp webtilgang gateway. Du kan utføre denne oppgaven med enten IIS Manager eller Powershell. Installer-PswaWebApplication cmdlet lar deg sette opp Windows Powershell Web Access webapplikasjon innenfor IIS standard nettside. Kjører denne cmdlet skaper webtilgang gateway med følgende URL: https: //< server_navn > /pswa

            Du kan endre navnet på web-applikasjon eller installere det på et annet nettsted.. Også bruker-UseTestCertificate parameter skaper en test sertifikat og konfigurerer gateway for å bruke sertifikatet for HTTPS forespørsler. For vår demo, kjører Installer-PswaWebApplication er nok, som et gyldig sertifikat er installert på serveren allerede

            Installer-PswaWebApplication

            Figur 17

            Konfigurer godkjenningsregler.:

            Tilgang til nettstedet er ikke tillatt før godkjenningsregler er konfigurert til å definere brukere og grupper som vil få lov til å bruke Windows Powershell gateway, og hvilke datamaskiner disse brukere og grupper kan koble til. For å legge til en autorisasjonsregel, skriver du følgende:

            Add-PswaAuthorizationRule – Name Lanztek \\ Administrator `

            -ComputerName * -ConfigurationName *

            Figur 18
            < p> Når du kjører den forrige kommandoen, kan domeneadministratoren tilgang til en hvilken som helst datamaskin i nettverket og koble til alle tilgjengelige Powershell sesjon konfigurasjon ved å bruke en nettleser. Målmaskinen må være konfigurert til å tillate Remoting og bare autoriserte brukere på denne datamaskinen vil få tilgang. Test-PswaAuthorizationRule cmdlet kan validere om en regel som finnes for en bestemt bruker, datamaskin eller endepunkt.

            Kontroller Windows Powershell Web Access konfigurasjon

            Nettleseren på klientsiden må tillate cookies og støtter Javascript . Når du åpner påloggingssiden, i vårt tilfelle https: //Server1 /pswa, kan du koble direkte til porten, til en annen datamaskin i nettverket, eller til en tilpasset URI. Se påloggingssiden nedenfor.

            Figur 19

            Som standard er den samme legitimasjonen du oppgir å krysse innfallsporten også presentert for den eksterne datamaskinen som du kobler til. Du kan imidlertid utvide Valgfritt delen Tilkoblingsinnstillinger og angir ulike legitimasjon. Dette alternativet er nyttig når kontoen er autorisert til å koble til gateway ikke har tillatelse til å få tilgang til målmaskinen.

            Etter fullført legitimasjon og tilkoblingsinnstillingene, klikker du Logg på for å koble til den eksterne datamaskinen. Nå har du en Windows Powershell-konsoll kjører i en nettleser.

            Figur 20

            I Windows Server 2012 R2, Windows Powershell Web Access Gateway tillater brukere å åpne flere tilkoblinger til eksterne datamaskiner i forskjellige nettleser faner.

            Figur 21

            Selv om web-baserte Powershell-konsollen gir et nivå av funksjonalitet svært lik Windows Powershell Remoting, er det noen begrensninger. For eksempel er noen hurtigtaster ikke støttes, for eksempel Ctrl + C for å avbryte kommandoen kjøres, eller noen av funksjonstastene (F1, F2, F3, F7, etc.) knyttet til kommando-historie.

            Å avslutter web-baserte Powershell-konsoll, klikker du Lagre eller Exit i nedre høyre hjørne. For å logge ut uten å lagre din Windows Powershell Web Access-økt, bare klikk Avslutt. Klikker Lagre lagrer og lukker gjeldende økt. Når du logger inn til gatewayen igjen, viser Windows Powershell Web Access alle dine lagrede økter; på det tidspunktet, du enten velge og koble til et lagret økt, eller starte en ny økt, som vist nedenfor

            Figur 22

            La ’ s. dra nytte av det web-baserte Powershell konsoll å skape en nettverksressurs på en ekstern datamaskin navn FS1. Enter:

            Ny-SmbShare – navn Oppdateringer – Sti c: \\ oppdateringer – FullAccess lanztek \\ admin – ReadAcess HelpDesk

            Figur 23

            For å verifisere tillatelsene , kjøre

            Get-SmbShareAccess – navn Oppdateringer

            Figur 24

            Lukke Merknader

            Denne artikkelen viser at det er mulig å bruke Powershell utover verne Active Directory grenser og likevel gi en sterk grad av sikkerhet. Bruke en nettleser til ekstern til en server betyr at du ikke trenger å ha en Windows-maskin til å utføre ekstern administrasjon med Powershell. Egentlig trenger du ikke ’ t trenger en datamaskin, som ved hjelp av en tablett eller smarttelefon med en kompatibel nettleser vil være nok. Remoting tar Windows Powershell automat funksjonaliteten til neste nivå. Å ha evnen til å utføre komplekse oppgaver på hundrevis eller tusenvis av datamaskiner i en svært kort periode av tid er en uvurderlig velsignelse for alle nettverksadministratoren. Anmeldelser