Adam Automator

hvis du allerede kjører fjernkommandoer Med PowerShell Remoting (PSRemoting), vet du hvor praktisk funksjonen er. Du kan koble til en eller flere eksterne datamaskiner og administrere dem som de var lokale. PSRemoting avhenger Av Windows Remote Management (WinRm) for Å få det til å skje, og hvis Du ikke bruker WinRM over SSL, kan du åpne deg opp for noen sikkerhetsproblemer.

i denne praktiske opplæringen skal du lære hvordan du konfigurerer Windows På klienten og serveren for å bruke WinRM over HTTPS (SSL) og hvordan du bruker sertifikater til å godkjenne Når Du bruker WinRM over HTTPS.

Innholdsfortegnelse

Forutsetninger

hvis du ønsker å følge med denne opplæringen gjennomgang, må du ha følgende:

  • En Windows 7 + eller Server 2008 R2-maskin for å fungere som klientmaskinen. Denne opplæringen vil bruke Windows 10.
  • en windows 7+ – eller Server 2008 R2+ – maskin som skal fungere som servermaskin. Denne opplæringen vil bruke Windows Server 2019.
  • Tilgang til en lokal administrativ konto eller en konto med lokale administrative rettigheter på både klient-og servermaskinene.
  • en Active Directory Certificate Services (ADCS) Public Key Infrastructure (Pki) er konfigurert. Det ville hjelpe hvis du implementerte ADCER for produksjonsimplementeringer, men det er valgfritt for denne opplæringen og testing. Opplæringen vil anta AT PKI er satt opp som en bedrift eller frittstående CA.

Hvorfor Bruke WinRM OVER SSL?

PSRemoting, ut av esken, bruker WinRM og lar deg administrere klientmaskiner eksternt. Når PSRemoting etablerer en økt Over WinRM, krypterer den all kommunikasjon fra klient til server. Oppsettprosedyren for å implementere PSRemoting uten HTTPS er også ganske grei.

hvis PSRemoting allerede krypterer øktkommunikasjon, hvorfor gå gjennom bryet med å sette opp NOE SOM ADCER og administrere sertifikater når det allerede er kryptert?

fordi under godkjenningsprosessen kan legitimasjon sendes i usikre formater, avhengig av godkjenningstypen som brukes.

en av de enkleste måtene Å gjøre PSRemoting sikrere, er Å bruke WinRM over HTTPS i stedet FOR HTTP. HTTPS omslutter hele tilkoblingsstrømmen, inkludert autentisering i krypteringslaget WinRM allerede bruker. HTTPS gir også samtidig en måte å validere serveren du kobler til, er det du tror det er.

Konfigurere WinRM Med Et Selvsignert Sertifikat

La oss nå hoppe inn i demonstrasjonene. For det første trikset skal du lære å sette opp krypter psremoting-kommunikasjon med WinRm over SSL via et selvsignert sertifikat.

Å Bruke et selvsignert sertifikat Er en fin måte å sette opp et testmiljø uten å bekymre deg for EN PKI som ADCS. Når du bruker et selvsignert sertifikat, genererer du et sertifikat som serveren selv signerer som i utgangspunktet vouches for seg selv.

Sertifikater finnes for å utføre to oppgaver vanligvis; godkjenne en tilkobling og kryptere den. Bruk av et selvsignert sertifikat implementerer bare sistnevnte. For å validere en servers identitet må du alltid bruke pki-angitte sertifikater. PKI-leverte sertifikater gir en enkelt kilde til tillit vs. å måtte stole på hvert selvsignert sertifikat individuelt manuelt.

Konfigurere WinRM OVER SSL med et selvsignert sertifikat krever fire trinn på høyt nivå:

  1. Opprette det selvsignerte sertifikatet på målmaskinen.
  2. Konfigurere serverens WinRM webserver (listener) til å bruke det selvsignerte sertifikatet for godkjenning.
  3. Åpner de riktige portene på målmaskinens Windows-brannmur.
  4. Utfører en kommando for å starte en ekstern tilkobling på klienten ved hjelp av En PowerShell-cmdlet som Enter-PSSession.

La oss nå gå gjennom hvert trinn.

Opprette Et Selvsignert Sertifikat

det første trinnet er å generere et selvsignert sertifikat på serveren. Ved tilkobling vil PSRemoting bruke dette sertifikatet til å kryptere all kommunikasjon.

