Adam Automator

hvis du allerede kører fjernkommandoer med PSRemoting (PSRemoting), ved du, hvor praktisk funktionen er. Du kan oprette forbindelse til en eller flere eksterne computere og administrere dem, som om de var lokale. PSRemoting afhænger af fjernstyring for at få det til at ske, og hvis du ikke bruger SSL over SSL, Kan du muligvis åbne dig for nogle sikkerhedsproblemer.

i denne praktiske vejledning lærer du, hvordan du konfigurerer vinduer på klienten og serveren til at bruge over HTTPS (SSL), og hvordan du bruger certifikater til at godkende, når du bruger over HTTPS.

Indholdsfortegnelse

forudsætninger

hvis du gerne vil følge med i denne tutorial gennemgang, skal du sørge for at have følgende:

  • en Vinduer 7 + eller Server 2008 R2 maskine til at fungere som klient maskine. Denne tutorial vil bruge Vinduer 10.
  • a Vinduer 7+ eller Server 2008 R2+ maskine til at fungere som server maskine. Denne tutorial vil bruge vinduer Server 2019.
  • adgang til en lokal administrativ konto eller en konto med lokale administrative rettigheder på både klient-og servermaskinerne.
  • en Active Directory Certificate Services (ADCS) Public Key Infrastructure (PKI) oprettet. Det ville hjælpe, hvis du implementerede ADC ‘ er til produktionsimplementeringer, men det er valgfrit til denne tutorial og test. Vejledningen antager, at PKI er oprettet som en virksomhed eller selvstændig CA.

hvorfor bruge SSL?

PSRemoting, ud af kassen, bruger vindm og giver dig mulighed for at styre klientmaskiner eksternt. Når PSRemoting etablerer en session over , krypterer den derefter al kommunikation fra klient til server. Installationsproceduren til implementering af PSRemoting uden HTTPS er også ret ligetil.

hvis PSRemoting allerede krypterer sessionskommunikation, hvorfor gå igennem besværet med at oprette noget som ADCS og administrere certifikater, når det allerede er krypteret?

fordi under godkendelsesprocessen kan legitimationsoplysninger sendes i usikre formater afhængigt af den anvendte godkendelsestype.

en af de nemmeste måder at gøre PSRemoting mere sikker er at bruge over HTTPS i stedet for HTTP. HTTPS omslutter hele din forbindelsesstrøm, inklusive godkendelse inden for det krypteringslag, som vi allerede bruger. HTTPS giver også samtidig en måde at validere den server, du opretter forbindelse til, er, hvad du tror, det er.

konfiguration af vindm med et selvsigneret certifikat

lad os nu springe ind i demonstrationerne. For det første trick vil du lære at konfigurere Krypter PSRemoting-kommunikation med SSL via et selvsigneret certifikat.

brug af et selvsigneret certifikat er en fantastisk måde at oprette et testmiljø uden at bekymre sig om en PKI som ADCS. Når du bruger et selvsigneret certifikat, genererer du et certifikat, som serveren selv underskriver, som dybest set garanterer for sig selv.

der findes certifikater til at udføre to opgaver typisk; godkende en forbindelse og kryptere den. Brug af et selvsigneret certifikat implementerer kun sidstnævnte. For at validere en servers identitet skal du altid bruge PKI-leverede certifikater. PKI-leverede certifikater giver en enkelt kilde til tillid vs. at skulle stole på hvert selvsigneret certifikat individuelt manuelt.

konfiguration af SSL Med et selvsigneret certifikat kræver fire trin på højt niveau:

  1. oprettelse af det selvsignerede certifikat på destinationsmaskinen.
  2. konfiguration af serverens server til at bruge det selvsignerede certifikat til godkendelse.
  3. åbning af de relevante porte på destinationsmaskinens vinduer.
  4. udførelse af en kommando for at starte en fjernforbindelse på klienten ved hjælp af en cmdlet som Enter-PSSession.

lad os nu gå igennem hvert trin.

oprettelse af et selvsigneret certifikat