mens Du er På ServerB med En Windows PowerShell-konsoll åpen som administrator, kjør cmdleten New-SelfSignedCertificate som vist nedenfor. Kjører kommandoen nedenfor genererer et sertifikat for ServerB.domain.com i den lokale maskinens personlige sertifikatbutikk.

New-SelfSignedCertificate -Subject 'CN=ServerB.domain.com' -TextExtension '2.5.29.37={text}1.3.6.1.5.5.7.3.1'
Opprette selvsignert sertifikat.
Opprette selvsignert sertifikat.

parameteren Subject skal være det fullt kvalifiserte domenenavnet til serveren. WinRm bruker emnet til å validere identiteten til serveren.

selv om serveren er i en arbeidsgruppe, må du alltid oppgi et domenenavn, f. eks. domain.com eller lab.lokalt. NÅR du kobler til målmaskinen, MÅ DNS-navnet du kobler til, nøyaktig matche Dette Emnenavnet, til forbindelsen vil mislykkes.

TextExtension lar deg definere sertifikatets nøkkelbruk (2.5.29.37), som definerer hva sertifikatet kan brukes til. Definer nøkkelbruk For Servergodkjenning ({text}1.3.6.1.5.5.7.3.1) for å sikre at sertifikatet bare kan brukes til å godkjenne en servers identitet.

etter New-SelfSignedCertificates kjører, vil den returnere avtrykk av sertifikatet den genererte. Lagre dette som du trenger det for neste kommando.

Konfigurere WinRM-Lytteren

når Du har opprettet det selvsignerte sertifikatet på serveren, konfigurerer Du WinRm-lytteren til å begynne å bruke dette sertifikatet for godkjenning. For å gjøre det, bruk kommandoen winrm create som vist nedenfor.

Address=* i kommandoen nedenfor informerer lytteren om å lytte på EN HVILKEN SOM HELST IP-adresse som er konfigurert på serveren. Hvis serveren har flere IP-adresser konfigurert, kan du definere en bestemt IP-adresse her.

Pass på å erstatte plassholderen <cert thumbprint here> med avtrykk returnert i det siste trinnet.

winrm create winrm/config/Listener?Address=*+Transport=HTTPS '@{Hostname="ServerB.domain.com"; CertificateThumbprint="<cert thumbprint here>"}'
Opprette WinRM listener med selvsignert sertifikat.
Opprette WinRM listener med selvsignert sertifikat.

Åpne WinRM SSL Brannmurport

Neste, hvis Du bruker Windows-brannmuren, må du tillate HTTPS-trafikk som kommer inn i serveren over standard HTTPS-port 5986.

Åpne brannmurporten For WinRM over HTTPS Ved Å bruke PowerShell ved å kjøre kommandoen nedenfor.

$FirewallParam = @{ DisplayName = 'Windows Remote Management (HTTPS-In)' Direction = 'Inbound' LocalPort = 5986 Protocol = 'TCP' Action = 'Allow' Program = 'System'}New-NetFirewallRule @FirewallParam

Koble Til Serveren VIA SSL

du har nå konfigurert den eksterne Windows-Serveren til å godta WinRM-tilkoblinger VIA SSL. På dette tidspunktet, kom tilbake til klienten og start eventuelle psremoting-kommandoer du vil teste ut. Du kan for eksempel prøve cmdleten Enter-PSSession eller Invoke-Command . Bare nå kobler du litt annerledes enn med STANDARD HTTP-tilkobling.

Tilkobling VIA HTTPS krever vanligvis en enkelt parameter UseSSL. Denne parameteren ber kommandoen om å se etter EN HTTPS WinRM-lytter vs. EN HTTP-lytter som den ville som standard. Parameteren UseSSL er tilgjengelig på flere psremoting-kommandoer.

for testing kjører du Enter-PSSession som gir FQDN til serveren som definert av det selvsignerte sertifikatemnet, Et PSCredential-objekt for å definere brukernavn og passord ,og til slutt, bryterparameteren UseSSL.

Enter-PSSession -ComputerName ServerB.domain.com -Credential (Get-Credential) -UseSSL

hvis du kjører kommandoen ovenfor, får du en feilmelding siden Du har konfigurert WinRM-lytteren på serveren til å bruke et selvsignert sertifikat. Når psremoting-klienten forsøker å godkjenne til serveren, vil den prøve å validere sertifikatet, og det kan ikke. Et selvsignert sertifikat har ikke en klareringskjede kommandoen kan følge og mislykkes.

Sviktende certificate authority trust sjekk med selvsignert sertifikat.
Sviktende certificate authority trust sjekk med selvsignert sertifikat.

hvis du vil koble til serveren med et selvsignert sertifikat, må du overstyre sertifikatklareringskontrollen. Du kan gjøre det ved å opprette en PSSessionOption kalt SkipCACheck ved hjelp av cmdleten New-PSSessionOption og sende den til kommandoen som vist nedenfor.

$PSSessionOption = New-PSSessionOption -SkipCACheckEnter-PSSession -ComputerName ServerB -Credential (Get-Credential) -SessionOption $PSSessionOption -UseSSL

du kan definere mange forskjellige pssessionoption-objekter for å legge til alternativer for den eksterne tilkoblingen som ikke er inkludert i cmdleten Enter-PSSession direkte.

Prøv å koble til igjen, Og PowerShell skal nå be deg om legitimasjon. Når du har oppgitt, bør du nå koble til serveren Med WinRM OVER SSL!

Konfigurere WinRM Med ET CA – Signert Sertifikat

hvis Du har tenkt å bruke PSRemoting ved Hjelp Av WinRM i produksjon Og vil forbli så sikker som mulig, må du fokusere På WinRM over SSL ved hjelp av et certificate authority (CA)-signert sertifikat.

CA-signerte sertifikater opprettholder en klareringskjede og er sikrere enn enkle selvsignerte sertifikater fordi de validerer en sertifikatutsteders identitet.

hvis Du er I Et Active Directory-miljø, er EN av de vanligste måtene å sette OPP EN CA med ADCS. MED ADC – er kan du distribuere sertifikater til enheter og konfigurere WinRM til å bruke disse sertifikatene.

denne opplæringen kommer til å anta at DU allerede HAR ADCS satt opp og jobber i ditt miljø.

for en rask oppsett kan du følge Microsofts dokumentasjon, men for en produksjonsdistribusjon bør du undersøke konfigurasjonen tungt som en sertifikatmyndighet er midt i en organisasjons krypteringsarbeid.

Opprette Sertifikatforespørselen

det første trinnet i å bruke et CA-utstedt sertifikat er å opprette sertifikatet. For å opprette sertifikatet må du først utstede en sertifikatforespørsel ved hjelp av en sertifikatsigneringsforespørsel (CSR). Når den er generert, KAN DENNE CSR sendes til CA for å utstede sertifikatet.

trinnene i denne delen fungerer på adcs-distribusjoner når det er en ENTERPRISE CA eller en frittstående CA. Hvis DU bruker EN AD-integrert ENTERPRISE CA, kan du fremskynde registrering av sertifikater uten å gå gjennom trinnene i denne delen ved hjelp av automatisk registrering av sertifikater eller sertifikatmaler.

mens du er på serveren (ServerB i denne opplæringen), opprett CSR:

  1. Kjør certlm.msc for å åpne windows certificate manager.

2. Høyreklikk På Den Personlige butikken og velg Alle Oppgaver- > Avanserte Operasjoner – > Opprett Tilpasset Forespørsel.

3. For denne opplæringen, la alle felt som standard til du kommer til Sertifikatinformasjonssiden sett nedenfor. Når du kommer hit, klikk På Detaljer dropdown og velg Egenskaper.

Opprette en egendefinert sertifikatforespørsel.
Opprette en egendefinert sertifikatforespørsel.

4. Klikk På Fanen Emne og endre Typen Til Vanlig navn.

5. Skriv inn serverens fullt kvalifiserte domenenavn hvis det er koblet til et domene eller bare vertsnavnet hvis Det ikke Er Det, og klikk Legg Til.

Angi emne for sertifikatforespørsel.
Angir emne for sertifikatforespørsel.

Merk at for bruk med En WinRM SSL-lytter må du bruke det vanlige navnet. De andre alternativene i listen kan inkluderes, men er ikke påkrevd for denne distribusjonen.

6. Klikk På Fanen Utvidelse.

7. Hvis du ikke bruker sertifikatbasert godkjenning som dekkes senere, Utvider du hodet for utvidet nøkkelbruk og legger Til Servergodkjenning. Denne typen nøkkelbruk forteller Windows at sertifikatet skal brukes til å godkjenne en server. Andre alternativer inkluderer Klientgodkjenning, Kodesignering og Dokumentkryptering.

8. Hvis du vil konfigurere sertifikatbasert godkjenning, må du sørge for At Du velger Klientgodkjenning, som vist nedenfor.

Be om et klientgodkjenningssertifikat.
Ber om et klientgodkjenningssertifikat.