det første trin er at generere et selvsigneret certifikat på serveren. Ved tilslutning bruger PSRemoting dette certifikat til at kryptere al kommunikation.

mens du er på ServerB, skal du køre New-SelfSignedCertificate cmdlet som vist nedenfor. Kørsel af nedenstående kommando genererer et certifikat til ServerB.domain.com i den lokale maskine personlige certifikat butik.

New-SelfSignedCertificate -Subject 'CN=ServerB.domain.com' -TextExtension '2.5.29.37={text}1.3.6.1.5.5.7.3.1'
oprettelse af selvsigneret certifikat.
oprettelse af selvsigneret certifikat.

parameteren Subject skal være serverens fuldt kvalificerede domænenavn. Vi bruger emnet til at validere serverens identitet.

selvom serveren er i en arbejdsgruppe, skal du altid angive et domænenavn, f. eks., domain.com eller lab.lokalt. Når du opretter forbindelse til destinationsmaskinen, skal DNS-navnet, du opretter forbindelse til, nøjagtigt matche dette emnenavn, til forbindelsen mislykkes.

TextExtension giver dig mulighed for at definere certifikatets nøgleforbrug (2.5.29.37), som definerer, hvad certifikatet må bruges til. Definer nøgleforbrug til servergodkendelse ({text}1.3.6.1.5.5.7.3.1) for at sikre, at certifikatet kun kan bruges til at godkende en servers identitet.

efter New-SelfSignedCertificates kører, vil det returnere fingeraftrykket af det certifikat, det genererede. Gem dette, da du har brug for det til den næste kommando.

konfiguration af lytteren

når du har oprettet det selvsignerede certifikat på serveren, skal du konfigurere lytteren til at begynde at bruge certifikatet til godkendelse. For at gøre det skal du bruge kommandoen winrm create som vist nedenfor.

Address=* i kommandoen nedenfor informerer lytteren om at lytte til enhver IP-adresse, der er konfigureret på serveren. Hvis serveren har konfigureret flere IP-adresser, kan du definere en bestemt IP-adresse her.

sørg for at erstatte pladsholderen <cert thumbprint here> med det fingeraftryk, der returneres i det sidste trin.

winrm create winrm/config/Listener?Address=*+Transport=HTTPS '@{Hostname="ServerB.domain.com"; CertificateThumbprint="<cert thumbprint here>"}'
oprettelse af Vinrm lytter med selvsigneret certifikat.
oprettelse af Vinrm-lytter med selvsigneret certifikat.

åbning af SSL-porten

næste, hvis du bruger vinduerne, skal du tillade HTTPS-trafik, der kommer ind på serveren over standard HTTPS-porten 5986.

Åbn porten til via HTTPS ved at køre kommandoen nedenfor.

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

tilslutning til serveren via SSL

du har nu konfigureret serveren til at acceptere SSL-forbindelser. På dette tidspunkt, kom tilbage til klienten og start eventuelle PSRemoting-kommandoer, du gerne vil teste. For eksempel kan du prøve Enter-PSSession eller Invoke-Command cmdlet. Først nu forbinder du lidt anderledes end med standard HTTP-forbindelsen.

tilslutning via HTTPS kræver typisk en enkelt parameter UseSSL. Denne parameter fortæller kommandoen at kigge efter en HTTPS-lytter vs. en HTTP-lytter, som den ville som standard. Parameteren UseSSL er tilgængelig på flere PSRemoting-kommandoer.

til test skal du køre Enter-PSSession ved at levere serverens FKDN som defineret af det selvsignerede certifikatemne, et Pscredentielt objekt til at definere brugernavnet og adgangskoden og endelig parameteren UseSSL skift.

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

hvis du kører ovenstående kommando, vil du modtage en fejlmeddelelse, da du har konfigureret lytteren på serveren til at bruge et selvsigneret certifikat. Når PSRemoting-klienten forsøger at godkende til serveren, vil den forsøge at validere certifikatet, og det kan det ikke. Et selvsigneret certifikat har ikke en tillidskæde, som kommandoen kan følge og mislykkes.

manglende certifikatmyndighed tillidskontrol med selvsigneret certifikat.
manglende certifikatmyndighed tillidskontrol med selvsigneret certifikat.

hvis du vil oprette forbindelse til serveren med et selvsigneret certifikat, skal du tilsidesætte certifikattillidskontrollen. Du kan gøre det ved at oprette en PSSessionOption kaldet SkipCACheck ved hjælp af New-PSSessionOption cmdlet 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 forskellige pssessionoption-objekter for at tilføje muligheder for din fjernforbindelse, der ikke er inkluderet i Enter-PSSession cmdlet direkte.

prøv at oprette forbindelse igen, og Strømshell skal nu bede dig om legitimationsoplysninger. Når det er angivet, skal du nu oprette forbindelse til serveren med SSL!

konfiguration af VRM med et CA-signeret certifikat

hvis du har til hensigt at bruge PSRemoting ved hjælp af VRM i produktionen og ønsker at forblive så sikker som muligt, skal du fokusere på VRM over SSL ved hjælp af et certificate authority (CA) – signed certificate.

CA-signerede certifikater opretholder en tillidskæde og er mere sikre end enkle selvsignerede certifikater, fordi de validerer en certifikatudsteders identitet.

hvis du er i et Active Directory-miljø, er en af de mest almindelige måder at oprette en CA på med ADCS. Med ADC ‘er kan du installere certifikater på enheder og konfigurere ADC’ er til at bruge disse certifikater.

denne tutorial vil antage, at du allerede har ADC ‘ er oprettet og arbejder i dit miljø.

for en hurtig opsætning kan du følge Microsofts dokumentation, men for en produktionsinstallation skal du undersøge konfigurationen kraftigt, da en certifikatmyndighed er i centrum for en organisations krypteringsindsats.

oprettelse af Certifikatanmodningen

det første trin i at bruge et ca-udstedt certifikat er at oprette certifikatet. For at oprette certifikatet skal du først udstede en certifikatanmodning ved hjælp af en certifikatsigneringsanmodning (CSR). Når den er genereret, kan denne CSR derefter sendes til CA for at udstede certifikatet.

dette afsnits trin fungerer på ADCs-implementeringer, når det er en Enterprise CA eller en standalone CA. Hvis du bruger en ANNONCEINTEGRERET virksomhed CA, kan du fremskynde tilmelding af certifikater uden at gennemgå trinnene i dette afsnit ved hjælp af skabeloner til automatisk tilmelding af certifikater eller certifikater.

mens du er på serveren (ServerB i denne tutorial), skal du oprette CSR:

  1. Kør certlm.msc for at åbne vinduerne certificate manager.

2. Højreklik på den personlige butik og vælg Alle opgaver —> avancerede operationer —> Opret brugerdefineret anmodning.

3. I denne vejledning skal du lade alle felter være standard, indtil du kommer til siden med certifikatoplysninger, der ses nedenfor. Når du kommer her, skal du klikke på rullemenuen detaljer og vælge Egenskaber.

oprettelse af en brugerdefineret certifikatanmodning.
oprettelse af en brugerdefineret certifikatanmodning.

4. Klik på fanen emne, og skift typen til almindeligt navn.

5. Indtast nu serverens fuldt kvalificerede domænenavn, hvis det er knyttet til et domæne eller bare værtsnavnet, hvis det ikke er det, og klik på Tilføj.

angivelse af emne for certifikatanmodning.
angivelse emne for anmodning certifikat.

Bemærk, at du skal bruge det almindelige navn til brug med en SSL-lytter. De andre muligheder på listen kan medtages, men er ikke nødvendige for denne implementering.

6. Klik på fanen udvidelse.

7. Hvis du ikke bruger certifikatbaseret godkendelse, som vil blive dækket senere, skal du udvide overskriften udvidet nøgleforbrug og tilføje servergodkendelse. Denne nøgleforbrugstype fortæller vinduer, at certifikatet skal bruges til godkendelse af en server. Andre muligheder omfatter klientgodkendelse, kodesignering og Dokumentkryptering.

8. Hvis du vil konfigurere certifikatbaseret godkendelse, skal du sikre dig, at du vælger klientgodkendelse som vist nedenfor.