9. Deretter klikker Du På kategorien Privat Nøkkel og merker Nøkkelalternativene. Endre standard nøkkelstørrelse fra 1024 til minst 2048 for å styrke nøkkelparets sikkerhet.

det er også sterkere kryptografiske leverandører tilgjengelig I Windows, men du kan møte inkompatibilitet med eldre programvare.

10. Lukk Vinduet Sertifikategenskaper og lagre innstillingene ved Å klikke OK og klikk Neste for å fortsette med instruksjonene.

11. Gi nå en bane for å sende ut sertifikatforespørselen der du kan hente den senere og klikke Fullfør.

når du er ferdig, bør du ha en sertifikatforespørselsfil.

Be Om Et Sertifikat

Når du har opprettet forespørselen, må du nå sende den forespørselen til CA, som vil generere sertifikatet. Å gjøre det:

  1. Naviger TIL ADCS-serveren din påhttp://<server navn FQDN > /certsrv / certrqxt.ASP.
Sertifikat forespørsel innsending nettside.
nettside For Innsending Av Sertifikatforespørsel.

2. Åpne sertifikatforespørselsfilen som ble opprettet tidligere med notisblokk, og kopier teksten fra sertifikatforespørselsfilen til forespørselsboksen. Det kreves ingenting For Flere Attributter for dette sertifikatet.

3. Klikk På Send. Dette vil sende din forespørsel TIL CA. Det skal da vise deg forespørselen ID, som vil bli påkrevd senere. Lagre dette! Du trenger det senere.

4. Koble nå TIL CA-serveren som er en del av ADCS-miljøet ditt ved Hjelp Av Windows Certificate Manager på din lokale datamaskin eller VIA RDP ved å kjøre certsrv.msc.

5. Klikk På Ventende Forespørsler.

Utstedelse av sertifikat fra ventende forespørsel.
Utstedelse av sertifikat fra ventende forespørsel.

6. Høyreklikk på ventende forespørsel, klikk På Alle Oppgaver, og klikk På Problemet. Dette vil godkjenne forespørselen du nettopp sendte inn, basert på forespørsels-ID-EN fra det tidligere trinnet.

Registrere Sertifikatet

Nå som du har utstedt et sertifikat På CA, er det på tide å registrere sertifikatet på serveren du konfigurerer WinRM på. Å gjøre det:

  1. fra serveren Du konfigurerer WinRM over SSL på, naviger til http://<server navn FQDN> / certckpn.ASP. Du bør se en enkelt ventende sertifikatforespørsel.
Viser statusen for ventende sertifikatforespørsel.
Viser statusen for ventende sertifikatforespørsel.

du kan hente det offentlige sertifikatet fra en annen maskin om nødvendig, men starter fra serveren du setter opp For WinRM over HTTPS forenkler prosessen.

2. Velg forespørselen du sendte fra listen, og last ned sertifikatkjeden. Du bør laste ned hele sertifikatkjeden hvis serveren Du konfigurerer WinRM over HTTPS, har CA som en rotserver.

Nedlasting av sertifikatkjede.
Nedlasting av sertifikatkjede.

3. Åpne sertifikatkjedefilen. Du bør se et sertifikat for serveren din, og eventuelle sertifikatmyndighetssertifikater høyere i kjeden. Nedenfor win2.lab.int er det forespurte sertifikatet, OG WIN2-CA er sertifikatet for CA som utstedte sertifikatet for win2.lab.int.

Viser sertifikater inne i sertifikatkjeden.
viser sertifikater inne i sertifikatkjeden.

4. Dobbeltklikk på et av sertifikatene, og i boksen som åpnes, klikk På Installer Sertifikat-knappen. Siden dette sertifikatet vil bli brukt av serveren og ikke av en bestemt bruker, endrer du alternativet Til Lokal Maskin.

Importere sertifikat til det lokale maskinsertifikatlageret.
Importere sertifikat til det lokale maskinsertifikatlageret.

5. Fortsett gjennom spørringen forlater alt som standard. Standardinnstillingene bør plassere sertifikatet I Klarerte Rot Sertifiseringer Butikken.

6. Gjenta nå trinn 3-5 for hvert av de andre sertifikatene i listen. Hvis du har mer enn ett sertifikat, må du kontrollere at alle andre sertifikater er plassert i Lageret For Mellomliggende Sertifikatmyndigheter.

Opprett Og Konfigurer WinRM HTTPS Listener

nå som alle sertifikatene er installert, er Det på tide å konfigurere WinRM på serveren din for å bruke dette sertifikatet for lytteren.