anmodning om et klientgodkendelsescertifikat.
anmoder om et klientgodkendelsescertifikat.

9. Klik derefter på fanen privat nøgle og bemærk nøgleindstillingerne. Skift standardnøglestørrelsen fra 1024 til mindst 2048 for at styrke nøgleparets sikkerhed.

der er også stærkere kryptografiske udbydere tilgængelige i vinduer, men du kan blive udsat for inkompatibilitet med ældre programmer.

10. Luk vinduet Certifikategenskaber, og gem dine indstillinger ved at klikke på OK, og klik på Næste for at fortsætte med vejledningen.

11. Giv nu en sti til output certifikatanmodningen, hvor du kan hente den senere og klikke på Udfør.

når du er færdig, skal du have en certifikatanmodningsfil.

anmodning om et certifikat

når du har oprettet anmodningen, skal du nu indsende denne anmodning til din CA, som genererer certifikatet. At gøre det:

  1. Naviger til din ADCS-server på http://<server navn FKDN> /certsrv / .ASP.
certifikat anmodning indsendelse hjemmeside.
certifikat anmodning indsendelse hjemmeside.

2. Åbn filen med certifikatanmodning, der blev oprettet tidligere med Notesblok, og kopier teksten fra filen med certifikatanmodning til feltet anmodning. Der kræves intet for yderligere attributter til dette certifikat.

3. Klik På Send. Dette vil sende din anmodning til CA. Det skal derefter vise dig anmodnings-ID ‘ et, som kræves senere. Gem det her! Du får brug for det senere.

4. Opret nu forbindelse til CA-serveren, der er en del af dit ADCS-miljø ved hjælp af vinduer Certifikathåndtering på din lokale computer eller via RDP ved at køre certsrv.msc.

5. Klik på afventende anmodninger.

udstedelse af certifikat fra afventende anmodning.
udstedelse af certifikat fra afventende anmodning.

6. Højreklik på den afventende anmodning, klik på alle opgaver, og klik på problem. Dette godkender den anmodning, du lige har indsendt, baseret på anmodnings-ID ‘ et fra det tidligere trin.

tilmelding af certifikatet

nu hvor du har udstedt et certifikat på CA, er det tid til at tilmelde certifikatet på den server, du konfigurerer på. At gøre det:

  1. Naviger tilhttp://<serverfra den server, du konfigurerer SSL på.ASP. Du skal se en enkelt afventende certifikatanmodning.
visning af status for afventende certifikatanmodning.
visningsstatus for afventende certifikatanmodning.

du kan hente det offentlige certifikat fra en anden maskine, hvis det er nødvendigt, men fra den server, du konfigurerer til HTTPS, forenkler processen.

2. Vælg den anmodning, du har indsendt fra listen, og hent certifikatkæden. Du skal hente hele certifikatkæden, hvis den server, du konfigurerer via HTTPS, har din CA som en rodserver.

henter certifikat kæde.
henter certifikat kæde.

3. Åbn certifikatkædefilen. Du skal se et certifikat til din server og eventuelle certifikatmyndighedscertifikater højere i kæden. Nedenfor vinder 2.Lab.int er det ønskede certifikat, og VIND2-CA er certifikatet for CA, der udstedte certifikatet for win2.lab.int.

viser certifikater inde i certifikatkæden.
viser certifikater inde i certifikatkæden.

4. Dobbeltklik på et af certifikaterne, og klik på knappen Installer certifikat i feltet, der åbnes. Da dette certifikat vil blive brugt af serveren og ikke af en bestemt bruger, skal du ændre indstillingen til lokal maskine.

import certifikat i den lokale maskine certifikat butik.
import certifikat i den lokale maskine certifikat butik.

5. Fortsæt gennem prompten forlader alt som standard. Standardindstillingerne skal placere certifikatet i Trusted Root Certifications Store.

6. Gentag nu trin 3-5 for hvert af de andre certifikater på listen. Hvis du har mere end et certifikat, skal du sikre dig, at alle andre certifikater er placeret i butikken mellemliggende certifikatmyndigheder.