Med PowerShell åpen På WinRm-serveren:

  1. Kjør kommandoen nedenfor for å sette Opp WinRm-lytteren automatisk. Kommandoen winrm gjør dette ved å søke i det lokale maskinsertifikatlageret etter et sertifikat som samsvarer med Kravene For WinRM.
winrm quickconfig -transport:https

2. Windows-Brannmuren vil blokkere WinRM HTTPS-porten på 5986 som standard. For å sikre at brannmuren tillater innkommende port 5986, kjør Følgende PowerShell-kommando:

$FirewallParam = @{ DisplayName = 'Windows Remote Management (HTTPS-In)' Direction = 'Inbound' LocalPort = 5986 Protocol = 'TCP' Action = 'Allow' Program = 'System' } New-NetFirewallRule @FirewallParam

Testing Av WinRM SSL-Tilkoblingen

På dette tidspunktet er du klar til å koble til. Bruk dine favoritt PSRemoting cmdlets som Invoke-Command eller Enter-PSSession, koble til serveren og bruk parameteren UseSSL.

Enter-PSSession -ComputerName ServerB.domain.com -UseSSL -Credential (Get-Credential)

sørg Alltid for at verdien for parameteren ComputerName samsvarer nøyaktig med det vanlige navnet som ble oppgitt under sertifikatopprettelsen. Hvis du prøver å koble til et annet vertsnavn eller kanskje vertsens IP-adresse, vil du motta en feil i sertifikatmatch som forårsaker tilkoblingsfeil.

Sette Opp Sertifikatbasert Godkjenning

nå bør Du allerede ha En WinRM-lytter konfigurert til Å bruke HTTPS. I så fall kan du også bruke et brukergodkjenningssertifikat til å godkjenne som en lokal bruker på den eksterne serveren. Å bruke et brukersertifikat er en av de sikreste, men det tar litt tid å sette opp. Du finner at det også er mye gjentatt arbeid siden hvert sertifikat er unikt for den enkelte klientmaskinen.

Sertifikatbasert godkjenning fungerer bare med lokale brukerkontoer og ikke domenebrukere.

Forutsatt at du ba om et sertifikat For Klientgodkjenning som dekket I Delen Opprette Sertifikatforespørsel, les videre:

Aktivere Sertifikatgodkjenning og Tilordne Brukeren På Serveren

  1. kjør kommandoen Set-Item på serveren for å tillate sertifikatbasert godkjenning.
Set-Item WSMan:\localhost\Service\Auth\Certificate -Value $true

2. Deretter kjører du Get-ChildItem for å se På Trusted Root Certification Authorities-butikken for å finne CA-avtrykk som utstedte klientgodkjenningssertifikatet. For å gjøre dette, filtrer sertifikater etter emnet som inneholder NAVNET PÅ CA.

Get-ChildItem Cert:\LocalMachine\Root | Where-Object {$_.Subject -like 'CA-Name'}

3. Kjør kommandoen nedenfor der SubjectName er gjenstand for brukersertifikatet du oppgav da du opprettet sertifikatet

CAThumbprint ER CA-AVTRYKK samlet med den forrige kommandoen, og deretter blir bedt om legitimasjon er brukernavnet og passordet til den lokale brukeren som skal brukes til sertifikatbasert godkjenning.

New-Item WSMan:\localhost\ClientCertificate -Subject SubjectName -URI * -Issuer CAThumbprint -Credential (Get-Credential)

Testing Av Sertifikatbasert Godkjenning

nå som sertifikatet til brukertilordning er konfigurert, bruk sertifikatet på klientmaskinen til å godkjenne uten å oppgi legitimasjon.

hent klientsertifikatets avtrykk på klienten I PowerShell ved å se I Det Personlige sertifikatlageret.

Get-ChildItem Cert:\CurrentUser\My

spesifiser nå avtrykket i parameteren CertificateThumbprint til en psremoting-kommando som nedenfor.

Enter-PSSession -ComputerName ServerName -CertificateThumbprint <Thumbprint>

Merk at siden sertifikatbasert godkjenning bare kan brukes med EN HTTPS-lytter -UseSSL, er det underforstått, i motsetning til andre godkjenningsmetoder der DU må angi FOR Å bruke SSL.

nå som Du har lært Hvordan du konfigurerer WinRM over SSL, kan du lære mer om PSRemoting i PowerShell Remoting: The Ultimate Guide post!

Vil du lære mer om PowerShell generelt, inkludert mye Om PSRemoting? Sjekk Ut PowerShell For Sysadmins, boken!

Leave a Reply