Opret og opsæt HTTPS-lytteren

nu hvor alle certifikaterne er installeret, er det tid til at konfigurere https på din server til at bruge dette certifikat til lytteren.

med Strømshell åben på serveren:

  1. Kør nedenstående kommando for at indstille lytteren automatisk. Kommandoen winrm gør dette ved at søge i det lokale maskincertifikatlager efter et certifikat, der svarer til kravene til VRM.

winrm quickconfig -transport:https

2. Som standard blokerer vi HTTPS-porten 5986. For at sikre, at brandmuren tillader indgående port 5986, skal du køre følgende kommando:

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

test af SSL-forbindelsen

på dette tidspunkt er du klar til at oprette forbindelse. Brug dine foretrukne PSRemoting cmdlets som Invoke-Command eller Enter-PSSession, Opret forbindelse til serveren og brug parameteren UseSSL.

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

Sørg altid for, at værdien for parameteren ComputerName nøjagtigt svarer til det almindelige navn, der blev angivet under certifikatoprettelsen. Hvis du forsøger at oprette forbindelse til et andet værtsnavn eller måske værtsens IP-adresse, vil du modtage en fejl i certifikatmatch, der forårsager en forbindelsesfejl.

opsætning af Certifikatbaseret autentificering

nu skal du allerede have en bruger til at bruge HTTPS. I så fald kan du også bruge et brugergodkendelsescertifikat til at godkende som en lokal bruger på fjernserveren. Brug af et brugercertifikat er et af de mest sikre, men det tager et stykke tid at konfigurere. Du vil opdage, at det også er meget gentaget arbejde, da hvert certifikat er unikt for den enkelte klientmaskine.

Certifikatbaseret godkendelse fungerer kun med lokale brugerkonti og ikke domænebrugere.

hvis du antager, at du har anmodet om et certifikat til klientgodkendelse som beskrevet i afsnittet Oprettelse af certifikatanmodning, skal du læse videre:

aktivering af certifikatgodkendelse og kortlægning af brugeren på serveren

  1. på serveren skal du køre kommandoen Set-Item for at tillade certifikatbaseret godkendelse.
Set-Item WSMan:\localhost\Service\Auth\Certificate -Value $true

2. Kør derefter Get-ChildItem for at se på Trusted Root Certification Authority store for at finde CA ‘ s fingeraftryk, der udstedte klientgodkendelsescertifikatet. For at gøre dette skal du filtrere certifikater efter det emne, der indeholder navnet på din CA.

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

3. Kør nedenstående kommando, hvor SubjectName er genstand for det brugercertifikat, du angav, da du oprettede certifikatet

CAThumbprint er CA ‘ s fingeraftryk indsamlet med den forrige kommando, og derefter bedt om legitimationsoplysninger er brugernavnet og adgangskoden til den lokale bruger, der vil blive brugt til den certifikatbaserede godkendelse.

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

test af Certifikatbaseret godkendelse

nu hvor certifikatet til brugerkortlægning er konfigureret, skal du bruge certifikatet på klientmaskinen til at godkende uden at give legitimationsoplysninger.

på klienten i Kraftshell, få klientcertifikatets fingeraftryk ved at kigge i personlig certifikatbutik.

Get-ChildItem Cert:\CurrentUser\My

Angiv nu fingeraftrykket i parameteren CertificateThumbprint til en PSRemoting-kommando som nedenfor.

Enter-PSSession -ComputerName ServerName -CertificateThumbprint <Thumbprint>

Bemærk, at da certifikatbaseret godkendelse kun kan bruges med en HTTPS-lytter -UseSSL er underforstået, i modsætning til andre godkendelsesmetoder, hvor du skal angive for at bruge SSL.

nu hvor du har lært, hvordan du konfigurerer Psremoting via SSL, Kan du lære mere om PSRemoting i Vores Remoting: The Ultimate Guide post!

vil du lære mere om Strømshell generelt, herunder meget om PSRemoting? Tjek Strømshell til Sysadmins, bogen!

Leave a Reply